CDH5部署三部曲之三:問題總結

程式設計師欣宸發表於2022-11-29

歡迎訪問我的GitHub

https://github.com/zq2599/blog_demos

內容:所有原創文章分類彙總及配套原始碼,涉及Java、Docker、Kubernetes、DevOPS等;

系列文章連結

本文是《CDH5部署三部曲》的終篇,前面兩章完成了CDH5叢集的部署和啟動,本章將實戰中遇到的問題做個總結,如果碰巧您也遇到過這些問題,希望本文能給您一些參考;

  1. 《CDH5部署三部曲之一:準備工作》
  2. 《CDH5部署三部曲之二:部署和設定》
  3. 《CDH5部署三部曲之三:問題總結》

啟動叢集服務報錯

  1. 首次啟動叢集服務報錯,如下圖:
    在這裡插入圖片描述
  2. 上述錯誤一般是對應節點的/usr/java/default目錄下沒有JDK所致,假設已將JDK部署在/usr/lib/jvm/jdk1.8.0_191,那麼只需執行以下命令建立軟連結即可:
mkdir /usr/java &&ln -s /usr/lib/jvm/jdk1.8.0_191 /usr/java/default
  1. 點選頁面上的重試按鈕;

NFS Gateway啟動失敗

  1. 發現NFS Gateway服務有問題,檢查日誌:
    在這裡插入圖片描述
  2. 日誌如下,在worker1節點上,portmap和rpcbind這兩個服務不存在導致的:
No portmap or rpcbind service is running on this host. Please start portmap or rpcbind service before attempting to start the NFS Gateway role on this host.
  1. 於是安裝所需服務:
yum install -y nfs-utils rpcbind
  1. 啟動服務:
systemctl start rpcbind
  1. 再次啟動:
    在這裡插入圖片描述
  2. 等待HDFS服務重啟完成後,如下圖,可見NFS Gateway問題已經消失:
    在這裡插入圖片描述

HDFS副本不足的塊

  1. 問題如下圖綠框所示:
    在這裡插入圖片描述
  2. 目前只有一個datanode,可以增加一個,如下圖,進入HDFS的例項頁面,點選"新增角色例項":
    在這裡插入圖片描述
  3. 點選下圖紅框位置,增加一個DataNode:
    在這裡插入圖片描述
  4. 如下圖,確保worker1和worker2都選上:
    在這裡插入圖片描述
  5. 勾選後,點選紅框2中的按鈕,在下拉選單中點選“啟動”:
    在這裡插入圖片描述
  6. 現在有了兩個DataNode,所以副本數可以設定為2,如下圖紅框所示,按照順序找出引數進行設定,記得點選右下角的"儲存更改"按鈕:
    在這裡插入圖片描述
  7. 上述設定完成後,新寫入hdfs的檔案副本數為2,如果要將之前已經寫入的檔案的副本數也調整為2,請SSH登入worker1節點,執行以下命令切換到hdfs賬號:
su - hdfs
  1. 以hdfs賬號的身份執行以下命令,即可完成副本數設定:
hadoop fs -setrep -R 2 /
  1. 返回管理頁面,可見HDFS的狀態變成了健康:
    在這裡插入圖片描述

Hive報錯

  1. 如下圖紅框所示,Hive啟動失敗,日誌中提示Version information not found in metastore
    在這裡插入圖片描述
  2. 從上圖可見Hive服務在worker2上,於是SSH登入worker2,將/usr/share/java目錄下的mysql-connector-java.jar檔案複製到這個目錄下:/opt/cloudera/parcels/CDH-5.7.6-1.cdh5.7.6.p0.6/lib/hive/lib/
  3. 在Hive的配置頁面,搜尋"hive.metastore.schema.verification",如下圖,確保紅框3中的核取方塊取消勾選:
    在這裡插入圖片描述
  4. 修改配置datanucleus.autoCreateSchema,如下圖,確保紅框3中的核取方塊被選中:
    在這裡插入圖片描述
  5. 重啟完成後,Hive狀態為健康:
    在這裡插入圖片描述

spark-shell執行失敗

  1. 在worker1或者worker2上執行spark-shell命令進入spark控制檯時,會產生記憶體相關的錯誤,需要調整YARM相關的記憶體引數:
    在這裡插入圖片描述
  2. 在YARN的配置頁面,調整yarn.scheduler.maximum-allocation-mbyarn.nodemanager.resource.memory-mb這兩個引數的值,原有的值都是1G,現在都改成2G,如下圖:
    在這裡插入圖片描述
  3. 重啟YARN;
  4. 重啟Spark;
  5. 執行spark-shell命令之前,先執行命令su - hdfs切換到hdfs賬號;
  6. 這次終於成功進入spark-shell互動模式:
    在這裡插入圖片描述

Hue啟動失敗

  1. Hue啟動失敗如下圖:
    在這裡插入圖片描述
  2. 上述失敗是由於資料夾、檔案、httpd服務沒有準備好導致的,執行以下命令修復此問題:
mkdir /var/log/hue-httpd/
chown hue:hue /var/log/hue-httpd/
cd /var/log/hue-httpd/
touch error_log
chown hue:hue /var/log/hue-httpd/error_log

yum install -y httpd mod_ssl cyrus-sasl-plain  cyrus-sasl-devel  cyrus-sasl-gssapi
  1. 在網頁上重啟Hue服務,稍後可見服務已經正常:
    在這裡插入圖片描述

以上就是本次實戰過程中遇到的所有問題和解決方法,至此《CDH5部署三部曲》全部完成,如果您正在部署CDH,希望此係列文章能給您一些參考。

歡迎關注公眾號:程式設計師欣宸

微信搜尋「程式設計師欣宸」,我是欣宸,期待與您一同暢遊Java世界...
https://github.com/zq2599/blog_demos

相關文章