大資料叢集修機器名

dingyanming發表於2017-10-25

背景介紹:

近日公司兩套大資料叢集,出現了主機名重複,有些程式需要同時呼叫,而且程式呼叫必須用host檔案,這樣問題就來了,機器名衝突,兩套叢集,一套是實時流,一套是離線跑批叢集,評估其危險係數,只能改離線叢集了,廢話不所說,現在就開始說說怎麼裡邊的坑。

1 生產環境介紹:

jdk1.8

hadoop-2.5.1

hive-2.1.0

spark-1.6.2

其他的就不再介紹了,下邊介紹一下我的修改思路

0 停止叢集上的相關服務

1 叢集元件的修改

第一步 :將$HADOOP_HOME/etc檔案拷貝一份(用來備份,以防萬一失敗後,好恢復)下涉及到機器名的檔案修改機器名,我這裡有這幾個涉及到了(core-site.xml ,hdfs.site.xml,slave,yarn-site.xml),根據自己的實際情況修改,這裡hadoop相關的配置檔案就修改完了,修改完成後同步到其他節點上即可。

第二部:修改$HIVE_HOME/conf檔案,同樣先拷貝一份,我這裡涉及到和機器名相關的檔案有這些(hdfs-site.xml,hive-site.xml,core-site.xml),由於我的hive安裝在主節點上,不需要同步,修改完就可以了

第三部:將$SPARK_HOME/conf檔案下設計到機器名的配置檔案修改,由於我的是hive on spark,沒有其他用途,不做實時流,故只需要修改如下檔案(hive-site.xml,slave),然後同步到worker節點上去,到這裡元件的修改就完成了,

2 系統層次的修改

第一步 修改每臺機器的機器名,

第二部 將/etc/hosts對映檔案同步至其他節點

3 重啟叢集,發現hdfs正常,yarn也正常,然後執行hive命令,發現沒問題,進入hive互動式了,可以執行show databases ; use db; show tables; create table 都沒問題,但是select 之前的表就不可以了,應為查詢需要讀取mysql後設資料,後設資料記錄的資料資訊還是原來的機器名,所以查詢報錯也就很正常了,為了防止把後設資料修改壞,還備份了一下,涉及到節點名路徑的表有三個,如下

DBS :用來儲存資料庫的資訊

FUNC_RU:用來儲存udf自定義函式

SDS:用來儲存表路徑資訊

之後重啟 matestore 發現可以查詢了,但是不能刪除表,後來觀察了一下日誌,發現hive刪除表的時候不會去指定表去查詢,而是會去以SDS開頭的表查詢,由於之前做備份直接備份到本庫了,於是SDS_copy被掃描到了,然後刪除SDS_copy,發現才真正的ok了!


先分享到這裡,如有不對的,請多多指點!








相關文章