热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Hadoop+Spark安装(三)——调hadoop

***************************测试hadoop及问题跟进***************************执行以下语句报错datahadoop-2.9.

***************************测试hadoop及问题跟进***************************

执行以下语句报错

/data/hadoop-2.9.1/bin/hdfs dfsadmin -report

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

按照帖子支招,打开etc/hosts

这两句加#注释掉

#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

再执行以下语句,还是报错

/data/hadoop-2.9.1/bin/hdfs dfsadmin -report

***************************查看端口通信是否正常***************************

尝试telnet master 9000发现通信是拒绝的,所以问题从先解决通信问题开始

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

再执行ping master发现是通的,telnet master 9000发现通信是拒绝的,网上说开了防火墙,可是我查看了防火墙的状态执行/etc/init.d/iptables status,并没有开启

在同事的指导下,我执行了telnet master 22,或者telnet ip地址 22,都是通的

监听端口lsof -i:9000没有任何响应

lsof -i:22有返回,所以是占用9000端口的进程也就是在配置core-site.xml时,hdfs://master:9000这个服务有问题,应该查看hadoop的日志看看报错的原因

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

***************************端口通信正常***************************

***************************hadoop查看运行进程***************************

master节点先把所有服务停掉,一个个测试:

/data/hadoop-2.9.1/sbin/stop-all.sh

然后执行

/data/hadoop-2.9.1/sbin/start-all.sh

jps

看看正常运行的进程

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

主要有DataNode NameNode SecondaryNameNode TaskTracker JobTracker这几个进程,就表示正常了,但是我有几个没有NameNode、TaskTracker、JobTracker

然后我再执行了一遍启动namenode的指令,发现还是没起起来,没有报错,但是没有起来

/data/hadoop-2.9.1/sbin/hadoop-daemon.sh start namenode

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

看了一下slave-1节点,正常

《Hadoop + Spark安装(三) —— 调hadoop》

所以问题集中解决在为什么在master节点上,NameNode没有启动!!!

***************************hadoop进程NameNode没有启动***************************

***************************hadoop查看日志***************************

查看日志,在master节点的文件夹中,查看/data/hadoop-2.9.1/logs,找到namenode的日志,按时间排序,取对应命令行执行完的时间对应的日志,并且拉到日志最下端。

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

发现出现了出错的根本原因是:java.io.IOException: NameNode is not formatted

***************************通过hadoop日志提示解决问题***************************

  1. 方法1 —— 一种解决方案是格式化,可以参考这篇帖子:

遇到问题—Hadoop—java.io.IOException: NameNode is not formattedblog.csdn.net《Hadoop + Spark安装(三) —— 调hadoop》

2. 方法2 —— 另一种解决方案是配置文件稍微改动,不知道是否能生效:

hadoop启动dfs报错NameNode is not formattedblog.csdn.net

3. 方法3 —— 如果出错日志显示是权限问题导致NameNode没有启动,可以参考这篇帖子

Hadoop namenode无法启动问题解决www.cnblogs.com

我试图重启hadoop看看namenode有没有启动:

/data/hadoop-2.9.1/sbin/stop-all.sh

/data/hadoop-2.9.1/sbin/start-all.sh

jps

发现没起来,马上照着更新时间去看最新的日志。

看了日志:/data/hadoop-2.9.1/logs下面hadoop-root-secondarynamenode-master.log,发现SecondaryNameNode也有报错,这就是帖子最开始发现的问题端口为9000的服务没启动也就是命令行telnet master 9000报错的原因

master:9000 failed on connection exception: java.net.ConnectException: Connection refused

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

查看了/data/hadoop-2.9.1/logs下面的日志hadoop-root-namenode-master.log,发现NameNode没有被格式化还是在报错

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

综述,需要重新进行一次格式化。

***************************通过hadoop日志找到方案***************************

***************************重新修改hadoop配置文件***************************

切换到master节点,修改配置项

/data/hadoop-2.9.1/etc/hadoop/slaves

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

/data/hadoop-2.9.1/etc/hadoop/masters

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

core-site.xml

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

hdfs-site.xml

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

mapred-site.xml

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

yarn-site.xml

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

hadoop-env.sh、mapred-env.sh、yarn-env.sh 把JAVA_HOME修改为环境中的绝对路径

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

然后把master节点的日志删除,一路选择y

rm -r /data/hadoop-2.9.1/logs/*

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

最后把master节点的临时文件删除,一路选择y

rm -r /data/hdfs/tmp/*

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

有很多隐藏文件,所以用命令行删除比较推荐!!!

slave-1节点的hadoop整个删掉,重新拷贝一份,具体改动如下:

rm -rf /data/hadoop-2.9.1

下面把master的整个hadoop文件夹拷贝纸slave-1

scp -r /data/hadoop-2.9.1 root@slave-1:/data

***************************完成修改hadoop配置文件***************************

***************************hadoop重新格式化***************************

master节点停掉hadoop和日志
/data/hadoop-2.9.1/sbin/stop-all.sh

关闭日志

/data/hadoop-2.9.1/sbin/mr-jobhistory-daemon.sh stop historyserver

(如果没有在调试过程中产生新日志或者临时文件可以跳过这步!)

通过命令行,把master节点、slave-1节点的日志和临时文件夹删除,一路选择y

rm -r /data/hadoop-2.9.1/logs/*

rm -r /data/hdfs/tmp/*

开始再执行一次格式化hadoop,执行以下语句做格式化:

$HADOOP_HOME/bin/hdfs namenode -format

特别要强调必须要$HADOOP_HOME方式去做格式化,之前我用cd命令行然后直接运行hdfs是失败的

发现NameNode格式化成功

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

启动hadoop
/data/hadoop-2.9.1/sbin/start-all.sh

jps

确认namenode节点启动!

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

查看所有的日志namenode和datanode有没有报错

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

改了一通,检查所有的日志邮件,已经没有ERROR了,就表示所有配置正常,WARN的话,有空可以优化,百度都有解决方案的!

***************************完成修改hadoop重新格式化***************************

***************************测试hadoop管理界面***************************

http://localhost:50070(HDFS管理界面)

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》

master的IP地址同你在hosts中设置的内网或者外网IP,我这里配置的是内网IP

http://IP地址:8088/cluster

YARN监控界面

《Hadoop + Spark安装(三) —— 调hadoop》
《Hadoop + Spark安装(三) —— 调hadoop》


推荐阅读
author-avatar
钞绚舞亨利
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有