在伪分布式模式下设置mapred.map.tasks时出错

时间:2011-12-02 14:13:37

标签: java hadoop mapreduce mahout

根据建议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。

这是什么原因。如何解决这个问题?

1 个答案:

答案 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.