1.启动hadoop之前,ssh免密登录slave主机正常,使用命令start-all.sh启动hadoop时,需要输入slave主机的密码,说明ssh文件权限有问题,需要执行以下操作:
1)进入.ssh目录下查看是否有公钥私钥文件authorized_keys、id_rsa、id_rsa.pub
2)如果没有公钥私钥文件,则执行ssh-keygen -t rsa生成秘钥(master主机和slave主机都需要执行)
3)公钥私钥文件生成完成后,执行cat id_rsa.pub >> authorized_keys,将生成的公钥添加到认证文件中
4)将slave服务器公钥写入master服务器authorized_keys文件中
[root@master ~]# ssh-copy-id -i slave01
[root@master ~]# ssh-copy-id -i slave02
5)登录slave服务器(ssh slave01),看是否需要输入密码,如果仍然需要输入密码,说明uthorized_keys文件权限有问题,则执行下一步
6)使用ssh -vvv slave01 调试命令,进入到slave01调试界面
7)设置authorized_keys文件权限为600,chmod 600 ~/.ssh/authorized_keys
8)同理,slave01也要同样进行设置,在master主机的终端中继续执行步骤6和步骤7中的命令
9)设置完成后在master主机中,登录slave01和slave02,如果不需要输入密码,则配置完成
10)停止hadoop的所有进程:stop-all.sh
11)重新启动hadoop:start-all.sh
2.启动hadoop之后,使用jps查看,master服务器中没有namenode服务,解决方案如下:
1)首先停止hadoop的所有进程:stop-all.sh
2)格式化namenode:hdfs namenode -format
3)重新启动hadoop:start-all.sh
4)输入jps查看,可以看到namenode进程
3.启动hadoop之后,使用jps查看,slave服务器中没有datanode服务,解决方案如下:
1)首先停止hadoop的所有进程:stop-all.sh
2)进入hadoop安装目录下:/software/hadoop中删除hadoopdate文件夹
3)进入hadoop安装目录下:/software/hadoop中的hadoop-2.7.3文件夹中删除logs文件夹
4)在slave01主机和slave02主机的终端执行步骤2和步骤3,确保步骤2和步骤3的文件夹都删除干净
5)格式化namenode:hdfs namenode -format
6)重新启动hadoop:start-all.sh
7)在slave01主机和slave02主机的终端输入jps查看,可以看到datanode进程
以上均是个人在搭建环境实战中遇到的问题,以及有效的解决方法,希望能帮到大家。
有兴趣的朋友也可以一起交流探讨。