Hadoop集羣搭建過程中的常見問題(一)

Hadoop 集羣搭建常見問題

本人近期也一直在搭建Hadoop的相關環境,包括hadoop的搭建、zookeeper的搭建已經hbase的部署,這過程中也遇到了形形色色的問題,中間的過程也是十分的抓狂。在這裏和大家分享一些自己的問題,希望對大家有所幫助,先列出三個供大家參考:

1. “Agent admitted failure to sign using the key”

  該問題是在建立集羣ssh通信的過程中會出現的問題。在搭建hadoop集羣的過程中,需要保持各個節點之間的無密ssh連接,首先需要設置一個主節點的ssh密鑰,這個報錯可能就出現在建立各節點之間無密通信的過程中。

 錯誤提示:Agent admitted failure to sign using the key.

 解決方法:使用 ssh-add 指令將私鑰 加進來 (根據個人的密匙命名不同更改 id_rsa):
 ssh-add   ~/.ssh/id_rsa 

2.“Incompatible clusterIDs”

  該問題是在搭建Hadoop集羣,啓動HDFS的過程中可能出現的問題。

 錯誤提示:java.io.IOException: Incompatible clusterIDs in /data/dfs/data: namenode clusterID = xxxxxxxxxx

 出錯的原因:hadoop的升級功能需要data-node在它的版本文件裏存儲一個永久性的clusterID,當datanode啓動時會自動檢查並匹配namenode的版本文件裏的clusterID,如果兩者不匹配,就會出現"Incompatible clusterIDs"的異常。
 每次namenode format會生成一個新的namenodeId,而data目錄包含了上次format時的id,namenode format清空了namenode下的數據,但是沒有格式化datanode下的數據,就會出現”java.io.IOException:Incompatible namespaceIDs“異常

 解決方法:方法1:停掉集羣,刪除問題節點的data目錄下的所有內容。即hdfs-site.xml文件中配置的dfs.data.dir目錄。並且重新對namenode格式化。

 方法2:停掉集羣,然後將datanode節點目錄/dfs/data/current/VERSION中的修改爲與namenode相應文件中的一致
 注:不要將data目錄本身刪除

3.“name or service not known”

  該問題同樣是在建立ssh連接時出現的問題

 錯誤提示: ssh: Could not resolve hostname XXXXXXXX: Name or service not known

 解決方法:方法1:將以下代碼寫在你的.bashrc文件中:
#HADOOP VARIABLES START
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib/native"
#HADOOP VARIABLES END
之後在執行下列指令:
sudo apt-get install apache2
 方法2:修改你集羣節點上etc/hadoop/hadoop-env.sh:
export HADOOP_OPTS="$HADOOP_OPTS -XX:-PrintWarnings -Djava.net.preferIPv4Stack=true"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章