根据建议here,我在伪分布模式下使用以下mapred-site.xml文件运行hadoop。这项工作是在4核机器上运行。
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
<property>
<name>mapred.map.tasks</name>
<value>4</value>
</property>
<property>
<name>mapred.reduce.tasks</name>
<value>4</value>
</property>
</configuration>
我收到以下错误:
报告的块数1.0000已达到阈值0.9990。
这是什么原因。如何解决这个问题?
答案 0 :(得分:2)
这不是问题,而是在hadoop启动期间的正常程序。
Safemode是一种HDFS状态,其中文件系统以只读方式挂载;不执行复制,也不能创建或删除文件。这是在NameNode启动时自动输入的,以允许所有DataNode时间使用NameNode签入,并在NameNode确定哪些块未被复制之前宣布它们拥有哪些块,等等。
您还可以查看什么是安全模式in this page。
NameNode一直等到特定百分比的块存在并计入,默认情况下,百分比由hdfs-default.xml
中的dfs.safemode.threshold.pct参数设置。但您可以在hdfs-site.xml
中更改它。
这是
<property>
<name>dfs.safemode.threshold.pct</name>
<value>0.999f</value>
<description>
Specifies the percentage of blocks that should satisfy
the minimal replication requirement defined by dfs.replication.min.
Values less than or equal to 0 mean not to wait for any particular
percentage of blocks before exiting safemode.
Values greater than 1 will make safe mode permanent.
</description>
</property>
所以你看到日志以0.9990结尾
The ratio of reported blocks 1.0000 has reached the threshold 0.9990.