我正在使用Hadoop处理大量数据。我设置了一个hadoop节点来使用多个卷:其中一个卷是带有10To磁盘的NAS,另一个是来自服务器的本地磁盘,存储容量为400 GB。
问题是,如果我理解,数据节点将尝试在每个卷中放置相同数量的数据。因此,当我在大量数据上运行作业时,400 GB的磁盘很快就会满了,而10 To磁盘仍然有足够的空间。然后我的map-reduce程序由Hive冻结产生,因为我的群集打开安全模式...
我试图为限制数据节点的磁盘使用设置属性,但它什么也没做:我仍然有同样的问题。
希望有人能帮助我。
好吧,我的mapreduce程序似乎打开了安全模式,因为:
The ratio of reported blocks 0.0000 has not reached the threshold 0.9990.
我在namenode web界面上看到了这个错误。我想使用属性 dfs.safemode.threshold.pct 禁用此选项,但我不知道这是否是解决问题的好方法?
答案 0 :(得分:0)
我认为您可以求助dfs.datanode.fsdataset.volume.choosing.policy
。
<property><name>dfs.datanode.fsdataset.volume.choosing.policy</name><value>org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy</value>
答案 1 :(得分:0)
使用dfs.datanode.du.reserved
中的$HADOOP_HOME/conf/hdfs-site.xml
配置设置限制磁盘使用。
<property>
<name>dfs.datanode.du.reserved</name>
<!-- cluster variant -->
<value>182400</value>
<description>Reserved space in bytes per volume. Always leave this much space free for non dfs use.
</description>
</property>