工作中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問題解決


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM