Hadoop集群+Zookeeper集群+Hbase集群+Pinpoint詳細(xì)部署文檔

認(rèn)識(shí)Pinpoint

Pinpoint是一款開源的 APM (Application Performance Management/應(yīng)用性能管理)用java開發(fā)的分布式事務(wù)跟蹤系統(tǒng)吆倦。思路基于google Dapper,通過跟蹤分布式應(yīng)用之間的調(diào)用來提供解決方案,以幫助分析系統(tǒng)的總體結(jié)構(gòu)和內(nèi)部模塊之間如何相互聯(lián)系衔彻。

  1. Pinpoint優(yōu)點(diǎn)
  • 更清晰的了解各個(gè)應(yīng)用之間的拓?fù)浼軜?gòu)
  • 監(jiān)控各個(gè)應(yīng)用實(shí)時(shí)情況
  • 清晰了解事務(wù)的管理(代碼級(jí)別)
  • 增加Pinpoint監(jiān)控不需要修改一句代碼淤齐,無侵入式
  • 它對(duì)性能的影響最醒А(只增加約3%資源利用率)
  1. Pinpoint github地址
    pinpoint https://github.com/naver/pinpoint

環(huán)境準(zhǔn)備

  1. 機(jī)器的規(guī)劃
主機(jī)名 IP地址 操作系統(tǒng) 安裝項(xiàng)目
master 192.168.1.235 CentOS6.7 hbase;hadoop;zookeeper;
slave1 192.168.1.236 CentOS6.7 hbase;hadoop;zookeeper;pinpoint-collect
slave2 192.168.1.237 CentOS6.7 hbase;hadoop;zookeeper;pinpoint-web
  1. 版本的選擇
軟件 版本
jdk 1.8
hadoop 2.6.5
hbase 1.2.6
pinpoint-agent 1.6.2
pinpoint-collector 1.6.2
pinpoint-web 1.6.2
zookeeper 3.4.8
  1. 配置所有機(jī)器的hosts和hostname
vim /etc/sysconfig/network
對(duì)應(yīng)的機(jī)器修改里面HOSTNAME=master盈简,第二臺(tái)修改成salve1碘裕,第三臺(tái)修改成slave2
vim /etc/hosts 
在該文件下把三臺(tái)服務(wù)器加入(分別在三臺(tái)服務(wù)器都操作)
192.168.1.235       master
192.168.1.236       slave1
192.168.1.237       slave2

重啟服務(wù)器生效

  1. 配置各個(gè)服務(wù)器之間免密碼登錄
  • 輸入命令携取,ssh-keygen -t rsa,生成key帮孔,一直按回車
    就會(huì)在/root/.ssh生成:authorized_keys雷滋,id_rsa.pub,id_rsa 三個(gè)文件
  • 在master機(jī)器執(zhí)行以下操作
cd /root/.ssh/
cat id_rsa.pub >> authorized_keys
scp id_rsa.pub root@slave1:/root/.ssh/id_rsa_master.pub  //把master的公鑰拷貝到slave1
scp id_rsa.pub root@slave2:/root/.ssh/id_rsa_master.pub /把master的公鑰拷貝到slave2
  • 切換到slave1機(jī)器
cd /root/.ssh/
cat id_rsa_master.pub >> authorized_keys
scp id_rsa.pub root@master:/root/.ssh/id_rsa_slave1.pub //把slave1的公鑰拷貝到master
  • 切換到slave2機(jī)器
cd /root/.ssh/
cat id_rsa_master.pub >> authorized_keys
scp id_rsa.pub root@master:/root/.ssh/id_rsa_slave2.pub  //把slave2的公鑰拷貝到master
  • 再切換到master機(jī)器,將slave1公鑰和slave2的公鑰加進(jìn)authorized_keys
cat id_rsa_slave1.pub >> authorized_keys
cat id_rsa_slave2.pub >> authorized_keys
  • 在master機(jī)器執(zhí)行ssh slave1 或 ssh slave2 不需要輸入密碼即可登錄惊豺,在slave1 或 slave2 執(zhí)行ssh master 也是不需要密碼燎孟,那表示已經(jīng)配置成功
  1. 上傳需要安裝的文件到服務(wù)器/root/soft目錄


  2. 關(guān)閉防火墻和SELinux
關(guān)閉防火墻:
service iptables stop
chkconfig iptables off
關(guān)閉SELinux:
vi /etc/selinux/config
把SELINUX 改成 disabled  
SELINUX=disabled  
重啟后永久關(guān)閉

安裝JDK

解壓jdk包禽作,放到/usr/local/

cd /root/soft/
tar -zxvf jdk-8u181-linux-x64.tar.gz 
mv jdk1.8.0_181/ /usr/local/

配置環(huán)境變量

vim /etc/profile
在文件的最后面加上
export JAVA_HOME=/usr/local/jdk1.8.0_181
export JRE_HOME=/usr/local/jdk1.8.0_181/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
然后保存退出
source /etc/profile  //讓環(huán)境變量生效
然后執(zhí)行 java -version
[root@master jdk1.8.0_181]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
顯示表示jdk配置正常

同樣在其它兩臺(tái)機(jī)器slave1 和 slave2 執(zhí)行同樣的的操作

安裝Hadoop集群

  1. 解壓hadoop和配置環(huán)境變量(三臺(tái)機(jī)器同樣配置)
cd /root/soft/
tar -zxvf hadoop-2.6.5.tar.gz
mv hadoop-2.6.5 /usr/local/
vim /etc/profile
追加以下內(nèi)容
export HADOOP_HOME=/usr/local/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/sbin
export PATH=$PATH:$HADOOP_HOME/bin
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
保存退出

執(zhí)行 soure /etc/profile

2.配置文件

  • 切換到hadoop配置目錄
cd /usr/local/hadoop-2.6.5/etc/hadoop
  • 配置hadoop-env.sh尸昧、yarn-env.sh
vim hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_181

vim yarn-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_181
  • 配置 core-site.xml文件
<configuration>
<property>
    <name>fs.default.name</name> <!--NameNode 的URI-->
    <value>hdfs://master:9000</value> 
  </property>
  <property>
    <name>hadoop.tmp.dir</name> <!--hadoop臨時(shí)文件的存放目錄-->
    <value>/data/hadoop/dfs/tmp</value> <!--找個(gè)地方放就好了-->
  </property>
  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
  </property>
  <property>
    <name>hadoop.native.lib</name>
    <value>true</value>
  </property>
</configuration>
  • 配置 hdfs-site.xml文件
<configuration>
 <property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>master:9001</value>
 </property>
  <property>
   <name>dfs.namenode.name.dir</name><!--namenode持久存儲(chǔ)名字空間及事務(wù)日志的本地文件系統(tǒng)路徑-->
   <value>file:/data/hadoop/dfs/name</value>
 </property>
 <property>
  <name>dfs.datanode.data.dir</name><!--DataNode存放塊數(shù)據(jù)的本地文件系統(tǒng)路徑-->
  <value>file:/data/hadoop/dfs/data</value>
 </property>
 <property>
  <name>dfs.replication</name>   <!--數(shù)據(jù)需要備份的數(shù)量,不能大于集群的機(jī)器數(shù)量旷偿,默認(rèn)為3-->
  <value>2</value>
 </property>
 <property>
  <name>dfs.webhdfs.enabled</name> <!--設(shè)置為true烹俗,可以在瀏覽器中IP+port查看-->
  <value>true</value>
 </property>
</configuration>
  • 配置mapred-site.xml文件
文件夾上沒有這個(gè)文件,創(chuàng)建個(gè)新的文件
 cp mapred-site.xml.template mapred-site.xml
配置文件如下:
<configuration>
  <property>
        <name>mapreduce.framework.name</name> <!--mapreduce運(yùn)用了yarn框架萍程,設(shè)置name為yarn-->        
        <value>yarn</value>
  </property>
   <property>
         <name>mapreduce.jobhistory.address</name> <!--歷史服務(wù)器,查看Mapreduce作業(yè)記錄-->       
         <value>master:9003</value>
   </property>
   <property>
        <name>mapreduce.jobhistory.webapp.address</name>
         <value>master:9002</value>
   </property>
</configuration>
  • 配置yarn-site.xml 文件
<configuration>
<property>
   <name>yarn.nodemanager.aux-services</name><!--NodeManager上運(yùn)行的附屬服務(wù)幢妄,用于運(yùn)行mapreduce-->
   <value>mapreduce_shuffle</value>
  </property>
  <property>
   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
   <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
  <property>
   <name>yarn.resourcemanager.address</name> <!--ResourceManager 對(duì)客戶端暴露的地址-->
   <value>master:9015</value>
  </property>
  <property>
   <name>yarn.resourcemanager.scheduler.address</name><!--ResourceManager 對(duì)ApplicationMaster暴露的地址-->
   <value>master:9011</value>
  </property>
   <property> <!--ResourceManager 對(duì)NodeManager暴露的地址-->
  <name>yarn.resourcemanager.resource-tracker.address</name>        
  <value>master:9012</value> 
 </property> 
  <property>
   <name>yarn.resourcemanager.admin.address</name><!--ResourceManager 對(duì)管理員暴露的地址--> 
   <value>master:9013</value>
  </property>
  <property><!--ResourceManager 對(duì)外web暴露的地址,可在瀏覽器查看-->
   <name>yarn.resourcemanager.webapp.address</name>
   <value>master:9014</value>
  </property>
</configuration>
  • 配置slaves文件
vim slaves
去除默認(rèn)的localhost茫负,加入slave1蕉鸳、slave2,保存退出
  1. 同步文件到hadoop的各個(gè)節(jié)點(diǎn)
scp -r hadoop-2.6.5/ root@slave1:/usr/local/
scp -r hadoop-2.6.5/ root@slave2:/usr/local/
  1. hadoop的啟動(dòng)和停止
  • 在Master服務(wù)器啟動(dòng)hadoop忍法,從節(jié)點(diǎn)會(huì)自動(dòng)啟動(dòng)潮尝,進(jìn)入Hadoop目錄下,輸入命令
bin/hdfs namenode -format進(jìn)行hdfs格式化
sbin/start-all.sh饿序,進(jìn)行啟動(dòng) 也可以用 sbin/start-dfs.sh勉失、sbin/start-yarn.sh 分別啟動(dòng)
在master 上輸入命令:jps, 看到ResourceManager原探、NameNode乱凿、SecondaryNameNode進(jìn)程
在slave 上輸入命令:jps, 看到DataNode咽弦、NodeManager進(jìn)程徒蟆,出現(xiàn)這5個(gè)進(jìn)程就表示Hadoop啟動(dòng)成功。
  • 在瀏覽器中輸入http://192.168.1.235:50070查看master狀態(tài)型型,輸入http://192.168.1.235:9014查看集群狀態(tài)
  • 停止hadoop段审,進(jìn)入Hadoop目錄下,輸入命令:sbin/stop-all.sh输莺,即可停止master和slave的Hadoop進(jìn)程

安裝Zookeeper集群

  1. 解壓
cd /root/soft
tar -zxvf zookeeper-3.4.8.tar.gz 
mv zookeeper-3.4.8/ /usr/local/
  1. 建目錄(三臺(tái)機(jī)器執(zhí)行)
mkdir -p /data/zookeeper/server
mkdir -p /data/zookeeper/log
  1. 配置環(huán)境變量(三臺(tái)機(jī)器執(zhí)行)
vim /etc/profile
添加
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.8
export PATH=$PATH:$ZOOKEEPER_HOME/bin

執(zhí)行source /etc/profile

  1. 修改配置文件
cd /usr/local/zookeeper-3.4.8/conf/
cp zoo_sample.cfg  zoo.cfg
vim zoo.cfg

將dataDir修改成
dataDir=/data/zookeeper/server

增加以下內(nèi)容
dataLogDir=/data/zookeeper/log
server.0=master:2888:3888   
server.1=slave1:2888:3888   
server.2=slave2:2888:3888
保存退出
  1. 增加myid文件
cd /data/zookeeper/server/
touch myid
echo 0 > myid

6.同步到各個(gè)zookeeper節(jié)點(diǎn)

cd /usr/local
scp -r zookeeper-3.4.8/ root@slave1:/usr/local/
scp -r zookeeper-3.4.8/ root@slave2:/usr/local/
  1. 修改slave1 和 slave2 的myid文件
slave1:
touch /data/zookeeper/server/myid 
echo 1 > /data/zookeeper/server/myid 
slave2:
touch /data/zookeeper/server/myid 
echo 2 > /data/zookeeper/server/myid 
  1. 啟動(dòng)各個(gè)節(jié)點(diǎn)的zookeeper
zkServer.sh start

啟動(dòng)完成后戚哎,可以看各個(gè)節(jié)點(diǎn)的狀態(tài)
[root@master bin]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.8/bin/../conf/zoo.cfg
Mode: leader

安裝Hbase集群

  1. 解壓文件
tar -zxvf hbase-1.2.6.1-bin.tar.gz
mv hbase-1.2.6.1 /usr/local/
  1. 配置環(huán)境變量(三臺(tái)機(jī)器都要操作)
vim /etc/profile
添加以下內(nèi)容
export  HBASE_HOME=/usr/local/hbase-1.2.6.1
export  PATH=$HBASE_HOME/bin:$PATH
保存退出
執(zhí)行 source /etc/profile
  1. 修改配置文件
  • 轉(zhuǎn)到hbase的配置目錄
cd /usr/local/hbase-1.2.6.1/conf/
  • 修改hbase-env.sh
vim hbase-env.sh
去掉注釋 export  HBASE_MANAGES_ZK=true,改成false,不用hbase自帶的zookeeper嫂用,用自建的zookeeper集群
修改export JAVA_HOME=/usr/local/jdk1.8.0_181
  • 配置hbase-site.xml文件
<configuration>
        <property> <!-- hbase存放數(shù)據(jù)目錄 -->
                <name>hbase.rootdir</name>
                <value>hdfs://master:9000/hbase</value><!-- 端口要和Hadoop的fs.defaultFS端口一致-->
        </property>
        <property><!-- 是否分布式部署 -->
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
        <property><!--zookooper配置的dataDir屬性 -->
                <name>hbase.zookeeper.property.dataDir</name>
                <value>/data/zookeeper/server</value>
        </property>
         <property>
                <name>hbase.zookeeper.property.clientPort</name>
                <value>2181</value><!-- zookeeper的端口-->
        </property>
        <property><!-- list of  zookooper -->
                <name>hbase.zookeeper.quorum</name>
                <value>master,slave1,slave2</value>
        </property>
</configuration>
  • 配置regionservers文件
    去掉默認(rèn)的localhost型凳,加入slave1、slave2嘱函,保存退出
  • 同步文件到hbase的各個(gè)集群節(jié)點(diǎn)
scp -r hbase-1.2.6.1/ root@slave1:/usr/local/
scp -r hbase-1.2.6.1/ root@slave2:/usr/local/
  • 啟動(dòng)hbase
    (1)在Hadoop已經(jīng)啟動(dòng)成功的基礎(chǔ)上臭杰,輸入start-hbase.sh动雹,過幾秒鐘便啟動(dòng)完成喘蟆,輸入jps命令查看進(jìn)程是否啟動(dòng)成功渴邦,若 master上出現(xiàn)HMaster,slave上出現(xiàn)HRegionServer弧满,就是啟動(dòng)成功了
    (2)輸入hbase shell 命令 進(jìn)入hbase命令模式,輸入status命令可以看到如下內(nèi)容,1個(gè)master喉童,2 servers,3機(jī)器全部成功啟動(dòng)顿天。
1 active master, 0 backup masters, 2 servers, 0 dead, 1.0000 average load

在瀏覽器輸入http://192.168.1.235:16010堂氯,就可以在界面上看到hbase的配置了
(3)當(dāng)要停止hbase時(shí)輸入stop-hbase.sh,過幾秒后hbase就會(huì)被停止了

安裝Pinpoint

1.初始化數(shù)據(jù)庫腳本

  • 數(shù)據(jù)庫腳本在對(duì)應(yīng)pinpoint版本上hbase目錄牌废,去github上面找即可找到
    https://github.com/naver/pinpoint
    數(shù)據(jù)庫腳本在pinpoint-1.6.2\hbase\scripts 目錄
    執(zhí)行pinpoint提供的Hbase初始化語句
cd /root/soft/
hbase shell hbase-create.hbase

執(zhí)行完了以后咽白,進(jìn)入Hbase

hbase shell
hbase(main):001:0>
輸入"status 'detailed'"可以查看剛才初始化的表,是否存在
hbase(main):001:0> status 'detailed'

也可以登錄web http://192.168.1.235:16010鸟缕,來查看HBase的數(shù)據(jù)是否初始化成功

hbase.png

2.安裝pinpoint-collector

  • 拷貝文件到slave1 服務(wù)器
cd /root/soft
scp apache-tomcat-8.5.32.tar.gz root@slave1:/root/soft
scp pinpoint-collector-1.6.2.war root@slave1:/root/soft
  • 切換到slave1晶框,解壓tomcat
cd /root/soft
tar -zxvf apache-tomcat-8.5.32.tar.gz
mv apache-tomcat-8.5.32 /usr/local/
  • 部署pinpoint-collector war包
    【注意:如果沒有unzip命令,可以 "yum install unzip -y" 】
cd /usr/local/apache-tomcat-8.5.32/webapps/ROOT
rm -rf *
mv /root/soft/pinpoint-collector-1.6.2.war .
unzip pinpoint-collector-1.6.2.war
rm -rf pinpoint-collector-1.6.2.war
  • 修改pinpoint-collector的配置文件
cd /usr/local/apache-tomcat-8.5.32/webapps/ROOT/WEB-INF/classes
vim hbase.properties

主要修改以下的兩處
hbase.client.host=master,slave1,slave2
hbase.client.port=2181
保存退出
  • 啟動(dòng)tomcat
cd /usr/local/apache-tomcat-8.5.32/bin
./catalina.sh start
  1. 安裝pinpoint-web
  • 拷貝文件到slave2 服務(wù)器
cd /root/soft
scp apache-tomcat-8.5.32.tar.gz root@slave2:/root/soft
scp pinpoint-web-1.6.2.war root@slave2:/root/soft
  • 切換到slave2懂从,解壓tomcat
cd /root/soft
tar -zxvf apache-tomcat-8.5.32.tar.gz
mv apache-tomcat-8.5.32 /usr/local/
  • 部署pinpoint-web war包
    【注意:如果沒有unzip命令授段,可以 "yum install unzip -y" 】
cd /usr/local/apache-tomcat-8.5.32/webapps/ROOT
rm -rf *
mv /root/soft/pinpoint-web-1.6.2.war .
unzip pinpoint-web-1.6.2.war
rm -rf pinpoint-web-1.6.2.war 
  • 部署mysql數(shù)據(jù)庫
    數(shù)據(jù)庫腳本:
    /usr/local/apache-tomcat-8.5.32/webapps/ROOT/WEB-INF/classes/sql 目錄
    數(shù)據(jù)庫名:pinpoint
    配置文件;
    /usr/local/apache-tomcat-8.5.32/webapps/ROOT/WEB-INF/classes/jdbc.properties
    修改好后保存

  • 修改pinpoint-web 配置
    vim hbase.properties
    主要修改以下的兩處
    hbase.client.host=master,slave1,slave2
    hbase.client.port=2181
    保存退出

  • 啟動(dòng)tomcat

cd /usr/local/apache-tomcat-8.5.32/bin
./catalina.sh start
pinpoint_web.png
  1. 安裝pinpoint-agent采集數(shù)據(jù)
    解壓pinpoint-agent-1.6.2
    修改配置文件 pinpoint.config
vim pinpoint.config

修改profiler.collector.ip=192.168.1.236(部署了pinpoint-collect那臺(tái)服務(wù)器)

在要啟動(dòng)的程序上帶上以下的參數(shù)
-javaagent:/data/pinpoint_agent/pinpoint-bootstrap-1.6.2.jar(agent路徑) -Dpinpoint.agentId=唯一屬性值,不可重復(fù) -Dpinpoint.applicationName=應(yīng)用名稱

  • 監(jiān)控的界面


  • 調(diào)用鏈


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末莫绣,一起剝皮案震驚了整個(gè)濱河市畴蒲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌对室,老刑警劉巖模燥,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異掩宜,居然都是意外死亡蔫骂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門牺汤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辽旋,“玉大人,你說我怎么就攤上這事檐迟〔古撸” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵追迟,是天一觀的道長溶其。 經(jīng)常有香客問我,道長敦间,這世上最難降的妖魔是什么瓶逃? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任束铭,我火速辦了婚禮,結(jié)果婚禮上厢绝,老公的妹妹穿的比我還像新娘契沫。我一直安慰自己,他們只是感情好昔汉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布懈万。 她就那樣靜靜地躺著,像睡著了一般挤庇。 火紅的嫁衣襯著肌膚如雪钞速。 梳的紋絲不亂的頭發(fā)上贷掖,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天嫡秕,我揣著相機(jī)與錄音,去河邊找鬼苹威。 笑死昆咽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的牙甫。 我是一名探鬼主播掷酗,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼窟哺!你這毒婦竟也來了泻轰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤且轨,失蹤者是張志新(化名)和其女友劉穎浮声,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旋奢,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡泳挥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了至朗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屉符。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖锹引,靈堂內(nèi)的尸體忽然破棺而出矗钟,到底是詐尸還是另有隱情,我是刑警寧澤嫌变,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布吨艇,位于F島的核電站,受9級(jí)特大地震影響初澎,放射性物質(zhì)發(fā)生泄漏秸应。R本人自食惡果不足惜虑凛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望软啼。 院中可真熱鬧桑谍,春花似錦、人聲如沸祸挪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贿条。三九已至雹仿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間整以,已是汗流浹背胧辽。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留公黑,地道東北人邑商。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像凡蚜,于是被迫代替她去往敵國和親人断。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

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