文章目录
- 1.启动hadoop之前,ssh免密登录slave主机正常,使用命令start-all.sh启动hadoop时,需要输入slave主机的密码,说明ssh文件权限有问题,需要执行以下操作:
- 2.启动hadoop之后,使用jps查看,master服务器中没有namenode服务,解决方案如下:
- 3.启动hadoop之后,使用jps查看,master服务器中没有datanode服务,解决方案如下:
- 4.启动hadoop之后,使用jps查看,slave服务器中没有datanode和namenode服务
- 5.运行hadoop的MapReduce示例,在running job卡住,不能继续运行
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),看是否需要输入密码,如果仍然需要输入密码,说authorized_keys文件权限有问题,则执行下一步
(6)使用ssh -vvv slave01调试命令,进入到slave01调试界面
(7)设置authorized_keys文件权限为600,chmod 600 ~/.ssh/authorized_keys
(8)同理,在master主机的终端中继续执行步骤6和步骤7中的命令
9)设置完成后在master主机中,登录slave01和slave02,如果不需要输入密码,则配置完成
(10)停止hadoop的所有进程:stop-all.sh
(11)重新启动hadoop:start-all.sh
2.启动hadoop之后,使用jps查看,master服务器中没有namenode服务,解决方案如下:
问题出现的原因可能是:一般都是由于两次或两次以上格式化NameNode造成的
(1)首先停止hadoop的所有进程:stop-all.sh
(2)进入hadoop安装目录下:/software/hadoop/ 中删除hadoopdate文件夹所有文件
(3)格式化namenode:hdfs namenode -format
(4)重新启动hadoop:start-all.sh
(5)输入jps查看,可以看到namenode进程
3.启动hadoop之后,使用jps查看,master服务器中没有datanode服务,解决方案如下:
一般由于多次格式化NameNode导致。在配置文件中保存的是第一次格式化时保存的namenode的ID,因此就会造成datanode与namenode之间的id不一致。
(1)查看从节点机器hadoop中datanode的log文件 , 拉到最后 , 报错如下
(2)然后找到datanode日志文件打开。(在/hadoop-2.7.3/logs/)
(3)如图,复制这个namenode clusterID。
找到data目录,在这个目录下,有一个VERSION文件。将VERSION中的clusterID改成上面复制的ID。
(4)找到current 中的VERSION 打开,复制修改clusterID,保存 。
(5)重新启动hadoop:start-all.sh
(6)查看进程
4.启动hadoop之后,使用jps查看,slave服务器中没有datanode和namenode服务
很可能是防火墙问题(master节点和slave节点的都需要在root权限下关闭)
输入service iptables stop命令
5.运行hadoop的MapReduce示例,在running job卡住,不能继续运行
1.可能是hosts列表配置错误
在root权限下,输入vi /etc/hosts,查看IP地址以及主机名是否正确!!2.可能由于集群所在的空间磁盘不足所致。
修改yarn-site.xml文件
[whzy@master hadoop-2.7.3]$ vi ~/hadoop-2.7.3/etc/hadoop/yarn-site.xml
用下面代码中<configuration>和</configuration>之间的内容替换yarn-site.xml中相应的部分。
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
</configuration>
以上就是我从网上结合自己的一些问题所总结的,希望对你有所帮助~!!