hadoop集群配置入坑问题汇总(centos7, hadoop2.6.5-3.1.2)

持续更新问题

写在前面

纯小白一个,从前痴迷理论,如今幡然悔悟,宁愿半死不活在坑里,爬出来再幡然悔悟,也不愿脚踩空地,软软踏踏的。尤其是大数据开发,组件众多,没有对操作系统和编程的基础,能理解也依然前途漫漫。作为一个java和python的半吊子,自确定了入这个坑,觉得多踩踩坑吧,什么时候爬出来坑,幡然悔悟了,也就融会贯通了吧。
坑是数不清的,更不能瞎踩,再小的问题没踩过都不能轻视,具体问题具体分析,因为只有你清楚你自己做了什么。
As it is your cluster, only you can find out and track down the problem.

特别说明

我觉的坑分两种:简单的,复杂的
简单的就是没有搞清楚版本就往坑里跳的。
复杂的就是没有搞清楚原理卡在坑里一条腿的。

问题初汇

1. 问题:在/etc/sysconfig/network-scripts/目录下进行网络配置后,重启network服务失败。
原因
1.配置文件名和网络适配器名称要一致,比如配置文件名为ifcfg-ens33,则NAME=ens33
2.找不到需要启动的网卡MAC地址
3.其他参数配置问题
解决:先通过systemctl status network.service查看启动状态,再执行journal -xe或者cat /var/log/messages | grep network 查找问题原因。如果是不适配问题比如dispatched等单词出现,分别stop和disable掉NetworkManager。

2.问题:hadoop下载时有source版本和binary版本,区别是什么?
回答:简单来讲,binary是编译好的可以直接使用,source是还没编译过的源代码,需要自行编译。

3.问题:配置主机的hostname,在/etc/sysconfig/network下找不到
原因:centos版本问题,centos7 hostname的配置文件已经改为了/etc/hosts。
解决:编辑/etc/hosts文件,只保留新主机名。重启后生效。

4.问题:执行hadoop命令时,提示no such file or directory。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mU3AsdBp-1573992846220)(en-resource://database/2890:1)]
原因:命令格式不对。hadoop的put命令格式为:hadoop -put [local file] [hdfs file], 如果没有第二个参数,hdfs的路径会自动加上/user/root,但因为暂时没有加入用户,导致如上的错误提示。
解决:该命令应该表示为:hadoop -put /etc/passwd /

5.问题:防火墙关闭找不到iptables服务
原因
:centos的版本问题,centos6使用iptables服务来管理防火墙,而centos7使用firewalld服务来管理
解决
1.使用systemctl命令来关闭firewalld.service
2.安装iptables-server,仍然用旧命令关闭服务:service iptables stop,该命令会提示跳转到systemctl命令

6.问题:集群打开后,执行hadoop命令报错,提示拒绝连接。
在这里插入图片描述
原因:主机用来作为hdfs通信的master:9000端口没有打开,官网提示只要hadoop配置不出问题,问题一般处在host,network,firewall。最后发现是因为没有进行格式化namenode。
解决:执行命令hdfs namenode -format后,执行start-dfs.sh脚本,并用jps命令查看master上的Java进程,需要包含’NameCode,DataCode’这两个进程,如果缺少DataCode进程,可能的原因是slaves的网络和防火墙问题。

7.问题:hadoop3.1.2版本,通过执行/sbin/start-all.sh命令后,提示多个error。
hadoop集群配置入坑问题汇总(centos7, hadoop2.6.5-3.1.2)_第1张图片
原因:hadoop3.1.2版本,除了需要在/etc/hadoop/中配置七个文件,还需要在/sbin/目录下对4个脚本文件进行修改。
解决:

  • 七个配置文件
    1. core-site.xml 配置fs.default.name和hadoop.tmp.dir的路径
    2. hdfs-site.xml 配置dfs.replication的dfs默认冗余度为3
    3. mapred-site.xml 配置mapred.job.tracker的计算路径为master:9001
    4. yarn-site.xml 配置
    5. hadoop-env.sh 添加变量JAVA_HOME的路径
    6. yarn-env.sh 同上
    7. workers 代替旧版本的slaves文件,加入slaves的IP或配置过/etc/hosts的主机名
  • 四个脚本文件
    1. start-dfs.sh, stop-dfs.sh添加:
        HDFS_DATANODE_USER=root
    
        HDFS_DATANODE_SECURE_USER=hdfs
    
        HDFS_NAMENODE_USER=root
    
        HDFS_SECONDARYNAMENODE_USER=root
    
    1. start-yarn.sh, stop-yarn.sh添加:
    
        YARN_RESOURCEMANAGER_USER=root
    
        HADOOP_SECURE_DN_USER=yarn
    
        YARN_NODEMANAGER_USER=root
    
    

8.问题:执行hadoop的put操作时,报Datastreamer Exception,和NoRouteToHostException
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
原因:通过jps检查Java进程可以看到,缺少DataNode进程,进入tmp/dfs/目录下也没有data文件夹,说明集群的DataNode节点和主机的通信有问题。一般是DataNode主机和各节点的主机名与IP地址的映射关系未设置好,再或者是防火墙的问题。经过ping检查,各映射关系良好,问题出在slaves主机的防火墙未关闭。
解决:
centos6.0
查看防火墙状态:service iptables status
关闭防火墙:chkconfig iptables off #开机不启动防火墙服务


centos7.0(默认是使用firewall作为防火墙,如若未改为iptables防火墙,使用以下命令查看和关闭防火墙)
查看防火墙状态:firewall-cmd --state
关闭防火墙:systemctl stop firewalld.service
————————————————
原文链接:https://blog.csdn.net/lsxy117/article/details/47217161

问题9:slave1: nodemanager did not stop gracefully after 5 seconds: killing with kill -9 no proxyserver to stop
hadoop集群配置入坑问题汇总(centos7, hadoop2.6.5-3.1.2)_第2张图片
原因:nodemanager没有正常关闭,NM是AM在datanode上的代理资源管理器,用来分配节点资源。很可能的情况是有任务被crtl+c终止后没有kill掉该job,没有产生其他影响
解决:等待job被自动kill掉,重启即可。

你可能感兴趣的:(大数据开发)