之前我的虛擬機用的都是ambari搭建的HDP,由于看到網上講的和朋友講的企業中用的一般是CDH,且CDH的穩定性和效率也會比較高,所以就在虛擬機上搭建了CDH,(只不過我搭建的不是集群,只是單機搭建)
具體搭建程序,我總結好了,可以私信我直接獲取 cdh搭建的有道云筆記,有空再寫上來,
以下是相關的一些注意事項和錯誤總結!
1.httpd無法進入,重啟也不行的解決方法
如果已經用啟動命令了但是無法進入網頁或者報錯的話,排除埠開放問題和防火墻問題之后,那么先用yum卸載httpd和mod_wsgi,
卸載命令:
yum remove httpd mod_wsgi
然后在重新安裝:
yum -y install httpd mod_wsgi
然后重啟服務:service httpd restart
2.關于http的一些事項
制作cm yum源的時候不要寫https,而是寫http!除非你本機配置好了https,包括后面安裝部署cdh的時候填寫也要填的是http,
[CM]
name=cm6
#下面一行要注意是http
baseurl=http://cdh/cm6/
gpgcheck=0
EOF
3.cm的server節點無法啟動
/usr/local/java/jdk1.8.0_211/是我的jdk的絕路路徑,
mkdir -p /usr/java
ln -s /usr/local/java/jdk1.8.0_211/ /usr/java/default
4.cm的agent節點無法啟動
(1)server和agent的id標識不一致導致
rm -rf /var/lib/cloudera-scm-agent/cm_guid
systemctl restart cloudera-scm-agent
(2) error: [Errno 111] Connection refused
ps -ef | grep supervisord
kill -9 該行程ID
5.centos修改配置時的重要事項
(1)環境變數問題
建議把python3、java、scala2.11的環境變數都配置在/etc/profile中,也就是作為全域變數,
這里可以順便去學習回顧一下關于linux環境變數的知識:
-
centos環境變數_Centos7:Linux環境變陣列態檔
-
CentOS中環境變數與組態檔的深入講解
(2)永久關閉THP
Centos6開始引入THP,Centos7時默認啟用,用來提升記憶體性能,但是對一些資料庫來說,要求關閉此功能,
centos系統重啟導致Transparent Hugepages(THP,頁面記憶體透明化)開啟,為提升hadoop性能和滿足組件邀請,hadoop環境上要求關閉Transparent Hugepages(THP,頁面記憶體透明化),但是作業系統重啟后會自動開啟Transparent Hugepages(THP,頁面記憶體透明化),
所以,需要永久關閉THP,或者去調整它!當然這里是直接關閉,
永久關閉的方法:
vim /etc/rc.d/rc.local
內容如下:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
然后賦予執行權限:
chmod 755 /etc/rc.d/rc.local
重啟之后,驗證是否成功:
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag
#都是always madvise [never]才可以
6.安裝部署cdh6之前的事項
(1) 拍攝快照
在安裝完cm之后,能夠進入web UI的登陸視窗后,先別著急往下做,先做一下server節點 (虛擬機/服務器) 的快照,【我這里是單臺機器,所以就只用拍攝一臺的快照,如果你搭建的是集群,當然也建議拍攝快照,畢竟從頭再來的勇氣雖然還在,但是既費時間、效率又低】
7.記憶體大小事項
如下圖,我給我這個虛擬機的記憶體是8G左右的記憶體都不夠,因為7G左右的記憶體已經產生了交換空間了,所以盡量給虛擬機分配高一點的記憶體!網上說至少16G左右吧,才能正常,具體的去看一下CDH官網,

8.安裝cdh6程序中hdfs進入安全模式(safe mode)的解決方法
我試過了,在root用戶下的hdfs的強制退出命令hdfs dfsadmin -safemode leave也是無法解除的,網上說要切換到hdfs的角色下在鏡像強制退出,試過了也不行,
原因的引起可能是:【這些是瞎猜的,可能有點偏】
- 寫入寫出的時候timeout了,
- SWAP交換空間導致的
- THP沒有關閉,影響了hdfs的安裝和測驗,
我這里是THP沒有成功關閉導致的,因為之前用的是命令操作關閉,而不是直接修改啟動檔案,所以重啟過后沒能達到永久關閉的目的,經過恢復快照的推演,也證實了這個想法,
解決方法是當然是永久關閉THP了,在上面有,
9.UI界面顯示的警告
如下圖,其實就是記憶體不足導致的!當然還有其它可以調整的,更當然的是,可以添加更多節點,我這里只有一個節點,所以提示我要添加更多主機,【注意,以下所有圖中,我都還沒啟動cdh】


值得注意的是警告并非錯誤!如果你電腦配置足夠強悍,這些警告是不會出現的,


10.UI界面部署cdh程序中的重要事項
(1) 進行角色分配的時候,一定不要留空!能填的都要填上,
(2) 進行資料庫設定的時候,User JDBC可以不填,默認就行,因為前面已經配置好了默認的,還有 Hive Metastore Server 一定要配置上主節點,
(3) 進行審核更改的時候默認就好,
(4) 關于hdfs的塊大小的設計策略:
從2.7.3版本開始block size的默認大小為128M,之前版本的默認值是64M.
首先,要弄明白:
- 檔案塊越大,分割數越少,尋址時間越短,但磁盤傳輸時間越長;
- 檔案塊越小,分割數越多,尋址時間越長,但磁盤傳輸時間越短;
- 尋址時間含義:HDFS中找到目標檔案block塊所花費的時間,
本質上來說,hdfs塊大小,會影響程式啟動的mapper數量,mapper數量啟動的太多,對程式不好,浪費了很多時間在啟動mapper上,
但是,塊大小并不是越大越好,因為塊太大而恰好萬一這個task失敗了,就要重啟一個task,把剛剛task的任務從頭開始再運行一遍,你細品,當你覺得就要完成這個task的時候突然失敗然后從頭來一次,效率低下,
這個沒有一個統一的標準,一般默認的128m就已經滿足要求了!當然如果是大資料系統的話,可以調高,
11.最后
我想知道如何找到shell的歷史屏顯資訊,但我找到的結果是這樣,所以上面的步驟很多是無法還原場景的,以后遇到問題一定先存盤問題下來再解決問題,方便總結和分享,
2021.05.01
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282590.html
標籤:其他
上一篇:如何使用Hubilder X將vue網頁前端專案轉成手機app
下一篇:Hive部署及簡單測驗
