天天看點

工作中Hadoop,Spark,Phoenix,Impala 叢集中遇到坑及解決方案

1.HDFS 修複

   問題描述:其他部門在yarn平台上跑spark 程式錯誤的生成了海量的不到100K的小檔案,導緻namenode壓力過大,其中一個namenode當機後,沒有及時發現 使得edits檔案大量積累,在namenode1當機後,namenode2 随後在淩晨1點也當機。

   原因分析:NameNode 記憶體設定太低,之前記憶體設定在1G,後調高namenode 堆記憶體,調高到18G。編寫程式的人員不應該生成海量的小檔案落地HDFS,大量的小檔案不适合存儲在HDFS上。

   問題解決方案:提高namenode 記憶體,由于edits檔案太多,删除了edits檔案,但是journalNode 上edits txid不一緻,導緻namenode 無法啟動,後執行指令 初始化edits檔案的txid ,修複完畢!丢失了少量的檔案。

2.Spark 用戶端安裝後Driver和Yarn無法通訊

問題描述:項目經理在10.10.26.7 機器上安裝spark 用戶端,但是dirver端和yarn無法通訊.一直報通訊逾時

原因分析:由于用戶端是centos6,服務端為centos7。底層通訊方式不相同

問題解決方案:更新用戶端機器到centos7問題解決。

3.Phoenix 安裝和Hive出現沖突

問題描述:把 phoenix-hbase-client.jar phoenix-hbase-core.jar phoenix-hbase-server.jar 放到了hbase的jar目錄下,hbase 使用沒有問題,phoenix使用沒有問題,但是執行hive指令報錯,hive無法使用。

原因分析:hive首先加載hive lib目錄下的jar檔案,然後加載hbase 下的jar檔案,由于hbase下phoenix-hbase-client.jar檔案中的一個java檔案依賴的其他jar版本太低,hive版本太高,無法找到其中一個類,然後報ClassNotDef

問題解決方案:去掉phoenix-hbase-client.jar 即可,目前看來這個包沒有什麼用。

4.HDFS擴容更新

 問題描述:新增加機器,擴容HDFS,已經擴容完畢,之後運維部重新挂載磁盤,HDFS出現邏輯卷錯誤

問題分析:日志顯示挂載磁盤錯誤,實際是寫資料的目錄權限不足

問題解決方案:修改挂載的磁盤的所屬使用者為hadoop,重新啟動dataNode即可

5.Yarn NodeManager OOM

問題描述:向叢集送出大的作業 Yarn平台的NodeManager OOM ,OOM死掉後的NodeManager,存活的NodeManager 正在運作就會出現core使用出現負數。

問題分析:由于yarn程序所需的記憶體不足出現OOM

問題解決方案:在/opt/hadoop/libexe/hadoop_config.sh 在尾部添加 

6. Impala 根據時間戳查詢Hbase

問題描述:使用Impala 查詢hbase中的資料,出現錯誤找不到列

問題分析:impala不支援根據hbase timestamp查詢

問題解決方案:https://issues.apache.org/jira/browse/IMPALA-2121

7.HDFS 異構存儲 磁盤容量不一緻

 問題描述:由于HDFS dataNode節點的磁盤大小不一緻,導緻小容量的HDFS先打滿,yarn跑任務出現問題

 問題分析:盡量讓資料一緻

 問題解決方案:開啟HDFS讓資料優先寫入容量大的磁盤,優先寫入容量的dataNode節點,開啟rebalance

8.HDFS 機架感覺不可以同時存在有機架和沒有機架的節點

問題描述:機架感覺不可以同時存在有機架和沒有機架的節點

問題分析:開始以為是HDFS的topology.sh檔案中的default-rack導緻的,但是修改為已有的機架依舊不可以,觀察HDFS源碼發現hdfs源碼中也有default-rack,如果沒有機架配置預設使用default-rack即沒有機架

問題解決方案:由于topology.data檔案最後一行需要回車即可

9.Yarn NodeManager 當機

問題描述:新增的NodeManager 機器NodeManager 程序一直宕

問題分析:觀察日志問OOM,打開檔案limit受限制

問題解決方案:修改linux系統其它使用者打開檔案數量的限制即可解決

10. HDFS NameNode無法和JournalNode通訊,NameNode當機

問題描述: 由于運維修改網絡導緻journalNode無法和nameNode 通訊,觀察日志NameNode嘗試與journalNode通訊10次失敗後,NameNode直接當機

問題分析:   JournalNode網絡通訊高可用需要保證

問題解決方案:重新啟動nameNode問題解決

繼續閱讀