ntp命令:
/bin/systemctl restart ntpd.service 開啓ntp
systemctl enable ntpd 設置開機自啓
systemctl status ntpd 查看狀態
ntpstat 查看狀態
Yarn服務無法啓動1
有一次同事拿着我寫的安裝手冊去安裝CDH,結果在啓動Yarn服務這一步一直失敗,而且沒有log文件生成,也就是根本就不知道是什麼錯誤。
經過百般嘗試後依然無果。於是問同事是不是嚴格按照我的文檔上來的,同事說是。結果又嘗試和排查了很多次後,同事突然說,我想起來了,打通ssh沒按照你的來,你是生成key了分發到其它機器,其實有種口令直接就能分發key到其它機器,不用在本機生成。比如這樣ssh-copy-id -p 8282 -i ~/.ssh/id_rsa.pub user@ip。
然後,我懷着崩潰的心情告訴了他,哥哥,master機器也要能免密碼登錄自己啊!!
最後,做好master機器免登錄自己後即可成功安裝。
Yarn服務無法啓動2
報錯信息:
- Error found before invoking supervisord: dictionary update sequence element #78 has length1; 2 is required
複製代碼
這個錯誤是CM的一個bug,解決方法爲修改/opt/cm-5.3.0/lib64/cmf/agent/src/cmf/util.py文件。將其中的代碼:
- pipe = subprocess.Popen(['/bin/bash', '-c', ". %s; %s; env" % (path, command)],
- stdout=subprocess.PIPE, env=caller_env)
複製代碼
修改爲:
- pipe = subprocess.Popen(['/bin/bash', '-c', ". %s; %s; env | grep -v { | grep -v }" % (path, command)],
- stdout=subprocess.PIPE, env=caller_env)
複製代碼
然後重啓所有Agent即可。
HDFS服務無法啓動
若HDFS服務無法啓動,通常是第二次嘗試安裝中才會遇到,這是隻要將上次安裝時設置的Namenode和DataNode文件夾下的數據全部刪除即可。
Host Monitor和Service Monitor服務無法啓動
這個錯誤的報錯信息如下:
- 2015-03-23 16:08:10,518 ERROR com.cloudera.cmon.firehose.Main: Error creating LevelDB subject record store.
- java.lang.IllegalStateException
- at com.google.common.base.Preconditions.checkState(Preconditions.java:133)
- at com.cloudera.cmon.tstore.leveldb.LDBResourceManager.register(LDBResourceManager.java:273)
- at com.cloudera.cmon.tstore.leveldb.LDBPartitionManager.<init>(LDBPartitionManager.java:270)
- at com.cloudera.cmon.tstore.leveldb.LDBPartitionManager.createLDBPartitionManager(LDBPartitionManager.java:196)
- at com.cloudera.cmon.tstore.leveldb.LDBTSSubjectRecordTable.create(LDBTSSubjectRecordTable.java:84)
- at com.cloudera.cmon.tstore.leveldb.LDBSubjectRecordStore.create(LDBSubjectRecordStore.java:197)
- at com.cloudera.cmon.tstore.leveldb.LDBSubjectRecordStore.create(LDBSubjectRecordStore.java:178)
- at com.cloudera.cmon.firehose.Main.main(Main.java:517)
複製代碼
初步一看,應該是這個兩個服務所用的LevelDB文件沒有正確的創建,於是刪除/var/lib下兩者的目錄並重試,還是失敗。於是嘗試在其它機器上安裝這2個服務,怎奈每次後退到選擇安裝機器的那一步時,關於Host Monitor和Service Monitor設置的項目就不見了,就算出現了且設置到其它機器上也不會安裝在其它機器上,還是安裝在master機器上。
後在google論壇上看到有人說可能是內存設置過低或者“進程打開最大文件數”過低造成的。考慮到打開句柄這步操作在安裝CDH之前就已經進行且重來沒有出過問題,於是就沒有考慮。結果嘗試數次過後還是不行。
最後無奈中看了下句柄數ulimit -n,發現居然是1024。然後登錄其它slave節點查看,發現都是配置的65535。這是什麼情況?同樣的配置,會出現不同的結果。最後查看了ulimit -u等配置,發現除了master節點的句柄數配置沒有生效以外,其它的都生效了。
最後無意中嘗試了下telnet登錄master節點,發現ulimit -n的結果居然是65535。好吧,至此終於知道原因了。master節點由於有DCN網絡的IP,所以爲了應對安全掃描安裝了沒有心臟漏血漏洞的高版本ssh,而其它slave節點並沒有安裝。看來是ssh登錄造成的打開句柄數出現了異常。只不過我到現在爲止都不知道爲何系統級別的設置會受到登錄方式的影響。
解決方法:由於只有句柄數配置未生效,於是在.bashrc中添加了ulimit -HSn 65535。重新安裝,終於成功啓動Host Monitor和Service Monitor服務。
8888,50070,8088等端口無法訪問
現象:master機器通過wget可以正確的得到頁面,但是外網卻無法獲取,而且網絡的設置是正確的。
查看端口占用發現這些端口全部綁定在內網IP上而不是0.0.0.0。
解決方法:去各自的配置文件中配置即可,選擇綁定至0.0.0.0端口,然後重啓即可。
oozie服務啓動失敗
通常是第二次嘗試安裝中才會遇到,報錯內容大概是數據庫已存在。
解決方法:刪除/var/lib/oozie/data文件夾即可。
HUE服務啓動失敗
報錯信息是找不到libxslt.so.1。
解決方法:yum install libxslt即可。