Hadoop大數(shù)據(jù)平臺架構(gòu)與實(shí)踐 | hadoop概述與安裝

e> Hadoop大數(shù)據(jù)平臺架構(gòu)與實(shí)踐--基礎(chǔ)篇


目錄

內(nèi)容概要
Hadoop前生
Hadoop的功能與優(yōu)勢
Hadoop的生態(tài)系統(tǒng)和版本
Hadoop安裝

內(nèi)容概要

1、大數(shù)據(jù)技術(shù)的相關(guān)概念
2昂秃、Hadoop的架構(gòu)和運(yùn)行機(jī)制
3禀梳、Hadoop的安裝和配置
4、Hadoop開發(fā)

Hadoop前生

大數(shù)據(jù)的存儲和分析肠骆,出現(xiàn)系統(tǒng)瓶頸:存儲容量算途、讀寫速度、計(jì)算效率...

Google提出了大數(shù)據(jù)技術(shù):MapReduce蚀腿、BigTable嘴瓤、GFS(Google File System)
(1)成本降低,不一定非得用大型機(jī)和高端存儲莉钙,也可使用PC機(jī)
(2)由軟件 容錯 硬件故障纱注,通過軟件保證可靠性
(3)簡化并行分布式計(jì)算,無需控制節(jié)點(diǎn)同步和數(shù)據(jù)交換胆胰,MapReduce:簡化分布式計(jì)算

Google只發(fā)表了相關(guān)論文狞贱,沒有公開源碼;Hadoop是模仿Google大數(shù)據(jù)技術(shù)的開源實(shí)現(xiàn)蜀涨。

Hadoop的功能與優(yōu)勢

開源的分布式存儲瞎嬉、分布式計(jì)算平臺

用來支撐Hadoop的兩個核心:

HDFS:分布式文件系統(tǒng)蝎毡,存儲海量數(shù)據(jù)
MapReduce:并行處理框架,實(shí)現(xiàn)任務(wù)分解和調(diào)度氧枣;分布式數(shù)據(jù)處理模型和執(zhí)行環(huán)境

Hadoop的功能:

(1)搭建大型數(shù)據(jù)倉庫沐兵,PB級數(shù)據(jù)的存儲、處理便监、分析扎谎、統(tǒng)計(jì)等業(yè)務(wù):搜索引擎、商業(yè)智能烧董、日志分析毁靶、風(fēng)險評估等

Hadoop的優(yōu)勢:

(1)高擴(kuò)展:增加硬件提升容量和性能
(2)低成本:不依賴于高端硬件、通過軟件容錯保證系統(tǒng)可靠性
(3)成熟的生態(tài)圈:工具集

  1. 運(yùn)行方便:Hadoop是運(yùn)行在由一般商用機(jī)器構(gòu)成的大型集群上逊移。Hadoop在云計(jì)算服務(wù)層次中屬于PaaS(Platform-as-a- Service):平臺即服務(wù)预吆。
  2. 健壯性:Hadoop致力于在一般的商用硬件上運(yùn)行,能夠從容的處理類似硬件失效這類的故障胳泉。
  3. 可擴(kuò)展性:Hadoop通過增加集群節(jié)點(diǎn)拐叉,可以線性地擴(kuò)展以處理更大的數(shù)據(jù)集。
  4. 簡單:Hadoop允許用戶快速編寫高效的并行代碼扇商。

Hadoop的生態(tài)系統(tǒng)和版本

Hadoop生態(tài)系統(tǒng)
HDFS(分布式文件系統(tǒng))
MapReduce(分布式計(jì)算框架)
Hive(基于MapReduce的數(shù)據(jù)倉庫)
Pig(數(shù)據(jù)倉庫)
HBase(分布式數(shù)據(jù)庫)
Mahout(數(shù)據(jù)挖掘庫)
Zookeeper(分布式協(xié)作服務(wù))
Sqoop(數(shù)據(jù)同步工具)
Flume(日志收集工具)
Oozie(作業(yè)流調(diào)度系統(tǒng))

Hadoop的生態(tài)系統(tǒng)

其中:

2)Nutch:互聯(lián)網(wǎng)數(shù)據(jù)及Nutch搜索引擎應(yīng)用
3)HDFS:Hadoop的分布式文件系統(tǒng)
5)MapReduce:分布式計(jì)算框架
6)Flume凤瘦、Scribe,Chukwa:數(shù)據(jù)收集案铺,收集非結(jié)構(gòu)化數(shù)據(jù)的工具
7) Hiho廷粒、Sqoop:將關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)入HDFS的工具
8) Hive:數(shù)據(jù)倉庫,pig分析數(shù)據(jù)的工具
10)Oozie:作業(yè)流調(diào)度引擎
11)Hue:Hadoop自己的監(jiān)控管理工具
12)Avro:數(shù)據(jù)序列化工具
13)mahout:數(shù)據(jù)挖掘工具
14)Hbase:分布式的面向列的開源數(shù)據(jù)庫

Hadoop2.0時代的生態(tài)系統(tǒng)
Hadoop2.0時代的生態(tài)系統(tǒng)
Hadoop的核心
Hadoop的核心

Hadoop1.0與Hadoop2.0的區(qū)別:
Hadoop1.0的核心由HDFS(Hadoop Distributed File System)和MapReduce(分布式計(jì)算框架)構(gòu)成红且,而在Hadoop2.0中增加了Yarn(Yet Another Resource Negotiator),來負(fù)責(zé)集群資源的統(tǒng)一管理和調(diào)度。

HDFS(Hadoop Distributed File System涤姊,分布式文件系統(tǒng))

HDFS簡單入門

為什么需要HDFS呢暇番?HDFS是一個file system,對文件進(jìn)行管理思喊。文件系統(tǒng)由三部分組成:與文件管理有關(guān)軟件壁酬、被管理文件以及實(shí)施文件管理所需數(shù)據(jù)結(jié)構(gòu)。

文件的讀取和寫入都需要時間恨课,而且寫文件需要更多的時間舆乔,大概是讀文件的3倍;當(dāng)數(shù)據(jù)集(文件)的大小超過一臺獨(dú)立物理計(jì)算機(jī)的存儲能力時剂公,就有必要對它進(jìn)行分區(qū)并存儲到若干臺單獨(dú)的計(jì)算機(jī)上——分布式文件存儲希俩。

經(jīng)典的分布式文件存儲概念

** HDFS的基本原理**

  • 將文件切分成等大的數(shù)據(jù)塊,存儲在多臺機(jī)器上纲辽;
  • 將數(shù)據(jù)切分颜武、容錯璃搜、負(fù)載均衡等功能透明化;
  • 可將HDFS看成容量巨大鳞上、具有高容錯性的磁盤

** HDFS的特點(diǎn) **

  • 良好的擴(kuò)展性
  • 高容錯性
  • 適合PB級以上海量數(shù)據(jù)的存儲

HDFS的應(yīng)用場景

  • 海量數(shù)據(jù)的可靠性存儲
  • 數(shù)據(jù)歸檔
MapReduce(分布式計(jì)算框架)

Mapreduce是一個計(jì)算框架这吻,既然是做計(jì)算的框架,那么表現(xiàn)形式就是有個輸入(input)篙议,mapreduce操作這個輸入(input)唾糯,通過本身定義好的計(jì)算模型,得到一個輸出(output)鬼贱,這個輸出就是我們所需要的結(jié)果移怯。

我們要學(xué)習(xí)的就是這個計(jì)算模型的運(yùn)行規(guī)則。在運(yùn)行一個mapreduce計(jì)算任務(wù)時候吩愧,任務(wù)過程被分為兩個階段:map階段和reduce階段芋酌,每個階段都是用鍵值對(key/value)作為輸入(input)和輸出(output)。而程序員要做的就是定義好這兩個階段的函數(shù):map函數(shù)和reduce函數(shù)雁佳。

Hive(基于MapReduce的數(shù)據(jù)倉庫)

Hive由facebook開源脐帝,最初用于解決海量結(jié)構(gòu)化的日志數(shù)據(jù)統(tǒng)計(jì)問題;是一種ETL(Extraction-Transformation-Loading)工具糖权。它也是構(gòu)建在Hadoop之上的數(shù)據(jù)倉庫堵腹;數(shù)據(jù)計(jì)算使用MR,數(shù)據(jù)存儲使用HDFS。

Hive定義了一種類似SQL查詢語言的HiveQL查詢語言星澳,除了不支持更新疚顷、索引和事務(wù),幾乎SQL的其他特征都能支持禁偎。它通常用于離線數(shù)據(jù)處理(采用MapReduce);我們可以認(rèn)為Hive的HiveQL語言是MapReduce語言的翻譯器腿堤,把MapReduce程序簡化為HiveQL語言。但有些復(fù)雜的MapReduce程序是無法用HiveQL來描述的如暖。

Hive提供shell笆檀、JDBC/ODBC、Thrift盒至、Web等接口酗洒。

Hive應(yīng)用場景

  • 日志分析:統(tǒng)計(jì)一個網(wǎng)站一個時間段內(nèi)的pv、uv 枷遂;比如百度樱衷、淘寶等互聯(lián)網(wǎng)公司使用hive進(jìn)行日志分析
  • 多維度數(shù)據(jù)分析
  • 海量結(jié)構(gòu)化數(shù)據(jù)離線分析
  • 低成本進(jìn)行數(shù)據(jù)分析(不直接編寫MR)
Pig(數(shù)據(jù)倉庫)

Pig由yahoo!開源,設(shè)計(jì)動機(jī)是提供一種基于MapReduce的ad-hoc數(shù)據(jù)分析工具酒唉。它通常用于進(jìn)行離線分析矩桂。

Pig是構(gòu)建在Hadoop之上的數(shù)據(jù)倉庫,定義了一種類似于SQL的數(shù)據(jù)流語言–Pig Latin,Pig Latin可以完成排序痪伦、過濾耍鬓、求和阔籽、關(guān)聯(lián)等操作,可以支持自定義函數(shù)牲蜀。Pig自動把Pig Latin映射為MapReduce作業(yè)笆制,上傳到集群運(yùn)行,減少用戶編寫Java程序的苦惱涣达。

Pig有三種運(yùn)行方式:Grunt shell在辆、腳本方式、嵌入式度苔。

Pig與Hive的比較
HBase(分布式數(shù)據(jù)庫)

Hbase原理匆篓、基本概念、基本架構(gòu)

HBase是一個構(gòu)建在HDFS上的分布式列存儲系統(tǒng)寇窑,基于Google的Big Table模型開發(fā)鸦概,是典型的key/value系統(tǒng),主要用于海量結(jié)構(gòu)化數(shù)據(jù)存儲甩骏,它是NoSQL的典型代表產(chǎn)品窗市。

從邏輯上講,HBase將數(shù)據(jù)按照表饮笛、行和列進(jìn)行存儲咨察。與hadoop一樣,Hbase目標(biāo)主要依靠橫向擴(kuò)展福青,通過不斷增加廉價的商用服務(wù)器摄狱,來增加計(jì)算和存儲能力。

Hbase表的特點(diǎn)

  • 大:一個表可以有數(shù)十億行无午,上百萬列媒役;
  • 無模式:每行都有一個可排序的主鍵和任意多的列,列可以根據(jù)需要動態(tài)的增加宪迟,同一張表中- 不同的行可以有截然不同的列酣衷;
  • 面向列:面向列(族)的存儲和權(quán)限控制,列(族)獨(dú)立檢索踩验;
  • 稀疏:空(null)列并不占用存儲空間,表可以設(shè)計(jì)的非常稀疏商玫;
  • 數(shù)據(jù)多版本:每個單元中的數(shù)據(jù)可以有多個版本箕憾,默認(rèn)情況下版本號自動分配,是單元格插入時的時間戳拳昌;
  • 數(shù)據(jù)類型單一:Hbase中的數(shù)據(jù)都是字符串袭异,沒有類型。
HBase數(shù)據(jù)模型

Hbase使用場景

  • 大數(shù)據(jù)量存儲炬藤、高并發(fā)操作
  • 需要對數(shù)據(jù)隨機(jī)讀寫操作
  • 讀寫訪問都是非常簡單的操作
Mahout(數(shù)據(jù)挖掘庫)

Mahout是基于MapReduce的數(shù)據(jù)挖掘 / 機(jī)器學(xué)習(xí)庫御铃,充分利用了MapReduce和HDFS的擴(kuò)展性和容錯性碴里,實(shí)現(xiàn)了聚類算法、分類算法和推薦算法

Mahout提供的算法
Zookeeper(分布式協(xié)作服務(wù))

ZooKeeper 是一個分布式的上真,開源的協(xié)作服務(wù)咬腋,可應(yīng)用于分布式應(yīng)用程序。它發(fā)布了一組簡單的原子操作睡互,分布式應(yīng)用程序在此基礎(chǔ)之上可以實(shí)現(xiàn)更高層次的服務(wù)根竿,如同步、配置維護(hù)就珠、群組和命名管理 等寇壳。它為易于編程而設(shè)計(jì),并且使用了一個類似于文件系統(tǒng)的目錄結(jié)構(gòu)風(fēng)格的數(shù)據(jù)模型妻怎。ZooKeeper service運(yùn)行于Java環(huán)境中壳炎,也可綁定于Java和C.

ZooKeeper 是一個用于對分布式系統(tǒng)進(jìn)行協(xié)作管理的服務(wù)程序,它本身也是分布式的逼侦,所以不要弄混了匿辩。對于我們自己的分布式系統(tǒng)來說,ZooKeeper就是一個用來管理的應(yīng)用程序(或者說服務(wù))偿洁。ZooKeeper提供了一個簡單易用的框架撒汉,由Service和Client兩大部分組成。

ZooKeeper的兩大組成部分
  • Service:由若干運(yùn)行的Server組成(1個或多個)涕滋,這些Server完全相同(除了可以部署在不同的機(jī)器上)睬辐,每個Server都維護(hù)著相同的數(shù)據(jù)結(jié)構(gòu)(類似于文件目錄結(jié)構(gòu)),這個樹形結(jié)構(gòu)中的節(jié)點(diǎn)叫znode宾肺,Server之間會自動同步數(shù)據(jù)溯饵。

  • Client:可以連接到Service,每個Client對象可以連接到一個指定(或自動分配)的Server锨用,用戶通過client可以在Server中創(chuàng)建并維護(hù)數(shù)據(jù)丰刊。因?yàn)椴煌腟erver維護(hù)的是同一份數(shù)據(jù)的復(fù)制,所以增拥,不同的client使用者之間啄巧,通過ZooKeeper Service,就可以達(dá)到共享數(shù)據(jù)(信息)的目的掌栅。

  • ZooKeeper還提供了Watch的功能秩仆,當(dāng)一個client改變了znode中的數(shù)據(jù),所有的client都可以得到通知猾封。ZooKeeper提供了Java和C語言的客戶端澄耍。

  • 對于ZooKeeper的使用者來說,只需要運(yùn)行Service,并且知道client的操作方法就可以了齐莲。在我們自己的分布式系統(tǒng)中痢站,每個節(jié)點(diǎn)通過創(chuàng)建ZooKeeper client,就可以利用ZooKeeper service來同步选酗,共享數(shù)據(jù)阵难,或者實(shí)現(xiàn)更復(fù)雜的功能了。

Zookeeper解決分布式環(huán)境下數(shù)據(jù)管理問題:

  • 統(tǒng)一命名
  • 狀態(tài)同步
  • 集群管理
  • 配置同步
Sqoop(數(shù)據(jù)同步工具)

Sqoop是連接Hadoop與傳統(tǒng)數(shù)據(jù)庫之間的橋梁星掰,它支持多種數(shù)據(jù)庫多望,包括MySQL、DB2等氢烘;插拔式怀偷,用戶可以根據(jù)需要支持新的數(shù)據(jù)庫。

Sqoop實(shí)質(zhì)上是一個MapReduce程序播玖,充分利用MR并行的特點(diǎn),充分利用MR的容錯性椎工。

Sqoop工作示意
Flume(日志收集工具)

Flume是一個分布式、可靠蜀踏、和高可用的海量日志聚合的系統(tǒng)维蒙,支持在系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù)果覆;同時颅痊,F(xiàn)lume提供對數(shù)據(jù)進(jìn)行簡單處理,并寫到各種數(shù)據(jù)接受方(可定制)的能力局待。

**Fulme 的特點(diǎn): **

  • 1斑响、可靠性
      當(dāng)節(jié)點(diǎn)出現(xiàn)故障時,日志能夠被傳送到其他節(jié)點(diǎn)上而不會丟失钳榨。Flume提供了三種級別的可靠性保障舰罚,從強(qiáng)到弱依次分別為:end-to-end(收到數(shù)據(jù)agent首先將event寫到磁盤上,當(dāng)數(shù)據(jù)傳送成功后薛耻,再刪除营罢;如果數(shù)據(jù)發(fā)送失敗,可以重新發(fā)送饼齿。)饲漾,Store on failure(這也是scribe采用的策略,當(dāng)數(shù)據(jù)接收方crash時缕溉,將數(shù)據(jù)寫到本地考传,待恢復(fù)后,繼續(xù)發(fā)送)倒淫,Best effort(數(shù)據(jù)發(fā)送到接收方后伙菊,不會進(jìn)行確認(rèn))。

  • 2敌土、可擴(kuò)展性
      Flume采用了三層架構(gòu)镜硕,分別為agent,collector和storage返干,每一層均可以水平擴(kuò)展兴枯。其中,所有agent和collector由master統(tǒng)一管理矩欠,這使得系統(tǒng)容易監(jiān)控和維護(hù)财剖,且master允許有多個(使用ZooKeeper進(jìn)行管理和負(fù)載均衡),這就避免了單點(diǎn)故障問題癌淮。

  • 3躺坟、可管理性
      所有agent和colletor由master統(tǒng)一管理,這使得系統(tǒng)便于維護(hù)乳蓄。多master情況咪橙,F(xiàn)lume利用ZooKeeper和gossip,保證動態(tài)配置數(shù)據(jù)的一致性虚倒。用戶可以在master上查看各個數(shù)據(jù)源或者數(shù)據(jù)流執(zhí)行情況美侦,且可以對各個數(shù)據(jù)源配置和動態(tài)加載。Flume提供了web 和shell script command兩種形式對數(shù)據(jù)流進(jìn)行管理魂奥。

  • 4菠剩、功能可擴(kuò)展性
      用戶可以根據(jù)需要添加自己的agent,collector或者storage耻煤。此外具壮,F(xiàn)lume自帶了很多組件,包括各種agent(file违霞, syslog等)嘴办,collector和storage(file,HDFS等)买鸽。

Oozie(作業(yè)流調(diào)度系統(tǒng))

目前計(jì)算框架和作業(yè)類型種類繁多:如MapReduce涧郊、Stream、HQL眼五、Pig等妆艘。這些作業(yè)之間存在依賴關(guān)系,周期性作業(yè)看幼,定時執(zhí)行的作業(yè)批旺,作業(yè)執(zhí)行狀態(tài)監(jiān)控與報警等。如何對這些框架和作業(yè)進(jìn)行統(tǒng)一管理和調(diào)度诵姜?

解決方案有多種:

  • Linux Crontab
  • 自己設(shè)計(jì)調(diào)度系統(tǒng)(淘寶等公司)
  • 直接使用開源系統(tǒng)(Oozie)

Oozie

  • Oozie是一個管理Hdoop作業(yè)(job)的工作流程調(diào)度管理系統(tǒng)汽煮。
  • Oozie的工作流是一系列動作的直接周期圖。
  • Oozie協(xié)調(diào)作業(yè)就是通過時間(頻率)和有效數(shù)據(jù)觸發(fā)當(dāng)前的Oozie工作流程
  • Oozie是Yahoo針對Apache Hadoop開發(fā)的一個開源工作流引擎。
  • 用于管理和協(xié)調(diào)運(yùn)行在Hadoop平臺上(包括:HDFS暇赤、Pig和MapReduce)的Jobs心例。Oozie是專為雅虎的全球大規(guī)模復(fù)雜工作流程和數(shù)據(jù)管道而設(shè)計(jì)。
  • Oozie圍繞著兩個核心進(jìn)行:工作流(Workflow)和協(xié)調(diào)器(Coordinator)鞋囊,前者定義任務(wù)拓?fù)浜蛨?zhí)行邏輯止后,后者負(fù)責(zé)工作流的依賴和觸發(fā)。
Oozie工作流周期圖
Hadoop發(fā)行版(開源版)介紹

推薦使用2.x.x版本
下載地址:http://hadoop.apache.org/releases.html

Hadoop安裝

參考:
安裝并運(yùn)行hadoop
SSH免密碼登錄以及失敗解決方案

配置(偽分布式的配置)

Hadoop-2.5.1集群安裝配置筆記

修改1個環(huán)境變量文件
  • hadoop-env.sh
    記錄腳本要用的環(huán)境變量溜腐,以運(yùn)行hadoop
    export JAVA_HOME=/usr/Java/jdk1.7.0_51(設(shè)置java環(huán)境變量)译株,即jdk的安裝目錄
修改3個配置文件
  • core-site.xml
    hadoop core的配置項(xiàng),例如hdfs和mapreduce常用的i/o設(shè)置等

  • hdfs-site.xml
    hadoop守護(hù)進(jìn)程的配置項(xiàng)挺益,包括namenode歉糜、輔助namenode和datanode等

  • mapred-site.xml
    MapReduce守護(hù)進(jìn)程的配置項(xiàng),包括jobtracker和tasktracker

遇到的坑

在ubuntu中配置SSH(解決connect to host localhost port 22: Connection refused問題)
為什么要安裝SSH望众?因?yàn)樵贖adoop啟動以后现恼,namenode是通過SSH(Secure Shell)來啟動和停止各個節(jié)點(diǎn)上的各種守護(hù)進(jìn)程的。

Ubuntu默認(rèn)并沒有安裝ssh服務(wù)黍檩,如果通過ssh鏈接Ubuntu叉袍,需要自己手動安裝openssh-server。判斷是否安裝ssh服務(wù)刽酱,可以通過如下命令進(jìn)行:

ssh localhost

在這之前要開啟 ssh-agent:

$ eval ssh-agent

添加私鑰:

$ ssh-add ~/.ssh/id_rsa

告訴ssh允許 ssh-agent 轉(zhuǎn)發(fā):
# 修改全局:
$ echo "ForwardAgent yes" >> /etc/ssh/ssh_config

啟動ssh service:

/etc/init.d/ssh start
啟動
[root@HostName sbin]# ./start-dfs.sh
[root@HostName sbin]# ./start-yarn.sh  
停止
[root@HostName sbin]# ./stop-dfs.sh  
[root@HostName sbin]# ./stop-yarn.sh
驗(yàn)證hadoop是否安裝成功

http://localhost:50030/ (MapReduce的web頁面)
http://localhost:50070/ (HDFS的web頁面)

跑個wordcount程序驗(yàn)證一下:
# 建一個input目錄喳逛,作為輸入
$mkdir input
$cd input

# 新建兩個文本文件
$echo "hello world">test1.txt
$echo "hello hadoop">test2.txt
$cd ..

# 將input文件上傳到HDFS,并重命名為in
$bin/hadoop dfs -put input in

# 調(diào)用yarn jar啟動YARN applications(Use yarn jar to launch YARN applications instead.)
$bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /in/input out

# 查看分析結(jié)果
$bin/hdfs dfs -cat /user/root/out/*

輸出:


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棵里,一起剝皮案震驚了整個濱河市润文,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌殿怜,老刑警劉巖典蝌,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異头谜,居然都是意外死亡骏掀,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門柱告,熙熙樓的掌柜王于貴愁眉苦臉地迎上來截驮,“玉大人,你說我怎么就攤上這事际度】” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵乖菱,是天一觀的道長坡锡。 經(jīng)常有香客問我蓬网,道長,這世上最難降的妖魔是什么鹉勒? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任拳缠,我火速辦了婚禮,結(jié)果婚禮上贸弥,老公的妹妹穿的比我還像新娘。我一直安慰自己海渊,他們只是感情好绵疲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著臣疑,像睡著了一般盔憨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上讯沈,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天郁岩,我揣著相機(jī)與錄音,去河邊找鬼缺狠。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的著觉。 我是一名探鬼主播纠俭,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼穷劈!你這毒婦竟也來了笼恰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤歇终,失蹤者是張志新(化名)和其女友劉穎社证,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體评凝,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡追葡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了奕短。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辽俗。...
    茶點(diǎn)故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖篡诽,靈堂內(nèi)的尸體忽然破棺而出崖飘,到底是詐尸還是另有隱情,我是刑警寧澤杈女,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布朱浴,位于F島的核電站吊圾,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏翰蠢。R本人自食惡果不足惜项乒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望梁沧。 院中可真熱鬧檀何,春花似錦、人聲如沸廷支。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恋拍。三九已至垛孔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間施敢,已是汗流浹背周荐。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留僵娃,地道東北人概作。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像默怨,于是被迫代替她去往敵國和親仆嗦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評論 2 355

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