hadoop集群搭建出现的一些问题总结

为了实现三台主机(master slave1 slave2)间的免密码登录,分别将slave1和slave2的公钥发送给 master ,然后再将master复制到slave1和slave2

ssh-copy-id master

验证master里面的authorized_keys

cat .ssh/authorized_keys

这里出现了问题,只有master和slave2的公钥,没有slave1,最后发现是slave1主机的etc/hosts文件下没有配置这三个主机的IP地址。出现slave1和slave2的公钥就说明配置成功了。

将master的authorized_keys文件复制给slave1和slave2

scp ~/.ssh/authorized_keys hdp@slave1:~/.ssh

验证三个主机之间可以免密登录后,就直接格式化了,这个操作是错误的,结果就是格式化失败

必须将hadoop目录的所有者设置为启动hadoop的用户,查看hadoop的所有者,发现与启动hadoop的用户(hdp)不同

转换成root,才有权限修改目录的所有者,这里让我比较纠结的一点是路径问题,不确定是在root目录下的 usr 还是 / ,看了一些blog介绍说在root目录下的 / ,相当于普通用户下面的 ~ ,我的hadoop位于hdp用户下的 usr/local,因此用 / 。如果不确定,可以在终端查看一下。

su root   \\转换成root修改hadoop的所有者,普通用户(hdp)没有权限修改

chown mail:mail  file  \\改变拥有者和群组

建议关闭防火墙后,再格式化

service iptables stop

chkconfig iptables off

hdfs namenode -format

格式化成功截图

启动hadoop集群,执行

start-dfs.sh  \\启动namenode,必须在该节点主机上运行命令

出现错误

可以看到slave1主机和slave2主机没有权限和无法访问文件,主要原因是只在master修改了文件(hadoop-2.7.0)的拥有者(hdp),未在slave1和slave2中修改他们的的文件拥有者。全部修改完毕以后,用jps命令查看主机中的进程,一切正常。

 继续执行启动集群命令。注意,执行以下命令时,在slave2主机上执行,不在master。

start-yarn.sh    \\启动resourcemanager,必须在该节点主机上运行命令,出现问题。 master和slave1都能正常启动,唯独slave2报 Host key verification failed. 错误。 

看其他的文章说与known_hosts文件有关,分别查看了一下master和slave2的known_hosts文件,发现master的文件中有master,slave1和slave2的公钥,而slave2中只有master和slave1。

vi ~/.ssh/known_hosts   

我将master主机的slave2公钥复制到slave2主机的known_hosts。问题解决成功。

再次查看各个主机的进程。

 

运行share中的wordcount实例,统计文件中单词出现的次数。

yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar wordcount /aa/ /bb  

出现的具体问题如下:一直连接不上服务器。

解决方法:

关闭各个主机的防火墙!

service iptables stop

chkconfig iptables off

这里转换为root,普通用户没有权限关闭防火墙。

结果展示。

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值