hadoop伪分布式下 无法启动datanode的原因及could only be replicated to > 0 nodes, instead of 1的错误

来源:互联网 发布:linux 查询rpm包 编辑:程序博客网 时间:2024/06/08 17:45

目前发现一个原因是 因为datanode无法启动从而导致在hadoop上 put数据 出现 could only be replicated to > 0 nodes, instead of 1的错误。

输入jps发现唯独只有datanode进程没有起来。所以我们要想办法把datanode启动起来。

1.环境描述:

ubuntu11.10

伪分布是hadoop

jdk1.7

2.问题描述:

在hadoop上put数据时 出现could only be replicated to > 0 nodes, instead of 1的 错误提示。

jps命令 没有没看到datanode的进程启动。

3.问题原因:

是由于多次format namenode节点导致  namdenode 的 namespaceID 与  datanode的namespaceID 不一致,从而导致namenode和 datanode的断连。

(因为在多次format中  有 reformat namenode的提示,多次format中不用已知都选Y 去format namenode的 namespaceID ,这样很容易造成ID不一致的情况)

4.问题解决:

hadoop format 初始化后  先不急着startall, 打开hdfs-site.xml ,找到dfs.name.dir和dfs.data.dir的路径。

将因format更新的 dfs.name.dir/current/VERSION中的namespaceID  更新到 dfs.data.dir/current/VERSION中的namespaceID中去(改的是dfs.data.dir中的ID)

如下:

dfs.name.dir:

#Wed Feb 26 12:33:11 CST 2014namespaceID=125032091cTime=0storageType=NAME_NODElayoutVersion=-32

将dfs.data.dir:

#Wed Feb 26 12:28:05 CST 2014namespaceID=7685963storageID=DS-1033031888-127.0.1.1-50010-1393227629778cTime=0storageType=DATA_NODElayoutVersion=-32

改为:

#Wed Feb 26 12:28:05 CST 2014namespaceID=125032091storageID=DS-1033031888-127.0.1.1-50010-1393227629778cTime=0storageType=DATA_NODElayoutVersion=-32

这样再开始启动startall就行了。


5.总结:

以后在hadoop format过程中 要注意不要频繁地reformat  namnode的ID信息。format过程中选择N就是了。




0 0
原创粉丝点击