Hadoop集群系列文章目录
Hadoop集群的搭建(全分布式)——记录一些遇到的错误及其解决方法
目录
错误一——NameNode到自身免密登陆失败(文件权限不足)
1、发现错误:NameNode到自身的免密登录失败(ssh时仍需输入密码)
2、查看具体报错内容:sudo cat /var/log/secure
查看ssh日志,找到对应时间的报错
报错如下:Authentication refused: bad ownership or modes for file /home/MADO/.ssh/authorized_keys
3、解决方案
根据报错内容可知:当前用户对authorized_keys文件的权限不足。
那么我们通过修改authorized_keys文件的权限即可解决这个问题:chmod 750 authorized_keys
4、文件/文件夹权限不足导致免密登录失败情况の总结
可能因权限不足而导致NameNode无法实现到自身的免密登陆的文件/文件夹一般有:.ssh(文件夹)、authorized_keys(文件)
需更改NameNode各文件夹/文件的权限如下
错误二——NameNode到DataNode免密登陆失败(文件权限不足)
1、发现错误:NameNode到DataNode的免密登录失败(ssh时仍需输入密码)
2、查看具体报错内容:sudo cat /var/log/secure
查看ssh日志,找到对应时间的报错
报错如下:Authentication refused: bad ownership or modes for file /home/MADO/.ssh/authorized_keys
3、解决方案
根据报错内容可知:当前用户对authorized_keys文件的权限不足。
那么我们通过修改authorized_keys文件的权限即可解决这个问题:chmod 750 authorized_keys
4、文件/文件夹权限不足导致免密登录失败情况の总结
可能因权限不足而导致NameNode无法实现到自身的免密登陆的文件/文件夹一般有:.ssh(文件夹)、tmp(文件夹)、authorized_keys(文件)
需更改DataNode各文件夹/文件的权限如下
错误三——hadoop-env.sh文件某行内容出错
1、发现错误:/home/MADO/bigdata/hadoop-2.7.7/etc/hadoop/hadoop-env.sh: line 29: i#: command not found
2、解决方案
①停止集群
②vim hadoop-env.sh
③在文档中键入::set nu(显示文件的行数),查看出错的第29行
④改正后保存并退出,然后将修改过的文件从NameNode远程传输(scp)至各个DataNode(注意:传到正确的路径下)
错误四——其他用户的NameNode进程未结束导致集群启动失败
1、发现错误:NameNode未成功启动
2、查看具体报错内容
①先停止集群
②然后查看NameNode的log文件:vim hadoop-用户名-namenode-机器名.log
③查找到错误原因:java.net.BindException: Address already in use
3、解决方案:kill掉已存在进程(需切换至root用户),然后重新启动集群
错误五——clusterID不一致导致集群启动失败
1、发现错误:DataNode未成功启动
2、查看具体报错内容
①先停止集群
②然后到DataNode上查看log文件:vim hadoop-用户名-datanode-机器名.log
③查找到错误原因:FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool (Datanode Uuid unassigned)(该错误一般是由多次格式化NameNode导致的)
3、进一步查看错误原因
①NameNode:vim HADOOP_HOME/tmp/name/current/VERSION
②DataNode:vim $HADOOP_HOME/tmp/data/current/VERSION
错误的根本原因:多次格式化NameNode,导致NameNode与DataNode的clusterID不一致
4、解决方案
①在NameNode、DataNode上删除dfs.namenode.name.dir(hdfs-site.xml的配置项)所对应的文件夹tmp
②重新创建dfs.namenode.name.dir以及dfs.namenode.data.dir所以对应的目录结构
mkdir -p可以实现创建多级目录
③重新格式化NameNode,重启集群
错误六——jps命令无效
1、发现错误:键入jps命令后无显示内容,且无报错
2、解决方案
①查看/tmp/hsperfdata_H18文件的权限:ls -l
此时hsperfdata_H18的权限为777
②将hsperfdata_H18的权限改为755:chmod 755 hsperfdata_H18
③再次输入jps命令,问题解决