在安装hadoop中出现的一些小问题及解决办法合集!

先给大家来一个亲测可用的hadoop3.2.0下载地址,直接shell:

wget http://mirrors.hust.edu.cn/apache/hadoop/core/stable/hadoop-3.2.0.tar.gz

写一些我在安装hadoop时碰到的一些问题。

1.启动hadoop报找不到jdk error。但是我也忘了jdk安装在哪里,查找资料后用whereis java 命令得到超链接,cd超链接后得到最终地址,vi hadoop.env.shexport JAVA_HOME="jdk路径"解决问题。
2.启动namenode和datanode时报没有权限 error。发现问题出现在没有加密钥上,找官网代码重新搞一遍:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

解决这个问题了。
3.启动namenode和datanode时报一个奇怪(没有及时记下来,好像是提示root用户啥的)的error,启动失败。查询资料知还需要配置四个文件 start-yarn.sh、stop-yarn.sh、start-dfs.sh、stop-dfs.sh 。

start-yarn.sh、stop-yarn.sh:

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

start-dfs.sh、stop-dfs.sh

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

重新启动start-all.sh解决问题。jps一下:

PS:之前有出现过一个问题,就是DataNode无法正常启动,但是运行界面又没有报错,很奇怪,然后查询了运行日志,发现这段有问题:

2019-10-07 15:19:10,280 WARN org.apache.hadoop.hdfs.server.common.Storage: Failed to add storage directory [DISK]file:/home/leesf/program/hadoop/tmp/dfs/data
java.io.IOException: Incompatible clusterIDs in /home/leesf/program/hadoop/tmp/dfs/data: namenode clusterID = CID-56c18e53-1056-45eb-ae1f-773c146463cb; datanode clusterID = CID-34706444-8335-4222-8e5e-3dcca001970d

查了一下资料,发现是多次格式化后ID不匹配,解决方法就是去/home/leesf/program/hadoop/tmp/dfs/data/current/VERSION(具体路径看log显示)
文件里把相应的ID改成一致的就可以了,重启服务可以正常运行。

至此,所有进程算是运行成功了。

4.在舍友安装hadoop过程中还出现了starting namenode时没有报错但是进程启动失败的问题。刚开始查阅资料得到是因为端口被占用应该是xml配置出现问题,但查了半天的配置文件,发现没出现问题,最后发现问题出在hdfs没有格式化,bin/hdfs namenode -format后解决这个问题。

5.小插曲:在执行start-all.sh时,如果在/hadoop/hadoop-3.2.0/sbin# 目录下执行start-all.sh提示找不到命令,而在/hadoop/hadoop-3.2.0#目录下执行sbin/start-all.sh可以正常运行。

.6.我用的是阿里云服务器,在配置过程中出现无法查看Web UI的问题。刚开始一直没办法解决,访问http://localhost:50070提示找不到网页,后来查询到hadoop3.2.0版本改到9870端口,访问还是找不到网页。这个问题搁置了很久,在完成全部其他配置后我才开始着手解决这个问题。在查阅资料的过程中我突然意识到,我用的是阿里云服务器,所以我去搜了一下,用http://阿里云公网IP:9870可以访问,但尝试后发现还是不行。通过查阅资料得知,要在阿里云服务器那边添加安全组的入口规则允许9870端口访问,保存并重启。然后我发现之前在配置hdfs-site.xml时没有配置dfs.namenode.http-address这一项,于是要添加下面的这几行代码(在原有的基础上添加)::

<property>
<name>dfs.namenode.http-address</name>
<value>0.0.0.0:9870</value>
</property>

然后重新格式化hdfs:bin/hdfs namenode -format
重启所有服务:sbin/start-all.sh
查阅资料时得知,端口可能被占用,所以查找命令后执行

这下应该可以正常访问了吧,我想。但是我在继续访问9870端口时又出现一个问题:

不过不是什么大问题,换成Microsoft Edge浏览器访问轻松解决了这个问题,下图为正常访问:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

x1Nge.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值