hadoop三个配置文件的参数含义说明(转)

来自:http://blog.csdn.net/yangjl38/article/details/7583374

1 获取默认配置

配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml三个配置文件,默认下来,这些配置文件都是空的,所以很难知道这些配置文件有哪些配置可以生效,上网找的配置可能因为各个hadoop版本不同,导致无法生效。浏览更多的配置,有两个方法:

1.选择相应版本的hadoop,下载解压后,搜索*.xml,找到core-default.xml,hdfs-default.xml,mapred-default.xml,这些就是默认配置,可以参考这些配置的说明和key,配置hadoop集群。

2.浏览apache官网,三个配置文件链接如下:(连接废了)

http://hadoop.apache.org/common/docs/current/core-default.html

http://hadoop.apache.org/common/docs/current/hdfs-default.html

http://hadoop.apache.org/common/docs/current/mapred-default.html

这里是浏览hadoop当前版本号的默认配置文件,其他版本号,要另外去官网找。其中第一个方法找到默认的配置是最好的,因为每个属性都有说明,可以直接使用。另外,core-site.xml是全局配置,hdfs-site.xml和mapred-site.xml分别是hdfs和mapred的局部配置。

2 常用的端口配置

2.1 HDFS端口

image

2.2 MR端口

image

2.3 其它端口

image

3 三个缺省配置参考文件说明

3.1 core-default.html

序号 参数名 参数值 参数说明
1 hadoop.tmp.dir /tmp/hadoop-${user.name} 临时目录设定
2 hadoop.native.lib true 使用本地hadoop库标识
3 hadoop.http.filter.initializers http服务器过滤链设置
4 hadoop.security.group.mapping org.apache.hadoop.security.ShellBasedUnixGroupsMapping 组内用户的列表的类设定
5 hadoop.security.authorization false 服务端认证开启
6 hadoop.security.authentication simple 无认证或认证设置
7 hadoop.security.token.service.use_ip true 是否开启使用IP地址作为连接的开关
8 hadoop.logfile.size 10000000 日志文件最大为10M
9 hadoop.logfile.count 10 日志文件数量为10个
10 io.file.buffer.size 4096 流文件的缓冲区为4K
11 io.bytes.per.checksum 512 校验位数为512字节
12 io.skip.checksum.errors false 校验出错后是抛出异常还是略过标识。True则略过。
13 io.compression.codecs org.apache.hadoop.io.compress.DefaultCodec, 16
14 org.apache.hadoop.io.compress.GzipCodec, 16
15 org.apache.hadoop.io.compress.BZip2Codec, 16
16 org.apache.hadoop.io.compress.SnappyCodec 压缩和解压的方式设置
17 io.serializations org.apache.hadoop.io.serializer.WritableSerialization 序例化和反序列化的类设定
18 fs.default.name file:/// 缺省的文件URI标识设定。
19 fs.s3.impl org.apache.hadoop.fs.s3.S3FileSystem S3文件操作类设置
20 fs.s3n.impl org.apache.hadoop.fs.s3native.NativeS3FileSystem S3文件本地操作类设置
21 fs.kfs.impl org.apache.hadoop.fs.kfs.KosmosFileSystem KFS文件操作类设置.
22 fs.hftp.impl org.apache.hadoop.hdfs.HftpFileSystem HTTP方式操作文件设置
23 fs.hsftp.impl org.apache.hadoop.hdfs.HsftpFileSystem HTTPS方式操作文件设置
24 fs.webhdfs.impl org.apache.hadoop.hdfs.web.WebHdfsFileSystem WEB方式操作文件类设置
25 fs.ftp.impl org.apache.hadoop.fs.ftp.FTPFileSystem FTP文件操作类设置
26 fs.ramfs.impl org.apache.hadoop.fs.InMemoryFileSystem 内存文件操作类设置
27 fs.har.impl org.apache.hadoop.fs.HarFileSystem 压缩文件操作类设置.
28 fs.har.impl.disable.cache true 是否缓存har文件的标识设定
29 fs.checkpoint.dir ${hadoop.tmp.dir}/dfs/namesecondary 备份名称节点的存放目前录设置
30 fs.checkpoint.edits.dir ${fs.checkpoint.dir} 备份名称节点日志文件的存放目前录设置
31 fs.checkpoint.period 3600 动态检查的间隔时间设置
32 fs.checkpoint.size 67108864 日志文件大小为64M
33 fs.s3.block.size 67108864 写S3文件系统的块的大小为64M
34 fs.s3.buffer.dir ${hadoop.tmp.dir}/s3 S3文件数据的本地存放目录
35 fs.s3.maxRetries 4 S3文件数据的偿试读写次数
36 fs.s3.sleepTimeSeconds 10 S3文件偿试的间隔
37 local.cache.size 10737418240 缓存大小设置为10GB
38 io.seqfile.compress.blocksize 1000000 压缩流式文件中的最小块数为100万
39 io.seqfile.lazydecompress true 块是否需要压缩标识设定
40 io.seqfile.sorter.recordlimit 1000000 内存中排序记录块类最小为100万
41 io.mapfile.bloom.size 1048576 BloomMapFiler过滤量为1M
42 io.mapfile.bloom.error.rate 0.005
43 hadoop.util.hash.type murmur 缺少hash方法为murmur
44 ipc.client.idlethreshold 4000 连接数据最小阀值为4000
45 ipc.client.kill.max 10 一个客户端连接数最大值为10
46 ipc.client.connection.maxidletime 10000 断开与服务器连接的时间最大为10秒
47 ipc.client.connect.max.retries 10 建立与服务器连接的重试次数为10次
48 ipc.server.listen.queue.size 128 接收客户连接的监听队例的长度为128
49 ipc.server.tcpnodelay false 开启或关闭服务器端TCP连接算法
50 ipc.client.tcpnodelay false 开启或关闭客户端TCP连接算法
51 webinterface.private.actions false Web交互的行为设定
52 hadoop.rpc.socket.factory.class.default org.apache.hadoop.net.StandardSocketFactory 缺省的socket工厂类设置
53 hadoop.rpc.socket.factory.class.ClientProtocol 与dfs连接时的缺省socket工厂类
54 hadoop.socks.server 服务端的工厂类缺省设置为SocksSocketFactory.
55 topology.node.switch.mapping.impl org.apache.hadoop.net.ScriptBasedMapping
56 topology.script.file.name
57 fs.trash.interval 0 文件废弃标识设定,0为禁止此功能
58 fs.file.impl org.apache.hadoop.fs.LocalFileSystem 本地文件操作类设置
59 fs.hdfs.impl org.apache.hadoop.hdfs.DistributedFileSystem HDFS文件操作类设置
60 topology.script.number.args 100 参数数量最多为100
61 hadoop.security.uid.cache.secs 14400

3.2 hdfs-default.html

序号 参数名 参数值 参数说明
1 dfs.namenode.logging.level info 输出日志类型
2 dfs.secondary.http.address 0.0.0.0:50090 备份名称节点的http协议访问地址与端口
3 dfs.datanode.address 0.0.0.0:50010 数据节点的TCP管理服务地址和端口
4 dfs.datanode.http.address 0.0.0.0:50075 数据节点的HTTP协议访问地址和端口
5 dfs.datanode.ipc.address 0.0.0.0:50020 数据节点的IPC服务访问地址和端口
6 dfs.datanode.handler.count 3 数据节点的服务连接处理线程数
7 dfs.http.address 0.0.0.0:50070 名称节点的http协议访问地址与端口
8 dfs.https.enable false 支持https访问方式标识
9 dfs.https.need.client.auth false 客户端指定https访问标识
10 dfs.https.server.keystore.resource ssl-server.xml Ssl密钥服务端的配置文件
11 dfs.https.client.keystore.resource ssl-client.xml Ssl密钥客户端的配置文件
12 dfs.datanode.https.address 0.0.0.0:50475 数据节点的HTTPS协议访问地址和端口
13 dfs.https.address 0.0.0.0:50470 名称节点的HTTPS协议访问地址和端口
14 dfs.datanode.dns.interface default 数据节点采用IP地址标识
15 dfs.datanode.dns.nameserver default 指定DNS的IP地址
16 dfs.replication.considerLoad true 加载目标或不加载的标识
17 dfs.default.chunk.view.size 32768 浏览时的文件块大小设置为32K
18 dfs.datanode.du.reserved 0 每个卷预留的空闲空间数量
19 dfs.name.dir ${hadoop.tmp.dir}/dfs/name 存贮在本地的名字节点数据镜象的目录,作为名字节点的冗余备份
20 dfs.name.edits.dir ${dfs.name.dir} 存贮文件操作过程信息的存贮目录
21 dfs.web.ugi webuser,webgroup Web接口访问的用户名和组的帐户设定
22 dfs.permissions true 文件操作时的权限检查标识。
23 dfs.permissions.supergroup supergroup 超级用户的组名定义
24 dfs.block.access.token.enable false 数据节点访问令牌标识
25 dfs.block.access.key.update.interval 600 升级访问钥时的间隔时间
26 dfs.block.access.token.lifetime 600 访问令牌的有效时间
27 dfs.data.dir ${hadoop.tmp.dir}/dfs/data 数据节点的块本地存放目录
28 dfs.datanode.data.dir.perm 755 数据节点的存贮块的目录访问权限设置
29 dfs.replication 3 缺省的块复制数量
30 dfs.replication.max 512 块复制的最大数量
31 dfs.replication.min 1 块复制的最小数量
32 dfs.block.size 67108864 缺省的文件块大小为64M
33 dfs.df.interval 60000 磁盘空间统计间隔为6秒
34 dfs.client.block.write.retries 3 块写入出错时的重试次数
35 dfs.blockreport.intervalMsec 3600000 块的报告间隔时为1小时
36 dfs.blockreport.initialDelay 0 块顺序报告的间隔时间
37 dfs.heartbeat.interval 3 数据节点的心跳检测间隔时间
38 dfs.namenode.handler.count 10 名称节点的连接处理的线程数量
39 dfs.safemode.threshold.pct 0.999f 启动安全模式的阀值设定
40 dfs.safemode.extension 30000 当阀值达到量值后扩展的时限
41 dfs.balance.bandwidthPerSec 1048576 启动负载均衡的数据节点可利用带宽最大值为1M
42 dfs.hosts 可与名称节点连接的主机地址文件指定。
43 dfs.hosts.exclude 不充计与名称节点连接的主机地址文件设定
44 dfs.max.objects 0 文件数、目录数、块数的最大数量
45 dfs.namenode.decommission.interval 30 名称节点解除命令执行时的监测时间周期
46 dfs.namenode.decommission.nodes.per.interval 5 名称节点解除命令执行是否完检测次数
47 dfs.replication.interval 3 名称节点计算数据节点的复制工作的周期数.
48 dfs.access.time.precision 3600000 充许访问文件的时间精确到1小时
49 dfs.support.append false 是否充许链接文件指定
50 dfs.namenode.delegation.key.update-interval 86400000 名称节点上的代理令牌的主key的更新间隔时间为24小时
51 dfs.namenode.delegation.token.max-lifetime 604800000 代理令牌的有效时间最大值为7天
52 dfs.namenode.delegation.token.renew-interval 86400000 代理令牌的更新时间为24小时
53 dfs.datanode.failed.volumes.tolerated 0 决定停止数据节点提供服务充许卷的出错次数。0次则任何卷出错都要停止数据节点

3.3 mapred-default.html

序号 参数名 参数值 参数说明
1 hadoop.job.history.location 作业跟踪管理器的静态历史文件的存放目录。
2 hadoop.job.history.user.location 可以指定具体某个作业的跟踪管理器的历史文件存放目录
3 mapred.job.tracker.history.completed.location 已完成作业的历史文件的存放目录
4 io.sort.factor 10 排完序的文件的合并时的打开文件句柄数
5 io.sort.mb 100 排序文件的内存缓存大小为100M
6 io.sort.record.percent 0.05 排序线程阻塞的内存缓存剩余比率
7 io.sort.spill.percent 0.80 当缓冲占用量为该值时,线程需要将内容先备份到磁盘中。
8 io.map.index.skip 0 索引条目的间隔设定
9 mapred.job.tracker local 作业跟踪管理器是否和MR任务在一个进程中
10 mapred.job.tracker.http.address 0.0.0.0:50030 作业跟踪管理器的HTTP服务器访问端口和地址
11 mapred.job.tracker.handler.count 10 作业跟踪管理器的管理线程数,线程数比例是任务管理跟踪器数量的0.04
12 mapred.task.tracker.report.address 127.0.0.1:0 任务管理跟踪器的主机地址和端口地址
13 mapred.local.dir ${hadoop.tmp.dir}/mapred/local MR的中介数据文件存放目录
14 mapred.system.dir ${hadoop.tmp.dir}/mapred/system MR的控制文件存放目录
15 mapreduce.jobtracker.staging.root.dir ${hadoop.tmp.dir}/mapred/staging 每个正在运行作业文件的存放区
16 mapred.temp.dir ${hadoop.tmp.dir}/mapred/temp MR临时共享文件存放区
17 mapred.local.dir.minspacestart 0 MR本地中介文件删除时,不充许有任务执行的数量值。
18 mapred.local.dir.minspacekill 0 MR本地中介文件删除时,除非所有任务都已完成的数量值。
19 mapred.tasktracker.expiry.interval 600000 任务管理跟踪器不发送心跳的累计时间间隔超过600秒,则任务管理跟踪器失效
20 mapred.tasktracker.resourcecalculatorplugin 指定的一个用户访问资源信息的类实例
21 mapred.tasktracker.taskmemorymanager.monitoring-interval 5000 监控任务管理跟踪器任务内存使用率的时间间隔
22 mapred.tasktracker.tasks.sleeptime-before-sigkill 5000 发出进程终止后,间隔5秒后发出进程消亡信号
23 mapred.map.tasks 2 每个作业缺省的map任务数为2
24 mapred.reduce.tasks 1 每个作业缺省的reduce任务数为1
25 mapreduce.tasktracker.outofband.heartbeat false 让在任务结束后发出一个额外的心跳信号
26 mapreduce.tasktracker.outofband.heartbeat.damper 1000000 当额外心跳信号发出量太多时,则适当阻止
27 mapred.jobtracker.restart.recover false 充许任务管理器恢复时采用的方式
28 mapred.jobtracker.job.history.block.size 3145728 作业历史文件块的大小为3M
29 mapreduce.job.split.metainfo.maxsize 10000000 分隔元信息文件的最大值是10M以下
30 mapred.jobtracker.taskScheduler org.apache.hadoop.mapred.JobQueueTaskScheduler 设定任务的执行计划实现类
31 mapred.jobtracker.taskScheduler.maxRunningTasksPerJob 作业同时运行的任务数的最大值
32 mapred.map.max.attempts 4 Map任务的重试次数
33 mapred.reduce.max.attempts 4 Reduce任务的重试次数
34 mapred.reduce.parallel.copies 5 在复制阶段时reduce并行传送的值。
35 mapreduce.reduce.shuffle.maxfetchfailures 10 取map输出的最大重试次数
36 mapreduce.reduce.shuffle.connect.timeout 180000 REDUCE任务连接任务管理器获得map输出时的总耗时是3分钟
37 mapreduce.reduce.shuffle.read.timeout 180000 REDUCE任务等待map输出数据的总耗时是3分钟
38 mapred.task.timeout 600000 如果任务无读无写时的时间耗时为10分钟,将被终止
39 mapred.tasktracker.map.tasks.maximum 2 任管管理器可同时运行map任务数为2
40 mapred.tasktracker.reduce.tasks.maximum 2 任管管理器可同时运行reduce任务数为2
41 mapred.jobtracker.completeuserjobs.maximum 100 当用户的完成作业数达100个后,将其放入作业历史文件中
42 mapreduce.reduce.input.limit -1 Reduce输入量的限制。
43 mapred.job.tracker.retiredjobs.cache.size 1000 作业状态为已不在执行的保留在内存中的量为1000
44 mapred.job.tracker.jobhistory.lru.cache.size 5 作业历史文件装载到内存的数量
45 mapred.child.java.opts -Xmx200m 启动task管理的子进程时的内存设置
46 mapred.child.env 子进程的参数设置
47 mapred.child.ulimit 虚拟机所需内存的设定。
48 mapred.cluster.map.memory.mb -1
49 mapred.cluster.reduce.memory.mb -1
50 mapred.cluster.max.map.memory.mb -1
51 mapred.cluster.max.reduce.memory.mb -1
52 mapred.job.map.memory.mb -1
53 mapred.job.reduce.memory.mb -1
54 mapred.child.tmp /tmp Mr任务信息的存放目录
55 mapred.inmem.merge.threshold 1000 内存中的合并文件数设置
56 mapred.job.shuffle.merge.percent 0.66
57 mapred.job.shuffle.input.buffer.percent 0.70
58 mapred.job.reduce.input.buffer.percent 0.0
59 mapred.map.tasks.speculative.execution true Map任务的多实例并行运行标识
60 mapred.reduce.tasks.speculative.execution true Reduce任务的多实例并行运行标识
61 mapred.job.reuse.jvm.num.tasks 1 每虚拟机运行的任务数
62 mapred.min.split.size 0 Map的输入数据被分解的块数设置
63 mapred.jobtracker.maxtasks.per.job -1 一个单独作业的任务数设置
64 mapred.submit.replication 10 提交作业文件的复制级别
65 mapred.tasktracker.dns.interface default 任务管理跟踪器是否报告IP地址名的开关
66 mapred.tasktracker.dns.nameserver default 作业和任务管理跟踪器之间通讯方式采用的DNS服务的主机名或IP地址
67 tasktracker.http.threads 40 http服务器的工作线程数量
68 mapred.task.tracker.http.address 0.0.0.0:50060 任务管理跟踪器的http服务器的地址和端口
69 keep.failed.task.files false 失败任务是否保存到文件中
70 mapred.output.compress false 作业的输出是否压缩
71 mapred.output.compression.type RECORD 作业输出采用NONE, RECORD or BLOCK三种方式中一种压缩的写入到流式文件
72 mapred.output.compression.codec org.apache.hadoop.io.compress.DefaultCodec 压缩类的设置
73 mapred.compress.map.output false Map的输出是否压缩
74 mapred.map.output.compression.codec org.apache.hadoop.io.compress.DefaultCodec Map的输出压缩的实现类指定
75 map.sort.class org.apache.hadoop.util.QuickSort 排序键的排序类指定
76 mapred.userlog.limit.kb 0 每个任务的用户日志文件大小
77 mapred.userlog.retain.hours 24 作业完成后的用户日志留存时间为24小时
78 mapred.user.jobconf.limit 5242880 Jobconf的大小为5M
79 mapred.hosts 可与作业管理跟踪器连接的主机名
80 mapred.hosts.exclude 不可与作业管理跟踪器连接的主机名
81 mapred.heartbeats.in.second 100 作业管理跟踪器的每秒中到达的心跳数量为100
82 mapred.max.tracker.blacklists 4 任务管理跟踪器的黑名单列表的数量
83 mapred.jobtracker.blacklist.fault-timeout-window 180 任务管理跟踪器超时180分钟则訪任务将被重启
84 mapred.jobtracker.blacklist.fault-bucket-width 15
85 mapred.max.tracker.failures 4 任务管理跟踪器的失败任务数设定
86 jobclient.output.filter FAILED 控制任务的用户日志输出到作业端时的过滤方式
87 mapred.job.tracker.persist.jobstatus.active false 是否持久化作业管理跟踪器的信息
88 mapred.job.tracker.persist.jobstatus.hours 0 持久化作业管理跟踪器的信息的保存时间
89 mapred.job.tracker.persist.jobstatus.dir /jobtracker/jobsInfo 作业管理跟踪器的信息存放目录
90 mapreduce.job.complete.cancel.delegation.tokens true 恢复时是否变更领牌
91 mapred.task.profile false 任务分析信息是否建设标志
92 mapred.task.profile.maps 0-2 设置map任务的分析范围
93 mapred.task.profile.reduces 0-2 设置reduce任务的分析范围
94 mapred.line.input.format.linespermap 1 每次切分的行数设置
95 mapred.skip.attempts.to.start.skipping 2 在跳转模式未被设定的情况下任务的重试次数
96 mapred.skip.map.auto.incr.proc.count true MapRunner在调用map功能后的增量处理方式设置
97 mapred.skip.reduce.auto.incr.proc.count true 在调用reduce功能后的增量处理方式设置
98 mapred.skip.out.dir 跳过记录的输出目录
99 mapred.skip.map.max.skip.records 0
100 mapred.skip.reduce.max.skip.groups 0
101 job.end.retry.attempts 0 Hadoop偿试连接通知器的次数
102 job.end.retry.interval 30000 通知偿试回应的间隔操作为30秒
103 hadoop.rpc.socket.factory.class.JobSubmissionProtocol 指定与作业跟踪管理器的通讯方式,缺省是采用rpc方式
104 mapred.task.cache.levels 2 任务缓存级别设置
105 mapred.queue.names default 分隔作业队例的分隔符设定
106 mapred.acls.enabled false 指定ACL访问控制列表
107 mapred.queue.default.state RUNNING 定义队列的状态
108 mapred.job.queue.name default 已提交作业的队列设定
109 mapreduce.job.acl-modify-job 指定可修改作业的ACL列表
110 mapreduce.job.acl-view-job 指定可浏临作业的ACL列表
111 mapred.tasktracker.indexcache.mb 10 任务管理跟踪器的索引内存的最大容器
112 mapred.combine.recordsBeforeProgress 10000 在聚合处理时的记录块数
113 mapred.merge.recordsBeforeProgress 10000 在汇总处理时的记录块数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容