hadoop在centos7上搭建过程中遇到的问题总结

本文详细记录了在CentOS7上搭建Hadoop 2.2.0的过程,包括遇到的错误及解决方法。主要问题涉及Hadoop初始化、32位与64位库冲突以及防火墙设置。通过解决Java HotSpot(TM)警告、编译或替换native库以及开启防火墙服务,最终成功完成Hadoop集群的搭建并能正常访问Web UI。

hadoop在centos7上搭建历程,分析解决遇到的问题,最终走向成功。不着急可以读完,可以跳过我走的坑,还能对你遇到的问题有所启发。如发现有问题,请指正,大家相互学习。

自己根据视频第一次搭建hadoop 2.2.0时,先安装配置好对应环境变量,然后执行脚本start-all.sh启动或者单独执行start-dfs.sh和start-yarn.sh,jps查看进程,一开始出现少了datanode进程,然后分析原因,是因为hdfs在初始化的时候,不小心执行了2次,导致初始化目录中的存储的某个id不一致,所以datanode没法启用。然后tmp目录删掉重新初始化启动成功。但控制台出现Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /usr/local/hadoop/lib/native/libhadoop.so which might have disabled stack guard.然后百度原因,

出现这个问题基本都是在64位操作系统上,这主要是因为Hadoop官网上下载的本地库文件都是基于32位系统编译的,如果在64位系统上运行会出现这个问题错误。解决的方法 有两种:

一、在64为操作系统上重写编译Hadoop文件

二、在etc/hadoop/目录中的 hadoop-env.sh和yarn-env.sh 这两个文件中添加如下两行代码:
 

export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

上面的警告没了,接着出现 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable,说是从官网下载的包native库默认是32位,虚拟机是64位,然后就对应找编译好的64位,为了保险起见,我也尝试了自己重新编译源码生成,可惜从中央仓库下载各种jar包太慢,而且还会暂停,实在没有耐心等待,还是老老实实的去找别人编译好的。先找到了2.4的,找到替换再次启动,执行hadoop fs -ls /,警告依旧存在。以为可能版本2.2.0不一致,再去找2.2.0的,再次替换,不启动直接执行hadoop fs -ls /,看警告是否出现,依旧。这时我就纳闷了,咋还不行呢。再次尝试,发现有个博主的贴出来的hadoop-env.sh配置是

export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

赶紧gai,再次执行 hadoop fs -ls /,果然没有警告了。喜大乐奔。

打开浏览器访问http://192.168.133.211:50070,还是打不开。这下又蒙了,啥都有了,咋还不能访问呢。百度找到灵感,说是防火墙没关,根据以前的经验,linux防火墙是iptables,直接熟练输入service iptables status,居然没有这服务,我大脑短路自认为是关闭的。最后看到解释说centos 7默认防火墙是firewall,不是iptables。这才明白原来是这么回事。

centos 7操作防火墙firewall:

Firewall:

systemctl start firewalld.service#启动firewall

systemctl stop firewalld.service#停止firewall

systemctl disable firewalld.service#禁止firewall开机启动

再来一次,果然可以了。饶了一大圈,我其实一开始就是在解决 http://192.168.133.211:50070访问不了,然后以为是因为那些警告造成的没启动成功。把警告都解决了,才发现最后隐藏boss还是防火墙。总结一下,还是对linux不熟悉,对hadoop不熟悉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值