大數(shù)據(jù)學(xué)習(xí) 第一篇——基礎(chǔ)知識(shí)

大數(shù)據(jù)入門(mén)

總結(jié)一下近期學(xué)習(xí)的大數(shù)據(jù)知識(shí),主要是參考了廈門(mén)大學(xué)林子雨老師的博客

學(xué)習(xí)之前沒(méi)搞清楚的知識(shí)

  1. 傳統(tǒng)的web應(yīng)用(LAMP、JavaEE这吻、NODE系等)與大數(shù)據(jù)什么關(guān)系揩抡?

    之前一直以為大數(shù)據(jù)的東西就是來(lái)取代傳統(tǒng)的Web應(yīng)用的,其實(shí)并不是這樣剔猿;即使是大數(shù)據(jù)的架構(gòu),應(yīng)用層依然會(huì)是傳統(tǒng)的web應(yīng)用嬉荆,但是會(huì)根據(jù)數(shù)據(jù)特點(diǎn)對(duì)數(shù)據(jù)存儲(chǔ)(結(jié)構(gòu)化數(shù)據(jù)依然會(huì)保存在傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)——如MySql艳馒,日志等非結(jié)構(gòu)數(shù)據(jù)會(huì)保存在分布式文件系統(tǒng)——如Hadoop的HDFS)。

    大數(shù)據(jù)的東西不是取代傳統(tǒng)的web應(yīng)用员寇,而是對(duì)web應(yīng)用的增強(qiáng)弄慰。基于分布式存儲(chǔ)和分布式計(jì)算蝶锋,以前單機(jī)或者小規(guī)模集群無(wú)法解決的問(wèn)題陆爽,使用了大數(shù)據(jù)技術(shù)之后就可以解決了,比如日志等數(shù)據(jù)當(dāng)數(shù)據(jù)量非常大的時(shí)候(TB甚至PB)扳缕,對(duì)這些數(shù)據(jù)的分析在傳統(tǒng)架構(gòu)上是不可能或者是非常慢的慌闭,使用了大數(shù)據(jù)技術(shù)之后就是可能的了——主要是將數(shù)據(jù)處理通過(guò)MapReduce等拆分到不同的節(jié)點(diǎn)(電腦)上執(zhí)行别威,然后將節(jié)點(diǎn)上的結(jié)果合并,最后生成分析結(jié)果驴剔。

  2. 云計(jì)算和大數(shù)據(jù)

    這個(gè)話(huà)題在林子雨老師的教程——“第一講 大數(shù)據(jù)概述”里介紹的非常好省古,感興趣的朋友可以自己去看看,這里概括總結(jié)為:“云計(jì)算為大數(shù)據(jù)提供了技術(shù)基礎(chǔ)丧失,大數(shù)據(jù)為云計(jì)算提供了用物之地”豺妓。

    現(xiàn)在幾乎所有的公司都把自己的產(chǎn)品吹成“云”...但是真的都是“云”么?其實(shí)很多都是傳統(tǒng)的web應(yīng)用部署到阿里云這些第三方云平臺(tái)吧布讹;還有一部分有自己服務(wù)器(一般配置)琳拭,然后搞個(gè)公網(wǎng)ip,部署上去也說(shuō)自己是“云”描验。

Hadoop結(jié)構(gòu)(更新)

參照廈門(mén)大學(xué)林子雨-大數(shù)據(jù)技術(shù)原理與應(yīng)用-教材配套講課視頻-第2講-大數(shù)據(jù)處理架構(gòu)Hadoop

這部分內(nèi)容請(qǐng)觀看林子雨老師的視頻白嘁,講得比較透徹。下面的內(nèi)容是在看視頻之前(那會(huì)兒只看了林子雨老師的教材和博客膘流,如林子雨老師在視頻中說(shuō)得絮缅,教材上的內(nèi)容都是基于Hadoop1.0的,在視頻中已經(jīng)更新到了2.0)寫(xiě)的呼股,作為一些參考吧耕魄。

學(xué)習(xí)歷程

  1. 了解Hadoop生態(tài)系統(tǒng),了解一下生態(tài)系統(tǒng)中各模塊的作用卖怜,文章后面對(duì)各模塊有一些簡(jiǎn)單的總結(jié)
    • HDFS
    • YARN
    • HBase
    • MapReduce
    • Hive
    • Pig
    • Mahout
    • Zookeeper
    • Sqoop
    • Flume
    • Kafka等
  1. 了解Spark屎开,了解Spark比MapReduce的優(yōu)勢(shì)阐枣,學(xué)習(xí)RDD編程

    • Spark SQL
    • Spark Streaming
    • Spark Mlib
    • ...
  2. 找兩臺(tái)電腦搭個(gè)Hadoop马靠、Spark集群,配置Spark開(kāi)發(fā)環(huán)境(SBT)蔼两,運(yùn)行一些demo例程甩鳄,典型如WordCount

  3. 研究一下MapReduce的WordCount和Spark的WorkCount的代碼,通過(guò)對(duì)比加深理解

  4. 參考如下案例额划,了解大數(shù)據(jù)應(yīng)用妙啃,熟悉HBase,Hive俊戳,Sqoop等

整理一些知識(shí)(來(lái)自廈門(mén)大學(xué)林子雨老師的博客

HBase

HBase是一個(gè)高可靠揖赴、高性能、面向列抑胎、可伸縮的分布式數(shù)據(jù)庫(kù)燥滑,是谷歌BigTable的開(kāi)源實(shí)現(xiàn),主要用來(lái)存儲(chǔ)非結(jié)構(gòu)化和半結(jié)構(gòu)化的松散數(shù)據(jù)阿逃。HBase的目標(biāo)是處理非常龐大的表铭拧,可以通過(guò)水平擴(kuò)展的方式赃蛛,利用廉價(jià)計(jì)算機(jī)集群處理由超過(guò)10億行數(shù)據(jù)和數(shù)百萬(wàn)列元素組成的數(shù)據(jù)表

HBase可以直接使用本地文件系統(tǒng)或者Hadoop作為數(shù)據(jù)存儲(chǔ)方式,不過(guò)為了提高數(shù)據(jù)可靠性和系統(tǒng)的健壯性搀菩,發(fā)揮HBase處理大數(shù)據(jù)量等功能呕臂,需要使用Hadoop作為文件系統(tǒng)。與Hadoop一樣肪跋,HBase目標(biāo)主要依靠橫向擴(kuò)展歧蒋,通過(guò)不斷增加廉價(jià)的商用服務(wù)器來(lái)增加計(jì)算和存儲(chǔ)能力。

HIVE

Hive是一個(gè)構(gòu)建于Hadoop頂層的數(shù)據(jù)倉(cāng)庫(kù)工具澎嚣,由Facebook公司開(kāi)發(fā)疏尿,并在2008年8月開(kāi)源。Hive在某種程度上可以看作是用戶(hù)編程接口易桃,其本身并不存儲(chǔ)和處理數(shù)據(jù)褥琐,而是依賴(lài)HDFS來(lái)存儲(chǔ)數(shù)據(jù),依賴(lài)MapReduce來(lái)處理數(shù)據(jù)晤郑。Hive定義了簡(jiǎn)單的類(lèi)似SQL的查詢(xún)語(yǔ)言——HiveQL敌呈,它與大部分SQL語(yǔ)法兼容,但是造寝,并不完全支持SQL標(biāo)準(zhǔn)磕洪,比如,HiveSQL不支持更新操作诫龙,也不支持索引和事務(wù)析显,它的子查詢(xún)和連接操作也存在很多局限。

HiveQL語(yǔ)句可以快速實(shí)現(xiàn)簡(jiǎn)單的MapReduce任務(wù)签赃,這樣用戶(hù)通過(guò)編寫(xiě)的HiveQL語(yǔ)句就可以運(yùn)行MapReduce任務(wù)谷异,不必編寫(xiě)復(fù)雜的MapReduce應(yīng)用程序。對(duì)于Java開(kāi)發(fā)工程師而言锦聊,就不必花費(fèi)大量精力在記憶常見(jiàn)的數(shù)據(jù)運(yùn)算與底層的MapReduce Java API的對(duì)應(yīng)關(guān)系上歹嘹;對(duì)于DBA來(lái)說(shuō),可以很容易把原來(lái)構(gòu)建在關(guān)系數(shù)據(jù)庫(kù)上的數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用程序移植到Hadoop平臺(tái)上孔庭。所以說(shuō)尺上,Hive是一個(gè)可以有效、合理圆到、直觀地組織和使用數(shù)據(jù)的分析工具怎抛。

Impala

Hive 作為現(xiàn)有比較流行的數(shù)據(jù)倉(cāng)庫(kù)分析工具之一,得到了廣泛的應(yīng)用芽淡,但是由于Hive采用MapReduce 來(lái)完成批量數(shù)據(jù)處理马绝,因此,實(shí)時(shí)性不好吐绵,查詢(xún)延遲較高迹淌。Impala 作為新一代開(kāi)源大數(shù)據(jù)分析引擎河绽,支持實(shí)時(shí)計(jì)算,它提供了與Hive 類(lèi)似的功能唉窃,并在性能上比Hive高出3~30 倍耙饰。Impala 發(fā)展勢(shì)頭迅猛,甚至有可能會(huì)超過(guò)Hive 的使用率而成為Hadoop 上最流行的實(shí)時(shí)計(jì)算平臺(tái)纹份。

Hive 與Impala 的不同點(diǎn)總結(jié)如下:

  • 第一苟跪,Hive 比較適合進(jìn)行長(zhǎng)時(shí)間的批處理查詢(xún)分析,而Impala 適合進(jìn)行實(shí)時(shí)交互式SQL 查詢(xún)蔓涧。
  • 第二件已,Hive 依賴(lài)于MapReduce 計(jì)算框架,執(zhí)行計(jì)劃組合成管道型的MapReduce 任務(wù)模式進(jìn)行執(zhí)行元暴,而Impala 則把執(zhí)行計(jì)劃表現(xiàn)為一棵完整的執(zhí)行計(jì)劃樹(shù)篷扩,可以更自然地分發(fā)執(zhí)行計(jì)劃到各個(gè)Impalad執(zhí)行查詢(xún)。
  • 第三茉盏,Hive在執(zhí)行過(guò)程中鉴未,如果內(nèi)存放不下所有數(shù)據(jù),則會(huì)使用外存鸠姨,以保證查詢(xún)能順序執(zhí)行完成铜秆,而Impala在遇到內(nèi)存放不下數(shù)據(jù)時(shí),不會(huì)利用外存讶迁,所以连茧,Impala目前處理查詢(xún)時(shí)會(huì)受到一定的限制。

Hive與Impala的相同點(diǎn)總結(jié)如下:

  • 第一巍糯,Hive與Impala使用相同的存儲(chǔ)數(shù)據(jù)池啸驯,都支持把數(shù)據(jù)存儲(chǔ)于HDFS和HBase中,其中鳞贷,HDFS支持存儲(chǔ)TEXT坯汤、RCFILE虐唠、PARQUET搀愧、AVRO、ETC等格式的數(shù)據(jù)疆偿,HBase存儲(chǔ)表中記錄咱筛。
  • 第二,Hive與Impala使用相同的元數(shù)據(jù)杆故。
  • 第三迅箩,Hive與Impala中對(duì)SQL的解釋處理比較相似,都是通過(guò)詞法分析生成執(zhí)行計(jì)劃处铛。

總的來(lái)說(shuō)饲趋,Impala的目的不在于替換現(xiàn)有的MapReduce工具拐揭,把Hive與Impala配合使用效果最佳,可以先使用Hive進(jìn)行數(shù)據(jù)轉(zhuǎn)換處理奕塑,之后再使用Impala在Hive處理后的結(jié)果數(shù)據(jù)集上進(jìn)行快速的數(shù)據(jù)分析堂污。

PIG

Pig 是Hadoop 生態(tài)系統(tǒng)的一個(gè)組件,提供了類(lèi)似SQL 的Pig Latin 語(yǔ)言(包含F(xiàn)ilter龄砰、GroupBy盟猖、Join、OrderBy 等操作换棚,同時(shí)也支持用戶(hù)自定義函數(shù))式镐,允許用戶(hù)通過(guò)編寫(xiě)簡(jiǎn)單的腳本來(lái)實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)分析,而不需要編寫(xiě)復(fù)雜的MapReduce 應(yīng)用程序固蚤,Pig 會(huì)自動(dòng)把用戶(hù)編寫(xiě)的腳本轉(zhuǎn)換成MapReduce 作業(yè)在Hadoop 集群上運(yùn)行娘汞,而且具備對(duì)生成的MapReduce程序進(jìn)行自動(dòng)優(yōu)化的功能,所以夕玩,用戶(hù)在編寫(xiě)Pig 程序的時(shí)候价说,不需要關(guān)心程序的運(yùn)行效率,這就大大減少了用戶(hù)編程時(shí)間风秤。因此鳖目,通過(guò)配合使用Pig 和Hadoop,在處理海量數(shù)據(jù)時(shí)就可以實(shí)現(xiàn)事半功倍的效果缤弦,比使用Java领迈、C++等語(yǔ)言編寫(xiě)MapReduce 程序的難度要小很多,并且用更少的代碼量實(shí)現(xiàn)了相同的數(shù)據(jù)處理分析功能碍沐。Pig 可以加載數(shù)據(jù)狸捅、表達(dá)轉(zhuǎn)換數(shù)據(jù)以及存儲(chǔ)最終結(jié)果,因此累提,在企業(yè)實(shí)際應(yīng)用中尘喝,Pig通常用于ETL(Extraction、Transformation斋陪、Loading)過(guò)程朽褪,即來(lái)自各個(gè)不同數(shù)據(jù)源的數(shù)據(jù)被收集過(guò)來(lái)以后,采用Pig 進(jìn)行統(tǒng)一加工處理无虚,然后加載到數(shù)據(jù)倉(cāng)庫(kù)Hive 中缔赠,由Hive 實(shí)現(xiàn)對(duì)海量數(shù)據(jù)的分析。需要特別指出的是友题,每種數(shù)據(jù)分析工具都有一定的局限性嗤堰,Pig 的設(shè)計(jì)和MapReduce 一樣,都是面向批處理的度宦,因此踢匣,Pig 并不適合所有的數(shù)據(jù)處理任務(wù)告匠,特別是當(dāng)需要查詢(xún)大數(shù)據(jù)集中的一小部分?jǐn)?shù)據(jù)時(shí),Pig 仍然需要對(duì)整個(gè)或絕大部分?jǐn)?shù)據(jù)集進(jìn)行掃描离唬,因此凫海,實(shí)現(xiàn)性能不會(huì)很好。

Tez

Tez 是Apache 開(kāi)源的支持DAG 作業(yè)的計(jì)算框架男娄,通過(guò)DAG 作業(yè)的方式運(yùn)行MapReduce 作業(yè)行贪,提供了程序運(yùn)行的整體處理邏輯,就可以去除工作流當(dāng)中多余的Map 階段模闲,減少不必要的操作建瘫,提升數(shù)據(jù)處理的性能。Hortonworks把Tez 應(yīng)用到數(shù)據(jù)倉(cāng)庫(kù)Hive 的優(yōu)化中尸折,使得性能提升了約100 倍啰脚。如圖15-13 所示,可以讓Tez 框架運(yùn)行在YARN 框架之上实夹,然后讓MapReduce橄浓、Pig 和Hive 等計(jì)算框架運(yùn)行在Tez框架之上,從而借助于Tez 框架實(shí)現(xiàn)對(duì)MapReduce亮航、Pig 和Hive 等的性能優(yōu)化荸实,更好地解決現(xiàn)有MapReduce 框架在迭代計(jì)算(如PageRank 計(jì)算)和交互式計(jì)算方面存在的問(wèn)題。

Tez在解決Hive缴淋、Pig延遲大准给、性能低等問(wèn)題的思路,是和那些支持實(shí)時(shí)交互式查詢(xún)分析的產(chǎn)品(如Impala重抖、Dremel和Drill等)是不同的露氮。Impala、Dremel和Drill的解決問(wèn)題思路是拋棄MapReduce計(jì)算框架钟沛,不再將類(lèi)似SQL語(yǔ)句的HiveQL或者Pig語(yǔ)句翻譯成MapReduce程序畔规,而是采用與商用并行關(guān)系數(shù)據(jù)庫(kù)類(lèi)似的分布式查詢(xún)引擎,可以直接從HDFS或者HBase中用SQL語(yǔ)句查詢(xún)數(shù)據(jù)恨统,而不需要把SQL語(yǔ)句轉(zhuǎn)化成MapReduce任務(wù)來(lái)執(zhí)行叁扫,從而大大降低了延遲,很好地滿(mǎn)足了實(shí)時(shí)查詢(xún)的要求延欠。但是陌兑,Tez則不同沈跨,比如由捎,針對(duì)Hive數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行優(yōu)化的“Tez+Hive”解決方案,仍采用MapReduce計(jì)算框架饿凛,但是對(duì)DAG的作業(yè)依賴(lài)關(guān)系進(jìn)行了裁剪狞玛,并將多個(gè)小作業(yè)合并成一個(gè)大作業(yè)软驰,這樣,不僅計(jì)算量減少了心肪,而且寫(xiě)HDFS次數(shù)也會(huì)大大減少锭亏。

Kafka

Kafka是由LinkedIn公司開(kāi)發(fā)的一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),用戶(hù)通過(guò)Kafka系統(tǒng)可以發(fā)布大量的消息硬鞍,同時(shí)也能實(shí)時(shí)訂閱消費(fèi)消息慧瘤。
在大數(shù)據(jù)時(shí)代涌現(xiàn)的新的日志收集處理系統(tǒng)(Flume、Scribe等)往往更擅長(zhǎng)批量離線(xiàn)處理固该,而不能較好地支持實(shí)時(shí)在線(xiàn)處理锅减。相對(duì)而言,Kafka可以同時(shí)滿(mǎn)足在線(xiàn)實(shí)時(shí)處理和批量離線(xiàn)處理伐坏。

Kafka設(shè)計(jì)的初衷是構(gòu)建一個(gè)可以處理海量日志怔匣、用戶(hù)行為和網(wǎng)站運(yùn)營(yíng)統(tǒng)計(jì)等的數(shù)據(jù)處理框架
最近幾年,Kafka在大數(shù)據(jù)生態(tài)系統(tǒng)中開(kāi)始扮演越來(lái)越重要的作用桦沉,在Uber每瞒、Twitter、Netflix纯露、LinkedIn剿骨、Yahoo、Cisco埠褪、Goldman Sachs等公司得到了大量的應(yīng)用懦砂。目前,在很多公司的大數(shù)據(jù)平臺(tái)中组橄,Kafka通常扮演數(shù)據(jù)交換樞紐的角色荞膘。

在公司的大數(shù)據(jù)生態(tài)系統(tǒng)中,可以把Kafka作為數(shù)據(jù)交換樞紐玉工,不同類(lèi)型的分布式系統(tǒng)(關(guān)系數(shù)據(jù)庫(kù)羽资、NoSQL數(shù)據(jù)庫(kù)、流處理系統(tǒng)遵班、批處理系統(tǒng)等)屠升,可以統(tǒng)一接入到Kafka,實(shí)現(xiàn)和Hadoop各個(gè)組件之間的不同類(lèi)型數(shù)據(jù)的實(shí)時(shí)高效交換狭郑,較好地滿(mǎn)足各種企業(yè)應(yīng)用需求腹暖。

Sqoop

Sqoop是一款開(kāi)源的工具,主要用于在Hadoop(Hive)與傳統(tǒng)的數(shù)據(jù)庫(kù)(mysql翰萨、postgresql...)間進(jìn)行數(shù)據(jù)的傳遞脏答,可以將一個(gè)關(guān)系型數(shù)據(jù)庫(kù)(例如 : MySQL ,Oracle ,Postgres等)中的數(shù)據(jù)導(dǎo)進(jìn)到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)進(jìn)到關(guān)系型數(shù)據(jù)庫(kù)中。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末殖告,一起剝皮案震驚了整個(gè)濱河市阿蝶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌黄绩,老刑警劉巖羡洁,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異爽丹,居然都是意外死亡筑煮,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)粤蝎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)咆瘟,“玉大人,你說(shuō)我怎么就攤上這事诽里√徊停” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵谤狡,是天一觀的道長(zhǎng)灸眼。 經(jīng)常有香客問(wèn)我,道長(zhǎng)墓懂,這世上最難降的妖魔是什么焰宣? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮捕仔,結(jié)果婚禮上匕积,老公的妹妹穿的比我還像新娘。我一直安慰自己榜跌,他們只是感情好闪唆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著钓葫,像睡著了一般悄蕾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上础浮,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天帆调,我揣著相機(jī)與錄音,去河邊找鬼豆同。 笑死番刊,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的影锈。 我是一名探鬼主播芹务,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蝉绷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了锄禽?” 一聲冷哼從身側(cè)響起潜必,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤靴姿,失蹤者是張志新(化名)和其女友劉穎沃但,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體佛吓,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宵晚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了维雇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淤刃。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖吱型,靈堂內(nèi)的尸體忽然破棺而出逸贾,到底是詐尸還是另有隱情,我是刑警寧澤津滞,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布铝侵,位于F島的核電站,受9級(jí)特大地震影響触徐,放射性物質(zhì)發(fā)生泄漏咪鲜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一撞鹉、第九天 我趴在偏房一處隱蔽的房頂上張望疟丙。 院中可真熱鬧,春花似錦鸟雏、人聲如沸享郊。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)拂蝎。三九已至,卻和暖如春惶室,著一層夾襖步出監(jiān)牢的瞬間温自,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工皇钞, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留悼泌,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓夹界,卻偏偏與公主長(zhǎng)得像馆里,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容