1. 程式人生 > >工作中Hadoop,Spark,Phoenix,Impala 集群中遇到坑及解決方案

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

文件數量 無法使用 base inux 設置 topology 報錯 的人 源碼

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

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