Hadoop集群系列文章目录

Hadoop集群的搭建(全分布式)

Hadoop集群的搭建(全分布式)——记录一些遇到的错误及其解决方法



目录

  • Hadoop集群系列文章目录
  • 错误一——NameNode到自身免密登陆失败(文件权限不足)
  • 错误二——NameNode到DataNode免密登陆失败(文件权限不足)
  • 错误三——hadoop-env.sh文件某行内容出错
  • 错误四——其他用户的NameNode进程未结束导致集群启动失败
  • 错误五——clusterID不一致导致集群启动失败
  • 错误六——jps命令无效


错误一——NameNode到自身免密登陆失败(文件权限不足)

1、发现错误:NameNode到自身的免密登录失败(ssh时仍需输入密码)

hadoop 免密 hadoop免密登录失败怎么办_解决方案

2、查看具体报错内容:sudo cat /var/log/secure 查看ssh日志,找到对应时间的报错 报错如下:Authentication refused: bad ownership or modes for file /home/MADO/.ssh/authorized_keys

hadoop 免密 hadoop免密登录失败怎么办_解决方案_02


3、解决方案


根据报错内容可知:当前用户对authorized_keys文件的权限不足。


那么我们通过修改authorized_keys文件的权限即可解决这个问题:chmod 750 authorized_keys

4、文件/文件夹权限不足导致免密登录失败情况の总结 可能因权限不足而导致NameNode无法实现到自身的免密登陆的文件/文件夹一般有:.ssh(文件夹)、authorized_keys(文件) 需更改NameNode各文件夹/文件的权限如下

hadoop 免密 hadoop免密登录失败怎么办_hadoop 免密_03

错误二——NameNode到DataNode免密登陆失败(文件权限不足)

1、发现错误:NameNode到DataNode的免密登录失败(ssh时仍需输入密码)

hadoop 免密 hadoop免密登录失败怎么办_hadoop_04

2、查看具体报错内容:sudo cat /var/log/secure 查看ssh日志,找到对应时间的报错 报错如下:Authentication refused: bad ownership or modes for file /home/MADO/.ssh/authorized_keys

hadoop 免密 hadoop免密登录失败怎么办_vim_05

3、解决方案
根据报错内容可知:当前用户对authorized_keys文件的权限不足。
那么我们通过修改authorized_keys文件的权限即可解决这个问题:chmod 750 authorized_keys

4、文件/文件夹权限不足导致免密登录失败情况の总结 可能因权限不足而导致NameNode无法实现到自身的免密登陆的文件/文件夹一般有:.ssh(文件夹)、tmp(文件夹)、authorized_keys(文件) 需更改DataNode各文件夹/文件的权限如下

hadoop 免密 hadoop免密登录失败怎么办_vim_06

错误三——hadoop-env.sh文件某行内容出错

1、发现错误:/home/MADO/bigdata/hadoop-2.7.7/etc/hadoop/hadoop-env.sh: line 29: i#: command not found

hadoop 免密 hadoop免密登录失败怎么办_hadoop 免密_07

2、解决方案 ①停止集群 ②vim hadoop-env.sh ③在文档中键入::set nu(显示文件的行数),查看出错的第29行

hadoop 免密 hadoop免密登录失败怎么办_解决方案_08


④改正后保存并退出,然后将修改过的文件从NameNode远程传输(scp)至各个DataNode(

注意:传到正确的路径下

错误四——其他用户的NameNode进程未结束导致集群启动失败

1、发现错误:NameNode未成功启动

hadoop 免密 hadoop免密登录失败怎么办_vim_09

2、查看具体报错内容 ①先停止集群 ②然后查看NameNode的log文件:vim hadoop-用户名-namenode-机器名.log

hadoop 免密 hadoop免密登录失败怎么办_hadoop_10


③查找到错误原因:java.net.BindException: Address already in use


hadoop 免密 hadoop免密登录失败怎么办_解决方案_11

3、解决方案:kill掉已存在进程(需切换至root用户),然后重新启动集群

hadoop 免密 hadoop免密登录失败怎么办_vim_12

错误五——clusterID不一致导致集群启动失败

1、发现错误:DataNode未成功启动

hadoop 免密 hadoop免密登录失败怎么办_linux_13

2、查看具体报错内容 ①先停止集群 ②然后到DataNode上查看log文件:vim hadoop-用户名-datanode-机器名.log ③查找到错误原因:FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool (Datanode Uuid unassigned)(该错误一般是由多次格式化NameNode导致的

hadoop 免密 hadoop免密登录失败怎么办_解决方案_14

3、进一步查看错误原因 ①NameNode:vim HADOOP_HOME/tmp/name/current/VERSION

hadoop 免密 hadoop免密登录失败怎么办_linux_15


②DataNode:vim $HADOOP_HOME/tmp/data/current/VERSION


hadoop 免密 hadoop免密登录失败怎么办_linux_16


错误的根本原因:多次格式化NameNode,导致NameNode与DataNode的clusterID不一致4、解决方案 ①在NameNode、DataNode上删除dfs.namenode.name.dir(hdfs-site.xml的配置项)所对应的文件夹tmp

hadoop 免密 hadoop免密登录失败怎么办_解决方案_17


②重新创建dfs.namenode.name.dir以及dfs.namenode.data.dir所以对应的目录结构


hadoop 免密 hadoop免密登录失败怎么办_hadoop_18


mkdir -p可以实现创建多级目录

③重新格式化NameNode,重启集群


hadoop 免密 hadoop免密登录失败怎么办_linux_19


hadoop 免密 hadoop免密登录失败怎么办_linux_20

错误六——jps命令无效

1、发现错误:键入jps命令后无显示内容,且无报错

2、解决方案 ①查看/tmp/hsperfdata_H18文件的权限:ls -l

hadoop 免密 hadoop免密登录失败怎么办_vim_21


此时hsperfdata_H18的权限为777

②将hsperfdata_H18的权限改为755:chmod 755 hsperfdata_H18


hadoop 免密 hadoop免密登录失败怎么办_vim_22


③再次输入jps命令,问题解决


hadoop 免密 hadoop免密登录失败怎么办_hadoop 免密_23