CentOS7下安装CDH,clouderamanager,hadoop

                                          CentOS7下安装Hadoop集群

                                                                                          ——CM,CDH集成环境

本次实验主要参考文献:

老师给的word帮助文档;

博客https://blog.csdn.net/shawnhu007/article/details/52579204


一、实验背景

我们是四台电脑一起搭建Hadoop集群

A,B,C,D四个人个有一台电脑,分别在各自的电脑上安装虚拟机,虚拟机装centOS7。(我们建议主机namenode内存大一点8g,硬盘最好100g以上,其余节点2g,50g即可,下文会阐述原因)


系统:VMware下的centOS7

jdk:1.8.0_171   jdk-8u171-linux-x64.tar.gz(Oracle)

MySQL: mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar以及mysql-connector-java-5.1.42-bin.jar(老师云盘给的)

CDH: CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.sha1;

          CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel;

          manifest.json;(手动新建的文件)

ClouderaManger:cloudera-manager-centos7-cm5.11.1_x86_64.tar.gz

所需要的资源下载地址:

parcels:http://archive.cloudera.com/cdh5/parcels

cloudera manager: https://archive.cloudera.com/cm5/cm/5/

java jdk: Java SE - Downloads | Oracle Technology Network | Oracle



二、实验步骤

            泳道图

由于网上的教程众多,所以在这里总结了一下详细步骤

A.三台主机的虚拟机建立连接(ip设置)

 最终达到效果

IP地址主机名说明

172.20.10.10node1主节点

172.20.10.2node2节点

172.20.10.12node3节点

172.20.10.14node4节点

            并且最后 互相的虚拟机能够互相ping通

            在最开始的时候我们尝试了使用了,来达到静态ip的目的,这样会使得后期维护集群,物理上的主机ip的改变并不会使得虚拟机需要重新配置。

            但是在尝试的过程中,发现我们的ip地址虽然改变成了理想的静态ip,并且 能够上网,但是每台虚拟机之间却不能互相ping通,由于长期在这个问题拖慢了进度,而且没有找到问题,所以我们采用了桥接模式。

         在使用桥接模式的时候,开始的时候也遇到了一些问题,不过所幸都解决了。

            基本步骤:

            每台电脑设置上网模式更改为桥接模式;

            重启网络;

      systemctl restart network;

            遇到的问题:

            ①虚拟机无法上网

     解决方法:更改网络的配置文件。

     解决思路:发现无法上网之后,我们互相ping了一下,发现能够ping通,但是却ping不通百度,所以有可能是dns的问题,修改之后果然能够上网了。同时要注意的一个坑是,之前静态ip的时候吧下图的BOOTPROTO设置为static,现在记得改回来dhcp,并且重启网络restart,ifconfig检查一下网络,如果和自己主机是一个网段下面就说明是正确的。

B、安装jdk

       1.卸载本身自带的jdk

[root@localhost ~]# rpm -qa | grep java

[root@localhost ~]# rpm -qa | grep java

tzdata-java-2014i-1.el7.noarch

java-1.7.0-openjdk-headless-1.7.0.71 -2.5.3.1 .el7_0.x86_64

java-1.7.0-openjdk-1.7.0.71 -2.5.3.1 .el7_0.x86_64

java-1.8.0-openjdk-headless-1.7.0.71 -2.5.3.1 .el7_0.x86_64

java-1.8.0-openjdk-1.7.0.71 -2.5.3.1 .el7_0.x86_64

删除上面的java包

# rpm -e --nodeps $PACKGENAME


       2.去官网下载jdk,然后放到对应/usr/java/,解压,最后修改配置文件即可。

            配置文件:

# vim /etc/profile

JAVA_HOME=/usr/java/jdk1.8.0_171

JRE_HOME=/usr/java/jdk1.8.0_171/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPATH

      #source /etc/profile生效

      #java –version

      遇到的问题:到运行到CM安装界面的过程时候,发现了问题,他提示java版本不同。

            需要值得注意的是,大家都按下java –version,现实的版本号一致,但是却被认为不同,这是由于,在官网下载的时候要么都下载为.rpm,要么都下载为.tar.gz格式,否则就会报这种错误,解决方法:删掉这个jdk,之后重新安装正确的版本。

C、修改主机节点名称,以及修改hosts文件

# hostnamectl set-hostname node1

修改hosts

各个节点ifconfig,把对应的ip输入到下方的节点文件中

# vim /etc/hosts

192.168.43.43 node1

192.168.43.29 node2

192.168.43.136 node3

192.168.43.39  node4

注意要添加一行:

127.0.0.1 localhost.node1(只需要node1设置这个)

否则在建立数据库的时候发现报错:

D、selinux关闭,防火墙关闭

[root@hadoop1~]# vim /etc/sysconfig/selinux

SELINUX=disabled

重启才能生效

重启后检查

[root@hadoop1~]#sestatus -v

SELinux status: disabled

表示已经关闭了


[root@hadoop1~]# systemctl stop firewalld

[root@hadoop1~]# systemctl disable firewalld

rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'

rm '/etc/systemd/system/basic.target.wants/firewalld.service'

[root@hadoop1~]# systemctl status firewalld

firewalld.service - firewalld - dynamic firewall daemon

   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled)

   Active: inactive (dead)


E、NTP服务器设置(用于不同节点间实现时间同步)

这个在操作这个ntp服务,我们先把时区都选为上海时区,来达到时间同一的目的


NTP服务的安装和配置

[root@hadoop1~]#yum -y install ntp

更改master的节点

[root@hadoop1~]## vi /etc/ntp.conf

注释掉所有server *.*.*的指向,新添加一条可连接的ntp服务器(百度一下ntp服务器,我选的是上海交大的)

server ntp.sjtu.edu.cn iburst

在其他节点上把ntp指向master服务器地址即可(/etc/ntp.conf下)

server 192.168.160.130 iburst

所有节点

F、SSH无密码登录配置

每个节点执行ssh-keygen -t rsa;

      出现的选项就一路按回车就好

然后每个节点执行

ssh-copy-id node1;             然后输入密码

ssh-copy-id node2;             然后输入密码

ssh-copy-id node3;

ssh-copy-id node4;

验证:输入ssh node1或者其他节点,如果不要输密码的话,就说明成功了。

G、安装mysql(主节点)

centos7自带的是mariadb,需要先卸载掉

[root@hadoop1]# rpm -qa | grep mariadb

mariadb-libs-5.5.41-2.el7_0.x86_64

[root@hadoop1 huxin]# rpm -e --nodeps mariadb-libs-5.5.41-2.el7_0.x86_64

将下载好的mysql rpm包拷贝到服务器上然后解压

cp mysql-mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar /usr/mysql/

解压后依次安装这四个包:

有Mysql相应的rpm文件, 只需要依次安装一下几个rpm即可。

mysql-community-common-5.7.18-1.el7.x86_64.rpm

mysql-community-libs-5.7.18-1.el7.x86_64.rpm

mysql-community-client-5.7.18-1.el7.x86_64.rpm

mysql-community-server-5.7.18-1.el7.x86_64.rpm

命令格式 如rpm –ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm


安装完毕后启用mysql服务。

# systemctl start mysqld

# systemctl status mysqld

这种方式完成安装MySQL后,会自动随机生成一个原始密码。登录并修改密码,否则报密码过期错误。

# cat /var/log/mysqld.log | grep password

2017-05-13T05:39:44.497086Z 1 [Note] A temporary password is generated for root@linuxvnode0: sjsO:Pin<5c_

使用上述密码登录MySQL

# mysql -uroot -p

Enter password:

登录成功后:

mysql> SET PASSWORD = PASSWORD('Buct0000!');

Query OK, 0 rows affected, 1 warning (0.00 sec)


设置root授权访问以上所有的数据库,因为CM安装时会创建数据库,这里设置后安装CM时可以设置数据库的host为node1

mysql>grant all privileges on *.* to 'root'@'node1' identified by 'Buct0000!' with grant option;

mysql>flush privileges;

由于集群需要安装hive做为数据仓库,同时使用了Mysql作为Hive的存储方式,所以这里单独为hive建立一个库。

#为hive建库hive

mysql>create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

此处须新建一个库与CM安装时建立的库分开,否则启动Hive时可能会报角色无法启动的错误。

设置开机后自动启用mysql服务。

# systemctl enable mysqld


H、安装cloudera manger

三、安装Cloudera Manager

1.解压相应的文件cloudera-manager-centos7-cm5.11.1_x86_64.tar.gz  到/opt/目录下。

# tar -zxvf cloudera-manager-centos7-cm5.11.1_x86_64.tar.gz -C /opt/

2.将mysql-connector-java-5.1.42-bin.jar放到/opt/cm-5.11.1/share/cmf/lib下并初始化数据库

# cp mysql-connector-java-5.1.42-bin.jar /opt/cm-5.11.1/share/cmf/lib

/opt/cm-5.11.1/share/cmf/schema/scm_prepare_database.sh [-数据库类型] [-创建的数据库名] [-h主机名] [-u用户名] [-p密码]

# /opt/cm-5.11.1/share/cmf/schema/scm_prepare_database.sh mysql cm5111 -hnode1 -uroot -pBuct0000! --scm-host node1 root Buct0000! scm

3. 配置agent:

   修改/opt/cm-5.11.1/etc/cloudera-scm-agent/config.ini文件修改server_host为主节点主机名。

4. 每台服务器上执行命令创建scm用户

# useradd --system --home=/opt/cm-5.11.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm


5. 将Agent同步到其他节点(这一步由于scp过慢,所以采用了每个节点都下载cm,然后解压到/opt/下的方法,这样的话就不用执行scp了)

# scp -r /opt/cm-5.11.1 node2:/opt

# scp -r /opt/cm-5.11.1 node3:/opt

# scp -r /opt/cm-5.11.1 node4:/opt

# scp -r /opt/cm-5.11.1 node5:/opt

6. 将parcels安装包,sha,manifest.json放置到主节点/opt/cloudera/parcel-repo目录下。

7. 执行相应的脚本,启动服务。

主节点启动 :

# /opt/cm-5.11.1/etc/init.d/cloudera-scm-server start

所有节点启动 :

# /opt/cm-5.11.1/etc/init.d/cloudera-scm-agent start

需要注意的是:server启动之后,主节点会变得十分十分卡,这是正常现象,请耐心等待,之后再打开CM安装页面

8. 启动成功后输入node1:7180即可进入Cloudera Manager运维平台界面,初始密码为admin/admin.

(可能CM启动较久,需要一点时间才能进入,大概3—5mins,多等待一会) 进入后按照提示即可安装集群以及相应组件。

如若安装hive组件且使用Mysql类型的数据仓库,那么需要为hive增加MySQL connector

cp mysql-connector-java-5.1.42-bin.jar /opt/cloudera/parcels/CDH/lib/hive/lib/mysql-connector-java-5.1.42-bin.jar

四、CM界面配置集群

1.浏览器输入node1:7180/之后进入到集群配置页面。

2.选择部署的版本

3.继续下一步,选择安装的CM的版本


4.选择需要部署的主机


5.选择需要安装的CM(跟自己下载的percel文件对应,我下载的是5.11.1p0.4)

6.percel文件分发激活


7.检查器检查集群中主机环境


8.选择安装的CDH 5服务,这个根据需求选择,但是一些基本的服务必须选择,也可以自定义安装,这里选择含HBase的内核。

9.集群角色分配

(这里一般情况下默认即可,但是如果集群中某台电脑的配置严重不行的时候,建议少分配点任务)


10.数据库设置,这个要与前面的mysql中建立hive,oozie,hue相对应,如果之前没有建立的话,会报错,至于用户名,密码都可以填写。[if !vml]


通常hue会报这个错:

解决方法: CM要求MySQL安装对旧版本的库文件的支持,回到之前的mysql安装包解压后的文件夹,发现包含compat的两个.rpm包未安装。



安装两个包之后成功解决问题

11.审核更改(这一页默认即可,有需要的自己更改就行)

12.首次运行集群页面


需要注意的是,其实这一步骤会遇到很多错误,最好的解决方法---我建议---先简单阅读日志,后百度,实在不行详细阅读日志+google。我把自己遇到的问题以及解决方法贴出来,希望能够有绵薄帮助。


      错误经历:

      ①在第一次安装的时候,卡在了第二步——正在部署客户端配置,一直在转圈。浏览器卡死

   问题:node1,也就是主节点配置太差

   解决方法:主节点尝试把虚拟机内存提升到4G(第一次装虚拟机的时候,默认配置导致1G内存,20G硬盘)

      ②第二次安装发现HBase启动失败,也就是HBase的第二步start失败。

   解决方法:安装失败,重启虚拟机,删库重新安装。主要是重启虚拟机,这个HBase启动失败,retry(点击下方的重试键)是不能解决问题的

      ③第三次重新安装,发现第二步——zookeeper等等启动超时,这个很好解决,点击重试按钮即可


  ④然后发现HDFS格式化失败。

   这个问题网上有很多说法,试了两个都失败了,自己看了看日志,结合网上的,去linux的根目录下,ls 发现存在dfs文件夹,删除即可,rm –rf dfs。之后点击下方的重试按钮,发现已经ok了。

   ⑤不幸的是,第6步——hive失败了。

   解决这个问题真的是醉了。

   刚开始读日志发现是JDBC的问题,而本次安装采用的JDBC,其实在mysql-connector-java.5.1.42.bin.jar里面。这意味这要把它放到某个地方。正确的做法很简单,命令行进入这个jar的目录下,cp 一份到/opt/cloudera/parcels/CDH/lib/hive/lib/

执行

cp mysql-connector-java-5.1.42-bin.jar /opt/cloudera/parcels/CDH/lib/hive/lib/mysql-connector-java-5.1.42-bin.jar

      解决方法如此简单,为什么我还要说很难受呢,,这是因为尝试了无数次这样的操作都发现依然失败,最后发现我linux目录里的这个jar包居然是画着❌叉号的,也就是权限不够,无法打开,所以尝试chmod 777 文件 ,发现还是打着❌的,意识到不对劲,想起自己的这个jar包是上一次由于重装linux为了避免浪费时间下载各种包,使用VMtools先备份到windows下,之后又从windows拷回来的。然后又去官网下载了这个jar包,发现果然一切ok,真的是醉了。不想说话。VMtools在备份percel,cm等等包的时候不会出错,但是jar包会导致权限出错,请小心。而且使用VMtools,我不建议直接吧win下面的文件拖到linux下面,你会发现拖过去以后大小发生了很大的变化,建议在win下面右键复制,然后linux下面右键粘贴。VMtools安装也花费了一些时间,有需要的话,具体的安装请参考下文。

⑥然后发现oozie又出现了问题。

第一次oozie报的错误是关于JDBC的,发现它有一个步骤是,Copying JDBC jar

from /usr/share/java/mysql-connector-java.jar to /var/lib/oozie 。这个很好解决,把之前的那个mysql-connector-java-4.1.42.bin.jar

copy 一份到/usr/share/java/即可,命令就不给出了(注意没有❌叉号的)。

⑦当我们解决了oozie的JDBC的问题之后,又发现oozie又报错,真的是醉了。好吧,查看日志,发现他提示:

Check DBschema does not exist

大概意思就是oozie在刚刚失败了,但是它的初始化表 完成了,所以我们只需要

mysql –uroot –p   进入mysql

mysql>DROP DATABASE oozie;   删除oozie即可;

如果这条命令执行失败,那么试一下这个:

mysql>DROP schema oozie;

删除完之后必须还有重新建立一个,这样相当于把他清空,使得 初始化这个步骤 能够成功。

mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

mysql>quit;

再次重试,发现完完全全的好了,能够初始化了。

⑧但是,不幸的是,oozie又双叒出错了。就是下面这个。这次的错误是

upload sharelib timeout

oozie上载共享库超时。这个的解决方法,百度上好像都没有,翻墙去外面查,大概的解决方法有挺多种的,都试了一下,发现不能解决问题,于是继续读日志:

发现了两个值得关注的地方

Can't open /opt/cm-5.11.1/run/cloudera-scm-agent/process/42-oozie-OOZIE-SERVER-upload-sharelib/config.zip: 权限不够.

Can't open /opt/cm-5.11.1/run/cloudera-scm-agent/process/42-oozie-OOZIE-SERVER-upload-sharelib/proc.json: 权限不够.


SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.11.1-1.cdh5.11.1.p0.4/jars/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.11.1-1.cdh5.11.1.p0.4/jars/slf4j-simple-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Seehttp://www.slf4j.org/codes.html#multiple_bindings for an explanation.

SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]

然后开始的时候一直在纠结这个权限的事情,他确实会上锁(画着叉号,无法打开),但事实上,问题不在于这个,关键的问题在于下面的两个包冲突,他们包含了相同的类,发生了冲突,解决方法很简单,删除掉一个即可。这也给我带来了启示,读日志先读最后的可能会好一点,这可能是问题最大的地方。

我发现再删除完上面的一步中的文件后,还是报错,这主要是由于,我们三台虚拟机都连接的是手机的热点(要是路由器的话,我觉得速度会很快), 所以导致传输速度很慢,尝试着把oozie上传共享库的超时时间设置的长一点就ok了,他默认660s。改成1000,也在角色日志中发现,他确实是在不断上传,但是还是网络太慢,low upload,所以有设置的大了点,改成1500,最后终于成功。 其实解决oozie的超时问题可能需要多个方法一起来操作,可能也需要提升一下Namenode的性能(下方的namenode的java堆栈大小)所以具体的操作请参照下面的图片。

   新打开一个浏览器窗口,输入如图的地址:node1:7180/cmf/home









第九步:

cd /opt/cloudera/parcels/CDH-5.11.1-1.cdh5.11.1.p0.4/jars/

rm slf4j-simple-1.7.5.jar!

13.安装完成

14.失败重装。

在安装的过程中,可能会遇到失败当你进入到CM安装的界面,也就是浏览器的node1:7180的时候,如果中途安装失败(有哪一步一直错误,最后重启电脑,或者关掉浏览器,都叫做 这一次安装失败),此时就需要删除数据库,重新安装,不然你会直接进入CM的管理界面。


1.停止所有cloudera-scm-agent服务 和cloudera-scm-server服务

/opt/cm-5.11.1/etc/init.d/cloudera-scm-agent stop

/opt/cm-5.11.1/etc/init.d/cloudera-scm-server stop

2. 删除cmf 数据库,然后重新建立cmf数据库

mysql –uroot –p

mysql>drop cm5112;   (自己建立的数据库)

mysql>drop hive;

mysql>drop hue;

mysql>drop oozie;

mysql>create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

mysql>create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

mysql>create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

mysql>quit


3. 每台服务器上删除数据:

rm -rf /opt/cm-5.11.1/lib/cloudera-scm-agent/*  

(每台服务器上都执行)

如果删除不了执行以下命令再删除:

sudo umount /opt/cm-5.13.0/run/cloudera-scm-agent/process  


4. 执行数据库初始化

/opt/cm-5.11.1/share/cmf/schema/scm_prepare_database.sh mysql cm5111 -node1 -uroot -pBuct0000! --scm-host node1 root Buct0000! scm  

(node1机器上执行)

[if !supportLineBreakNewLine]

[endif]

5. 重启服务

/opt/cm-5.11.1/etc/init.d/cloudera-scm-server start  

/opt/cm-5.11.1/etc/init.d/cloudera-scm-agent start


6. 开始安装

http://node1:7810/


五、实验验证结果 word count试跑

      CDH搭建好之后,其实它自带wordcount的jar包,我们要做的其实只是把我们写好的words.txt传到hadoop系统上即可。

      步骤:

1、首先为当前用户在HDFS 创建一个工作目录,并赋予相应的权限。

            1.1由于我安装的时候是用的root用户,因此也就需要在hdfs中为root用户创建工作目录,并授予权限。

   (1)首先在HDFS中,在用户目录/user/下创建一个root用户文件夹,作为root用户的工作目录。执行如下代码:

sudo -u hdfs hadoop fs –mkdir /user/root

(2)授予/user/root目录相应的权限

1)先将该目录的所有权赋给root用户:

sudo -u hdfs hadoop fs –chown root /user/root

2)再将该目录的组的权限赋给root用户自己管理:

sudo -u hdfs hadoop fs –chgrp root /user/root

3)最后设置该目录的权限:

sudo -u hdfs Hadoop fs –chmod 777 /user/root

(该权限是拥有者:可读可写可执行;组用户:可读可写可执行;其他用户:可读可写可执行)

1.2、给普通用户创建HDFS工作目录,并授予权限。普通用户与root方法类似,只不过这个过程是需要在root用户下执行的。

2、本地任意地方创建words文件,并把该文件上传到hadoop中。

    #vim words

        #hadoop fs –put words /user/root/input

3、测试WordCount例子。

执行测试用例

通过CDH自身的jar来测试,该jar是在/opt/cloudera/parcels/CDH/jars/hadoop-examples.jar包。然后通过在界面执行如下命令:

#hadoop jar /opt/cloudera/parcels/CDH/jars/Hadoop-examples.jar wordcount /user/root/input /user/root/output

4、查看结果

#hadoop fs –cat /user/root/output/part-r-00000

#hadoop fs –cat /user/root/output/part-r-00001

以上代码需要注意的是/user/root/output必须是未存在的。mapreduce运行完之后,会自动创建。

[if !vml]

[endif]


运行程序

#hadoop jar /opt/cloudera/parcels/CDH/jars/Hadoop-examples.jar wordcount /user/root/input /user/root/output

这个输入文件夹output不能提前存在,否则会报错

结果正确:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容