大數據平臺hadoop分布式集群搭建(單機、集群拼弃、基于zookeeper高可用)

hadoop環(huán)境搭建夏伊,初始如果只有一臺可用server虛擬機可單臺搭建hdfs環(huán)境。生產環(huán)境hdfs環(huán)境大都采用基于zookeeper實現的高可用集群環(huán)境搭建肴敛。
機器環(huán)境:
10.176.2.101 master
10.176.2.103 zjx03
10.176.2.105 zjx05

hadoop集群準備工作:

主機名設置(三臺機器均修改好需要的主機名署海,根據上篇大數據平臺環(huán)境搭建準備做過的不用再做)
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=zjx05

需要進行切換用戶生效:
su - root

也可百度下設置用戶名和密碼,另外需要將進行網絡通信的主機名與ip加入/etc/hosts 医男。這里面配置的是其它主機的ip與主機名的映射砸狞,由此才可以通過主機名進行訪問。

vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.176.2.101 master
10.176.2.103 zjx03
10.176.2.105 zjx05
10.176.2.111 yjy11
10.176.2.113 yjy13
10.176.2.115 yjy15

可以使用主機名進行測試:
ssh master date

用戶名創(chuàng)建(另兩臺機器也創(chuàng)建镀梭,用戶創(chuàng)建生產環(huán)境需要創(chuàng)建刀森,此處該步驟省略,均使用root用戶)
useradd -u 8000 hadoop
echo '123456' | passwd --stdin hadoop
給hadoop用戶增加sudo權限报账,增加內容(另外兩臺主機上都得配置)
vim /etc/sudoers
hadoop ALL=(ALL) ALL

主機互信(集群環(huán)境必備)

如果之前沒有生成過私鑰與秘鑰研底,使用下一個步驟生成私鑰與密鑰,生成文件在家目錄下透罢,此處在目錄/root/.ssh下
ssh-keygen -t rsa
cd /root/.ssh
ls
ls看到會有公鑰與私鑰文件:
id_rsa id_rsa.pub (其中id_rsa是私鑰榜晦,id_rsa.pub是公鑰)
cp id_rsa.pub authorized_keys (拷貝一個文件,注意此處是公鑰id_rsa.pub文件)
上述在另兩臺機器上同樣進行生成生成authorized_keys羽圃。
ssh 10.176.2.101 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh 10.176.2.103 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh 10.176.2.105 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
該操作類似于使用ssh-copy-id root命令操作
出于安全性考慮乾胶,將這個授權key文件賦予600權限:
chmod 600 ~/.ssh/authorized_keys
將這個包含了所有互信機器認證key的認證文件,分發(fā)到各個機器中去
scp ~/.ssh/authorized_keys 10.176.2.103:~/.ssh/
scp ~/.ssh/authorized_keys 10.176.2.105:~/.ssh/
驗證互信朽寞,各節(jié)點執(zhí)行下面命令识窿,能不輸入密碼顯示時間,配置成功
ssh 10.176.2.101 date;ssh 10.176.2.103 date;ssh 10.176.2.105 date;
檢測成功脑融,上述將authorized_keys分發(fā)復制到其它機器上也可以使用腳本(后續(xù)多臺集群可以參考喻频,此處可暫不用)
vi bulkcp.sh

#! /bin/bash
for((i=101;i<=105;i=i+2))
do
scp -r $1 10.176.2.$i:$2
echo scp -r $1 10.176.2.$i:$2
done

./bulkcp.sh ~/.ssh ~/.ssh
可參考:
https://www.cnblogs.com/jyzhao/p/3781072.html

關閉防火墻

service iptables stop(關閉)
chkconfig iptables off (永久關閉,使用永久關閉,三臺機器均操作)
service iptables status
可參考:
https://www.cnblogs.com/maybo/p/5250668.html
重啟網絡服務
service network restart

jdk安裝

考慮安裝hadoop(2.7版本),此處使用jdk8肘迎,經測兼容
下載jdk1.8oracle官網,1.8.191版本,將tar.gz包jdk1.8.0_191.tar.gz上傳至/usr/lib/java/目錄下甥温,此處目錄任意,為了方便管理上傳至此目錄妓布。
解壓
tar -zxvf jdk1.8.0_191.tar.gz
配置環(huán)境變量(環(huán)境變量配置窿侈,配置環(huán)境很常用,建議記住)
vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_191
export PATH=$PATH:$JAVA_HOME/bin

刷新環(huán)境變量(記住該命令刷新環(huán)境變量)
source /etc/profile
將其拷貝至其它機器:
scp -r /usr/lib/java/jdk1.8.0_191 zjx03:/usr/lib/java/
scp -r /usr/lib/java/jdk1.8.0_191 zjx05:/usr/lib/java/
拷貝至另兩臺機器后也要類似配置環(huán)境變量然后source /etc/profile

hadoop相關下載地址:

zookeeper下載
http://archive.apache.org/dist/hadoop/zookeeper/
cdh版本下載
http://archive-primary.cloudera.com/cdh5/cdh/5/
apache hadoop版本:
https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
hadoop版本下載:
http://central.maven.org/maven2/org/apache/hadoop/
可以配置源下載安裝更便捷

hadoop安裝配置

mkdir -p /opt/softwares (用于后續(xù)存放zookeeper秋茫、hadoop等包)
下載好的zookeepertar.gz包上傳至該目錄(上傳至此目錄不放家目錄是由于開始本人linux虛擬機家目錄下分區(qū)只有2g):
zookeeper版本:zookeeper-3.4.5-cdh5.12.2
tar -zxvf zookeeper-3.4.5-cdh5.12.2.tar.gz
hadoop版本:hadoop-2.7.7
tar -zxvf hadoop-2.7.7.tar.gz
rm -rf zookeeper-3.4.5-cdh5.12.2.tar.gz
rm -rf hadoop-2.7.7.tar.gz (刪除tar.gz包節(jié)約空間)
cd /opt/softwares/hadoop-2.7.7
cd share/
rm -rf doc/ (刪除不必要的文件 一般是windows下的說明文件,節(jié)省空間)
cd ..
cd etc/
cd hadoop/
rm -rf *.cmd

1.單機版hadoop環(huán)境搭建
單機版搭建參考如下鏈接乃秀,可以直接看第3部分基于zookeeper的hadoop環(huán)境搭建如下配置肛著,只是配置文件內容有所差異圆兵,單機版相對更容易搭建
https://www.cnblogs.com/dulixiaoqiao/p/6939818.html
2.hadoop三臺集群搭建(未使用zookeeper實現高可用集群搭建)
參考下篇,該搭建較好枢贿,也主要是配置文件差異殉农,三者主要是對Secondary的高可用實現機制差異,推薦看第三種基于zookeeper的hadoop集群環(huán)境搭建(完整安裝):
https://www.cnblogs.com/winter1519/p/10201142.html

3.基于zookeeper的hadoop集群環(huán)境搭建

安裝配置zookeeper

cd /opt/softwares/zookeeper-3.4.5-cdh5.12.2/conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg

# dataDir=/tmp/zookeeper
#下述新增在注釋的dataDir后面
dataDir=/opt/softwares/zookeeper-3.4.5-cdh5.12.2/zkData
# 下述server配置放在該文件最末
server.1=master:2888:3888
server.2=zjx03:2888:3888
server.3=zjx05:2888:3888

dataDir=/opt/softwares/zookeeper-3.4.5-cdh5.12.2/zkData 這個下面是myid文件,必須這樣寫局荚,最后的添加2888端口是leader和flower之間通信的端口超凳,3888端口是flower之間選舉的端口。
mkdir /opt/softwares/zookeeper-3.4.5-cdh5.12.2/zkData
touch /opt/softwares/zookeeper-3.4.5-cdh5.12.2/zkData/myid
echo 1 > /opt/softwares/zookeeper-3.4.5-cdh5.12.2/zkData/myid
myid中的值和server.1,server.2,server.3中的對應應分別按照機器寫入1耀态,2轮傍,3),創(chuàng)建的文件夾zkData存儲zookeeper產生的數據(類似后續(xù)hadoop配置中創(chuàng)建的tmp文件夾衩匣,此處也可以創(chuàng)建為tmp)
將配置好的zookeeper拷貝到其它節(jié)點
scp -r /opt/softwares/zookeeper-3.4.5-cdh5.12.2 zjx03:/opt/softwares/
scp -r /opt/softwares/zookeeper-3.4.5-cdh5.12.2 zjx05:/opt/softwares/
修改zjx03田炭、zjx05機器節(jié)點上對應的myid
zjx03:
echo 2 > /opt/softwares/zookeeper-3.4.5-cdh5.12.2/zkData/myid
zjx05:
echo 3 > /opt/softwares/zookeeper-3.4.5-cdh5.12.2/zkData/myid
啟動zookeeper
cd /opt/softwares/zookeeper-3.4.5-cdh5.12.2/bin
./zkServer.sh start
./zkServer.sh status
后續(xù)停止zookeeper為./zkServer.sh stop
由于安裝于本機測試使用觅廓,每次需要停止集群(生產環(huán)境一般不會停止集群,只會對單個宕機的節(jié)點進行啟動修復)驰吓,此處將zookpeer配置環(huán)境變量,方便啟動系奉,同樣對另兩臺進行同樣配置
vim /etc/profile

export ZOOKEEPER_HOME=/opt/softwares/zookeeper-3.4.5-cdh5.12.2
export PATH=$ZOOKEEPER_HOME/bin:$PATH

source /etc/profile
啟動zookeeper
zkServer.sh start
查看zookeeper狀態(tài)
zkServer.sh status
停止zookeeper
zkServer.sh stop

安裝配置hadoop

配置hdfs(hadoop2.x所有的配置文件都在HADOOP_HOME/etc/hadoop目錄下)
配置環(huán)境變量
vim /etc/profile

export HADOOP_HOME=/opt/softwares/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source  /etc/profile

安裝配置
cd /opt/softwares/hadoop-2.7.7/etc/hadoop
vim hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_191
vim core-site.xml

<configuration>
        <!--單節(jié)點部署如下配置 -->
        <!--
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:9000</value>
        </property>
        -->
        <!--指定hdfs的nameservice為ns1-->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://ns1</value>
        </property>

        <!--指定hadoop臨時目錄-->
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/softwares/hadoop-2.7.7/data/tmp</value>
        </property>
        <!--指定zookeeper地址-->
        <property>
                <name>ha.zookeeper.quorum</name>
                <value>master:2181,zjx03:2181,zjx05:2181</value>
        </property>
</configuration>

vim hdfs-site.xml

<configuration>
    <!--指定hdfs的nameservice為ns1檬贰,需要和core-site.xml中的保持一致 -->
    <property>
        <name>dfs.nameservices</name>
        <value>ns1</value>
    </property>

    <!-- ns1下面有兩個NameNode,分別是nn1缺亮,nn2 -->
    <property>
        <name>dfs.ha.namenodes.ns1</name>
        <value>nn1,nn2</value>
    </property>

    <!-- nn1的RPC通信地址 -->
    <property>
        <name>dfs.namenode.rpc-address.ns1.nn1</name>
        <value>master:9000</value>
    </property>

    <!-- nn1的http通信地址,有個管理界面用于下載文件 -->
    <property>
        <name>dfs.namenode.http-address.ns1.nn1</name>
        <value>master:50070</value>
    </property>

    <!-- nn2的RPC通信地址 -->
    <property>
        <name>dfs.namenode.rpc-address.ns1.nn2</name>
        <value>zjx03:9000</value>
    </property>

    <!-- nn2的http通信地址 -->
    <property>
        <name>dfs.namenode.http-address.ns1.nn2</name>
        <value>zjx03:50070</value>
    </property>

    <!-- 指定NameNode的元數據在JournalNode上的存放位置 -->
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://master:8485;zjx03:8485;zjx05:8485/ns1</value>
    </property>

    <!-- 指定JournalNode在本地磁盤存放數據的位置 -->
    <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/opt/softwares/hadoop-2.7.7/journal</value>
    </property>

    <!-- 開啟NameNode失敗自動切換 -->
    <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>
    <!-- 配置失敗自動切換實現方式,通過ConfiguredFailoverProxyProvider這個類實現自動切換 -->
    <property>
        <name>dfs.client.failover.proxy.provider.ns1</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property> 

<!-- 配置隔離機制方法翁涤,多個機制用換行分割,即每個機制暫用一行瞬内,隔離機制sshfence的意思是:當一個namenode壞了迷雪,但還沒有宕機,這樣的話還處于active狀態(tài)虫蝶,為讓另一個namenode正常成為active,另外一個namenode會向壞掉的 namenode發(fā)一個命令把它殺掉章咧。shell(/bin/true)的意思是:如果active節(jié)點,完全宕機能真,那zkfc就不能匯報信息了赁严,這樣,standby很長時間收不到消息粉铐,當收不到消息時疼约,standby就啟動一個腳本,如果這個腳本返回true蝙泼,就會變成active-->
    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>
            sshfence
            shell(/bin/true)
        </value>
    </property>
    <!-- 使用sshfence隔離機制時需要ssh免登陸 -->
    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/root/.ssh/id_rsa</value>
    </property>
    <!-- 配置sshfence隔離機制超時時間(active壞了之后程剥,standby如果沒有在30秒之內未連接上,那么standby將變成active) -->
    <property>
        <name>dfs.ha.fencing.ssh.connect-timeout</name>
        <value>30000</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
        <!--下述兩個配置為單機版hadoop配置-->
    <!--
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>
    -->

</configuration>             

vim mapred-site.xml

<configuration>
    <!-- 告訴hadoop以后MR運行在yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

vim yarn-env.xml

export JAVA_HOME=/usr/lib/java/jdk1.8.0_191

vim yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
    <!--RM高可靠 -->
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
    </property>
    <!-- 指定RM的cluster id -->
    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>yrc</value>
    </property>
    <!-- 指定RM的名字 -->
    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
    </property>
    <!-- 分別指定RM的地址 -->
    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>zjx03</value>
    </property>
    <!-- 指定zk集群地址 -->
    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>master:2181,zjx03:2181,zjx05:2181</value>
    </property>

    <!--reduce獲取數據時通過shuffle方式-->
    <!--
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    -->

    <!-- NodeManager獲取數據的方式是shuffle-->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
          <!-- 指定YARN的老大(resourcemanager)的地址 -->
        <!--
    <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>master</value>
        </property>
    -->
</configuration>

vim slaves (用于指定集群在網絡中的主機節(jié)點有那些)

master
zjx03
zjx05

將配置好的hadoop拷貝到其他節(jié)點
scp -r /opt/softwares/hadoop-2.7.7 zjx03:/opt/softwares/
scp -r /opt/softwares/hadoop-2.7.7 zjx05:/opt/softwares/

配置完成汤踏,啟動织鲸,先啟動zookeeper(三臺機器均啟動zookeeper舔腾,此時查看zookeeper狀態(tài)會有l(wèi)eader與flower節(jié)點),再啟動hdfs
zkServer.sh start (三臺均啟動)
啟動驗證效果

image

hadoop-daemons.sh start journalnode (三臺均啟)

image

格式化hdfs(只需要格式化一次搂擦,后續(xù)啟動集群不用再格式化稳诚,不要格式化多次,多次格式化會造成namenodeId不一致瀑踢,需要刪除/opt/softwares/hadoop-2.7.7/data/tmp/下所有文件重新格式化才不報錯)
hdfs namenode -format
首次格式化后/opt/softwares/hadoop-2.7.7/data/tmp下的文件復制到另外兩個節(jié)點對應目錄下
scp -r /opt/softwares/hadoop-2.7.7/data/tmp zjx03:/opt/softwares/hadoop-2.7.7/data/

scp -r /opt/softwares/hadoop-2.7.7/data/tmp zjx05:/opt/softwares/hadoop-2.7.7/data/
格式化ZK(在master上執(zhí)行,若不能啟動結點再在其他機器上執(zhí)行扳还,作用是協(xié)助namenode進行高可靠,向zookeeper匯報)
hdfs zkfc -formatZK (同樣只需要格式化一次)
啟動zk
hadoop-daemon.sh start zkfc

image

啟動HDFS(master上執(zhí)行)
start-dfs.sh

image

啟動YARN(zjx03上執(zhí)行start-yarn.sh橱夭,把namenode和resourcemanager分開是因為性能問題氨距,因為他們都要占用大量資源,所以把他們分開了徘钥,分開了就要分別在不同的機器上啟動)
start-yarn.sh

image

啟動后效果如下:
jps查看集群進程如下

[root@master ~]# jps
2080 JournalNode
2417 DataNode
2982 Jps
2153 DFSZKFailoverController
2841 NodeManager
2313 NameNode
1994 QuorumPeerMain
[root@zjx03 ~]# jps
2289 ResourceManager
2145 DFSZKFailoverController
1826 JournalNode
1909 NameNode
1978 DataNode
2556 Jps
2397 NodeManager
1774 QuorumPeerMain
[root@zjx05 ~]# jps
1985 NodeManager
1747 JournalNode
1637 QuorumPeerMain
1829 DataNode
2118 Jps

頁面監(jiān)測:
http://10.176.2.101:50070

image

http://10.176.2.103:50070

image

hadoop 總有警告解決辦法:

vim /opt/softwares/hadoop-2.7.7/etc/hadoop/hadoop-env.sh
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native" 

hdfs與mapreduce測試
[root@master tmp]# hadoop fs -mkdir -p /tmp/zhoujixiang
[root@master tmp]# hadoop fs -ls /tmp/
[root@master tmp]# hdfs dfs -ls /tmp/
[root@master tmp]# cd /opt/softwares/hadoop-2.7.7/data/tmp
[root@master tmp]# touch test.txt
[root@master tmp]# vim test.txt 
[root@master tmp]# hadoop fs -put ./test.txt /tmp/zhoujixiang/
19/01/19 11:56:56 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
[root@master tmp]# hadoop fs -ls /tmp/zhoujixiang
19/01/19 11:57:22 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 1 items
-rw-r--r--   3 root supergroup         78 2019-01-19 11:56 /tmp/zhoujixiang/test.txt
[root@master tmp]# hadoop fs -cat /tmp/zhoujixiang/*
hello hadoop
hello hdfs
hello zookeeper
hello mapreduce
hello hdfs mapreduce 

[root@master mapreduce]# hadoop fs -mkdir -p /tmp/zhoujixiang/input
[root@master mapreduce]# hadoop fs -mv  /tmp/zhoujixiang/test.txt /tmp/zhoujixiang/input/
[root@master mapreduce]# hadoop fs -ls /tmp/zhoujixiang/input/
[root@master mapreduce]# hadoop  jar  /opt/softwares/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar  wordcount  /tmp/zhoujixiang/input/test.txt  /tmp/zhoujixiang/output/
[root@master mapreduce]# hadoop fs -cat /tmp/zhoujixiang/output/*
hadoop  1
hdfs    2
hello   5
mapreduce   2
zookeeper   1
[root@master mapreduce]# yarn application -list

至此已經安裝配置okay衔蹲,且做了簡單練習,各位老板看到這里辛苦了呈础!
經過安裝練習舆驶,結合hadoop架構,從而更好了解其整個架構體系而钞,包括從2.x的secondNameNode交給zookeeper集群管理沙廉,zookeeper的管理架構(zkfc、quoru)臼节。

后續(xù)啟動hdfs集群順序如下:

zkServer.sh start (三臺均啟)
hadoop-daemons.sh start journalnode (三臺均啟)
hadoop-daemon.sh start zkfc (master上啟動即可)
start-dfs.sh (master上啟動即可)
start-yarn.sh (zjx03節(jié)點啟動撬陵,非主節(jié)點啟動)

后續(xù)停止集群停止順序與啟動順序相反:

stop-yarn.sh (zjx03節(jié)點停止,在啟動節(jié)點上停止)
stop-dfs.sh (master節(jié)點停止网缝,在啟動節(jié)點上停止巨税,停止后其它server均停,除過zkServer)
zkServer.sh stop(三臺均停)

參考鏈接:
https://blog.csdn.net/a1275302036/article/details/75268862
https://blog.csdn.net/qq_30003943/article/details/83788377

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末粉臊,一起剝皮案震驚了整個濱河市草添,隨后出現的幾起案子,更是在濱河造成了極大的恐慌扼仲,老刑警劉巖远寸,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異屠凶,居然都是意外死亡驰后,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進店門矗愧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灶芝,“玉大人,你說我怎么就攤上這事〖嗍穑” “怎么了颤专?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長钠乏。 經常有香客問我,道長春塌,這世上最難降的妖魔是什么晓避? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮只壳,結果婚禮上俏拱,老公的妹妹穿的比我還像新娘。我一直安慰自己吼句,他們只是感情好锅必,可當我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惕艳,像睡著了一般搞隐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上远搪,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天劣纲,我揣著相機與錄音,去河邊找鬼谁鳍。 笑死癞季,一個胖子當著我的面吹牛,可吹牛的內容都是我干的倘潜。 我是一名探鬼主播绷柒,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼涮因!你這毒婦竟也來了废睦?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤蕊退,失蹤者是張志新(化名)和其女友劉穎郊楣,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體瓤荔,經...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡净蚤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了输硝。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片今瀑。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出橘荠,到底是詐尸還是另有隱情屿附,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布哥童,位于F島的核電站挺份,受9級特大地震影響,放射性物質發(fā)生泄漏贮懈。R本人自食惡果不足惜匀泊,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望朵你。 院中可真熱鬧各聘,春花似錦、人聲如沸抡医。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忌傻。三九已至大脉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間芯勘,已是汗流浹背箱靴。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荷愕,地道東北人衡怀。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像安疗,于是被迫代替她去往敵國和親抛杨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,654評論 2 354

推薦閱讀更多精彩內容