Hadoop启动报错常见问题

版权声明:原创不易,未经作者允许请勿随意转载!因个人能力和精力有限,难免有疏漏和不足之处,欢迎指正,谢谢~ https://blog.csdn.net/lijing742180/article/details/90486077

我在本地虚拟机上部署好 Hadoop 和 Yarn 之后,执行启动命令 ./sbin/start-dfs.sh,但是却出现各种报错问题,在此记录一下常见的两个问题。

1、Could not resolve hostname: Name or service not known

报错信息:

19/05/17 21:31:18 WARN hdfs.DFSUtil: Namenode for null remains unresolved for ID null.  Check your hdfs-site.xml file to ensure namenodes are configured properly.
Starting namenodes on [jing-hadoop]
jing-hadoop: ssh: Could not resolve hostname jing-hadoop: Name or service not known
......

这是因为没有把配置文件里的节点名称 jing-hadoop 加入域名映射,所以无法识别主机名。

解决办法:

vim /etc/hosts
127.0.0.1  jing-hadoop

然后再次启动就好了。

注意,我是在本地虚拟机上搭建的伪集群,这里的 jing-hadoop 是在 hdfs-site.xml 配置的,对应的节点 ip 就是 127.0.0.1,你要根据自己的环境做对应的修改,不要直接照搬。

2、Unable to load native-hadoop library

执行 start-dfs.sh 时,还出现了如下报错:

19/05/17 21:39:32 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
......

且执行 jps 后,没有看到 NameNode 进程,那这样肯定是不行的。

这个报错是没有在环境变量中配置 Hadoop 的本地类路径,解决办法:

vim /etc/profile

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

source /etc/profile

然后,再次执行 start-dfs.sh,发现仍会报如上错误,但执行 jps 后,发现 NameNode 进程及 DataNode 进程都已经正常启动了,所以不影响使用了。

[root@localhost hadoop-2.4.1]# jps
3854 NameNode
4211 Jps
3967 DataNode
4110 SecondaryNameNode

其中,DataNode 的个数和 ip 是在 $HADOOP_HOME/etc/hadoop/slave 文件中配置的,若配置多个 ip,则会启动多个 DataNode 进程。

猜你喜欢

转载自blog.csdn.net/lijing742180/article/details/90486077