参考:https://blog.csdn.net/pucao_cug/article/details/71698903
大体于参考的博客相同,有小部分区别:
1、安装完成之后,启动过程报错:
Starting namenodes on [hadoopm]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [hadoopm]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
Starting resourcemanager
ERROR: Attempting to operate on yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.
Starting nodemanagers
ERROR: Attempting to operate on yarn nodemanager as root
ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting operation.
原因:缺少用户定义
解决方式:
$ vim sbin/start-dfs.sh
$ vim sbin/stop-dfs.sh
在顶部空白处添加内容:
(Hadoop3.0前的版本)
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
(Hadoop3.0后的版本)
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
$ vim sbin/start-yarn.sh
$ vim sbin/stop-yarn.sh
在顶部空白处添加内容:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
2、命令来查看HDFS文件系统,结果发现报错
[root@hadoop01 hadoop-2.9.1]# hadoop fs -ls /*
bash: hadoop: 未找到命令...
原因:未配置Hadoop的环境变量
配置环境变量
export HADOOP_HOME=你的hadoop安装路径
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
3、datanode没有启动
在使用start-all.sh启动hadoop的时候,会发现,主节点namenode是启动了,但是分节点datanode启动失败。继续观察,会发现一开始是有datanode的,但它在启动后一会儿自动消失了。
可能原因网上讲了一些:
1、防火墙没关(注意区分centOS6和centOS7关闭防火墙的命令是不一样的)。
2、打开hdfs-site.xml里配置的datanode和namenode对应的目录,分别打开current文件夹里的VERSION,可以看到clusterID项正如日志里记录的一样,确实不一致。
[root@hadoop01 sbin]# cat /root/hadoop/dfs/name/current/VERSION
#Fri Jul 13 23:04:07 CST 2018
namespaceID=781012180
clusterID=CID-b6934b47-4a9a-4e4c-8291-cd153ef830ba
cTime=1531494247761
storageType=NAME_NODE
blockpoolID=BP-485123232-10.25.0.165-1531494247761
layoutVersion=-63
[root@hadoop01 sbin]# cat /root/hadoop/dfs/data/current/VERSION
#Fri Jul 13 18:27:19 CST 2018
storageID=DS-b3dda351-22bb-4423-b058-df3b5af962ae
clusterID=hadoop-federation-clusterId
cTime=0
datanodeUuid=9241c115-8068-46d4-956b-eb86b8b37b49
storageType=DATA_NODE
layoutVersion=-57
[root@hadoop01 sbin]#
修改datanode里VERSION文件的clusterID 与namenode里的一致,再重新启动dfs(执行start-all.sh)再执行jps命令可以看到datanode已正常启动。
3、配置slavs出错
备注:hadoop3以后有一个workers文件用来存储slaves,对应的是datanode.
[root@master hadoop]# cat /opt/hadoop/etc/hadoop/workers
node1
node2
4、查看
Hadoop3.0之后端口改为了9870
Hadoop3.0前为50070
在主节点的Centos系统中输入网址 http://localhost:9870/ 即可查看