1. 程式人生 > >CDH5部署三部曲之三:問題總結

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

### 歡迎訪問我的GitHub [https://github.com/zq2599/blog_demos](https://github.com/zq2599/blog_demos) 內容:所有原創文章分類彙總及配套原始碼,涉及Java、Docker、Kubernetes、DevOPS等; ### 系列文章連結 本文是《CDH5部署三部曲》的終篇,前面兩章完成了CDH5叢集的部署和啟動,本章將實戰中遇到的問題做個總結,如果碰巧您也遇到過這些問題,希望本文能給您一些參考; 1. [《CDH5部署三部曲之一:準備工作》](https://blog.csdn.net/boling_cavalry/article/details/105340968) 2. [《CDH5部署三部曲之二:部署和設定》](https://blog.csdn.net/boling_cavalry/article/details/105341713) 3. [《CDH5部署三部曲之三:問題總結》](https://blog.csdn.net/boling_cavalry/article/details//105342156) ### 啟動叢集服務報錯 1. 首次啟動叢集服務報錯,如下圖: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071630278-884102401.png) 2. 上述錯誤一般是對應節點的/usr/java/default目錄下沒有JDK所致,假設已將JDK部署在/usr/lib/jvm/jdk1.8.0_191,那麼只需執行以下命令建立軟連結即可: ```shell mkdir /usr/java &&ln -s /usr/lib/jvm/jdk1.8.0_191 /usr/java/default ``` 3. 點選頁面上的重試按鈕; ### NFS Gateway啟動失敗 1. 發現NFS Gateway服務有問題,檢查日誌: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071630774-918442075.png) 2. 日誌如下,在worker1節點上,portmap和rpcbind這兩個服務不存在導致的: ```shell 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. ``` 3. 於是安裝所需服務: ```shell yum install -y nfs-utils rpcbind ``` 4. 啟動服務: ```shell systemctl start rpcbind ``` 5. 再次啟動: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071631512-671931147.png) 6. 等待HDFS服務重啟完成後,如下圖,可見NFS Gateway問題已經消失: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071631946-1362881005.png) ### HDFS副本不足的塊 1. 問題如下圖綠框所示: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071632375-1942520078.png) 2. 目前只有一個datanode,可以增加一個,如下圖,進入HDFS的例項頁面,點選"新增角色例項": ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071632949-883747471.png) 3. 點選下圖紅框位置,增加一個DataNode: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071633372-2119924930.png) 4. 如下圖,確保worker1和worker2都選上: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071633750-38845663.png) 5. 勾選後,點選紅框2中的按鈕,在下拉選單中點選“啟動”: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071634171-727758234.png) 6. 現在有了兩個DataNode,所以副本數可以設定為2,如下圖紅框所示,按照順序找出引數進行設定,記得點選右下角的"儲存更改"按鈕: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071634561-1435044651.png) 7. 上述設定完成後,新寫入hdfs的檔案副本數為2,如果要將之前已經寫入的檔案的副本數也調整為2,請SSH登入worker1節點,執行以下命令切換到hdfs賬號: ```shell su - hdfs ``` 8. 以hdfs賬號的身份執行以下命令,即可完成副本數設定: ```shell hadoop fs -setrep -R 2 / ``` 9. 返回管理頁面,可見HDFS的狀態變成了健康: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071634982-574456514.png) ### Hive報錯 1. 如下圖紅框所示,Hive啟動失敗,日誌中提示Version information not found in metastore ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071635407-545863972.png) 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中的複選框取消勾選: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071635765-531308734.png) 4. 修改配置datanucleus.autoCreateSchema,如下圖,確保紅框3中的複選框被選中: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071636056-2121271186.png) 5. 重啟完成後,Hive狀態為健康: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071636506-422401168.png) ### spark-shell執行失敗 1. 在worker1或者worker2上執行spark-shell命令進入spark控制檯時,會產生記憶體相關的錯誤,需要調整YARM相關的記憶體引數: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071637001-2016654202.png) 2. 在YARN的配置頁面,調整yarn.scheduler.maximum-allocation-mb和yarn.nodemanager.resource.memory-mb這兩個引數的值,原有的值都是1G,現在都改成2G,如下圖: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071637318-1963956935.png) 3. 重啟YARN; 4. 重啟Spark; 5. 執行spark-shell命令之前,先執行命令su - hdfs切換到hdfs賬號; 6. 這次終於成功進入spark-shell互動模式: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071637767-735483789.png) ### Hue啟動失敗 1. Hue啟動失敗如下圖: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071638202-53311740.png) 2. 上述失敗是由於資料夾、檔案、httpd服務沒有準備好導致的,執行以下命令修復此問題: ```shell 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 ``` 3. 在網頁上重啟Hue服務,稍後可見服務已經正常: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202010/485422-20201015071638535-1020460392.png) 以上就是本次實戰過程中遇到的所有問題和解決方法,至此《CDH5部署三部曲》全部完成,如果您正在部署CDH,希望此係列文章能給您一些參考。 ### 歡迎關注公眾號:程式設計師欣宸 > 微信搜尋「程式設計師欣宸」,我是欣宸,期待與您一同暢遊Java世界... [https://github.com/zq2599/blog_demos](https://github.com/zq2599/blo