CDH 安裝hadoop 叢集中的一些問題歸納--- 持續更新
最近自己在研究CDH 安裝Hadoop叢集,CDH 叢集的好處就是可以不用手工修改大量的配置檔案,然後去分發到所有的機器中,節省大量的人力和時間。效率比較高,一般配合CM 的圖形介面來完成所有操作,包括叢集的擴充套件與服務的升級,重啟等都可以使用cloudera-manager 來完成。官方也推薦安裝的時候通過cm 來部署cdh 叢集,而且cm 還自帶了一些簡單的監控功能,比如對叢集中的IO 狀態,CPU負載,磁碟和記憶體的監控,雖然功能不是很強大,沒有專門的監控工具( ganglia, zabbix,nagios等) 強大,也可以看一些基本概況,還是不錯的哦。當然,如果對於叢集的監控有嚴格要求,需要看詳細引數,需要告警機制等可以結合專業的監控工具來完成。
下面簡單介紹一下cdh 中遇到的問題。
1. 安裝cdh時, spark會讀取java路徑,而且是從預設的 /usr/share/java下讀取。如果沒有這個目錄就會報錯,可能很多朋友都遇到過,在這個地方困擾了很久。 如果沒有這個目錄,就手動建立好。 然後把MySQL的jdbc.jar 包移動到這個目錄下。
2. 安裝cdh時,jdbc的jar 包需要重新命名一下,就是去除掉版本號。否則會無法識別的,導致資料庫連線異常。
3. 安裝cdh時,我們會手動建立一個虛擬使用者 cloudera-scm ; 這個 使用者的作用是為了保證parcel-repo, 和clouder-manager 的所有權,以及cm在執行初始化時執行初始化資料庫的指令碼要使用這個虛擬使用者的。 很重要。
4. 安裝cdh 時,在資料庫連線測試時,hue 測試失敗,無法連線報錯: Unable to verify database connection ;
原因是缺失mysql 的依賴包: 請手動安裝一下: mysql-community-libs-compat 包,安裝完成再次測試即可解決。
5. 可能很多朋友想知道,安裝cdh後,不想原生apache 版本那樣,很多配置檔案需要修改。cdh的配置檔案沒有嗎,在哪裡修改呢?
在此說明一下:
6. Hadoop配置檔案
配置檔案放置於/var/run/cloudera-scm-agent/process/目錄下。如:/var/run/cloudera-scm-agent/process/193-hdfs-NAMENODE/core-site.xml。這些配置檔案是通過Cloudera Manager啟動相應服務(如HDFS)時生成的,內容從資料庫中獲得(即通過介面配置的引數)。
在CM介面上更改配置是不會立即反映到配置檔案中,這些資訊會儲存於資料庫中,等下次重啟服務時才會生成配置檔案。且每次啟動時都會產生新的配置檔案。
CM Server主要資料庫為scm基中放置配置的資料表為configs。裡面包含了服務的配置資訊,每一次配置的更改會把當前頁面的所有配置內容新增到資料庫中,以此儲存配置修改歷史。
scm資料庫被配置成只能從localhost訪問,如果需要從外部連線此資料庫,修改vim /var/lib/cloudera-scm-server-db/data/pg_hba.conf檔案,之後重啟資料庫。執行資料庫的使用者為cloudera-scm。
檢視配置內容
直接查詢scm資料庫的configs資料表的內容。
訪問REST API: h提提屁://hostname:7180/api/v4/cm/deployment
配置生成方式
CM為每個服務程序生成獨立的配置目錄(檔案)。所有配置統一在服務端查詢資料庫生成(因為scm資料庫只能在localhost下訪問)生成配置檔案,再由agent通過網路下載包含配置檔案的zip包到本地解壓到指定的目錄。
配置修改
CM對於需要修改的配置預先定義,對於沒有預先定義的配置,則通過在高階配置項中使用xml配置片段的方式進行配置。而對於/etc/hadoop/下的配置檔案是客戶端的配置,可以在CM通過部署客戶端生成客戶端配置。
其他錯誤總結會持續更新。