Hadoop啓動報錯常見問題

我在本地虛擬機上部署好 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 進程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章