我最近为hadoop
- 一个主人和两个奴隶设置了一个测试环境群。
Master不是dataNode(尽管有些人使用主节点作为主节点和从节点)。
所以基本上我有2个数据节点。复制的默认配置为3。
最初,我没有更改conf/hdfs-site.xml
上的任何配置。我收到错误could only be replicated to 0 nodes instead of 1
。
然后,我在主服务器和从服务器中更改了conf/hdfs-site.xml
中的配置,如下所示:
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
并且!一切正常。 我的问题是:虽然我在所有的datanode和NameNodes中更改了hdfs-site.xml,但此配置是否适用于NameNode或DatNode。
如果我的理解是正确的,NameNode会为datanode分配块。所以master
或NameNode
中的复制配置很重要,datanodes
可能不需要。这是对的吗?
我对hadoop框架中不同xml的实际目的感到困惑:从我的小理解:
1)core-site.xml
- 整个框架的配置参数,例如日志文件应该去的地方,文件系统的默认名称等等
2)hdfs-site.xml
- 适用于单个数据节点。数据节点的本地文件系统中有多少复制,数据目录,块的大小等等
3)mapred-site.xml
- 适用于datanode并为任务跟踪器提供配置。
如果这是错误的,请更正。这些配置文件在我的教程中没有很好地解释。所以它来自我对默认值中的这些文件的看法。
答案 0 :(得分:0)
这是我的理解,我可能是错的。
{hdfs-site.xml} - 用于HDFS(Hadoop分布式文件系统)的属性 {mapred-site.xml} - 用于MapReduce的属性 {core-site.xml} - 用于触及HDFS和MapReduce的其他属性
答案 1 :(得分:0)
这通常是由于空间不足造成的。
请使用
检查群集和已使用的剩余比率的总容量 hdfs dfsadmin -report
还要检查hdfs-site.xml中的dfs.datanode.du.reserved,如果此值大于剩余容量
寻找解释here
的其他可能原因