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

目前发现一个原因是 因为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:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #Wed Feb 26 12:33:11 CST 2014  
  2. namespaceID=125032091  
  3. cTime=0  
  4. storageType=NAME_NODE  
  5. layoutVersion=-32  

将dfs.data.dir:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #Wed Feb 26 12:28:05 CST 2014  
  2. namespaceID=7685963  
  3. storageID=DS-1033031888-127.0.1.1-50010-1393227629778  
  4. cTime=0  
  5. storageType=DATA_NODE  
  6. layoutVersion=-32  

改为:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #Wed Feb 26 12:28:05 CST 2014  
  2. namespaceID=125032091  
  3. storageID=DS-1033031888-127.0.1.1-50010-1393227629778  
  4. cTime=0  
  5. storageType=DATA_NODE  
  6. layoutVersion=-32  

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


5.总结:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值