在hadoop中使用命令hadoop dfsadmin -report没有出现Live datanodes相关代码、使用Java api上传文件出现没有足够的数据节点可用的问题

问题描述:     

      在我想要查询内部名称节点和数据节点的私网ip时,使用hadoop dfsadmin -report命令只出现下面图中所示内容。

   

        并且在后续使用Java api进行文件上传,文件下载出现下面的报错:

File /xiyou/huangguoshan/sunwukong.txt could only be written to 0 of the 1 minReplication nodes. There are 0 datanode(s) running and 0 node(s) are excluded in this operation.

        这表明在写入文件xxx.txt文件时,没有足够的数据节点可用。

问题原因:

       namenode和datanode启动id不一致,这是因为不止一次的进行Hadoop系统格式化操作。即多次使用命令hdfs namenode -format

解决办法:

      (1)在启动主节点namenode那台机器上找到你安装hadoop的文件目录,我的是hadoop102.

       (2)在这些目录下找data/dfs/name/current目录,最主要的是要找到current目录,有些的目录结构可能有些许不相同,需要自己慢慢去寻找,大致目录结构都是会有/dfs/name/current。只要找到current目录再对比下面有没有VERSION文件即可。

       (3)进入VERSION文件中,记录clusterID的值,再按照同样的步骤找到另外两台hadoop的       VERSION文件,将三台Hadoop的clusterID设置成一样的值,并保存好。

        (4)在主节点hadoop102的机器上使用stop-all.sh以及start-all.sh重新启动hadoop集群。

      (5)再次使用hadoop dfsadmin -report命令,即出现Live datanodes。

                                  

问题总结:

        不要总是使用hdfs namenode -format,后续还会出现别的问题。刚开始的时候,我忘记怎么开启集群和关闭集群了,然后,每次开启集群就会使用这个命令,这个currentId我不止修改了一次。

       我是先出现文件上上传的问题,然后通过解决hadoop dfsadmin -report命令的问题后,发现文件上传相关的问题也解决了,算是误打误撞吧。如果文件上传相关的问题还没解决可以去看另一个博主的博客。他好像和我的解决办法不同。

文件上传解决办法跳转链接

希望能够帮助到你!

       

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值