Cloudera Manager的CDH4主機修改和服務重裝
前段時間安裝好了CDH4.1后,運行了一段時間,后來,把主機IP地址改掉了,但是發現服務都啟動不了,怎么辦呢?想到的解決方式如下:
- 把主機IP地址改回來
- CDH4.1上的IP地址改成和主機IP地址一樣。
如下圖,是我安裝的CDH4.1的主機情況。

第一種方法改回主機IP地址后,重啟Cloudera相關服務后,能正常運行。當我試第二種方法卻發現,沒地方改IP地址,因為,這台機器是Cloudera Manager的管理節點,無法直接修改IP地址。既然無法直接修改IP地址,那么只能重裝,把現有的主機刪掉,然后重新把所有服務裝到主機目前的IP地址上。
刪除主機,重新配置主機服務的過程如下:
一、刪除主機
點擊
,選擇刪除主機,卻出現“無法刪除以下 1 個主機因為它(們)具有角色實例或未完全被取消配置。”如下圖所示。

當前主機下有服務還在運行或者是當前主機配置了服務未完全刪除都會導致這個問題。
在這里只可能是當前主機配置的服務未刪除,因為,我們改過了IP,服務本身就沒辦法啟動。點擊頁面上的服務鏈接。查看下,我們以前安裝了什么服務,我配置的服務如下圖。

點擊操作,把服務一個個刪除完,刪完之后,再刪除主機,這樣就能成功地把主機刪除。
二、重新配置主機服務
點擊頁面上的主機,然后選添加主機,一步步繼續,到了為CDH群集安裝指定主機頁面(下圖),輸入我們改過的主機IP地址,然后搜索,之后直接繼續。

這個過程會很快的,因為我們的機器本來就是已經裝過了CDH4.1的,但是后來出現了個錯誤,如下圖所示。

這個問題看起來摸不着頭腦,蹦進我腦子里的第一個念頭是在控制台查看cloudera-scm-agent這個服務的狀態,查了網上的資料,卻發現關於Cloudera Manager的中文資料是如此的少,根本沒資料可以參考,很幸運,問題終於讓我解決了,下面是我解決這個問題的步驟。
- 查看cloudera-scm-agent服務的狀態。
|
顯示:cloudera-scm-agent服務已死,但pid文件還存在。因此,我猜想,是不是以前直接把IP地址改過之后,服務未正常關閉,導致pid文件還存在。因此把pid文件刪除。
| [root@client ~]# cd /var/run [root@client ~]# rm –f cloudera-scm-agent.pid |
我們配置CDH的時候,就默認把進程文件都放在/var/run這個目錄下,如果不知道這個pid文件在哪,用locate *.pid這樣模糊查詢,也能找到pid文件。可是刪了之后,CDH還是不能正常啟動。於是,只能去查看日志文件了。
- 查詢日志文件。
|
在日志中發現這樣一條錯誤信息:
ERROR ENGINE Error in HTTP server: shutting down Traceback (most recent call last)
這下問題找到了,是因為httpd服務有問題。
|
顯示:…,using 192.168.10.188 for ServerName,這就是問題的根源了,我現在主機的IP地址已經不是188了,CDH4.1本來配置服務用的188地址,因此肯定是某個地方這個IP地址沒有修改。最后發現原來問題出在/etc/hosts底下,因為CDH4.1會讀取/etc/hosts下的主機名和主機地址,以前配過的,卻沒改過來,導致http服務無法通信,cloudera-scm-agent無法啟動。修改了host文件后,CDH4.1正常啟動了。
【備注】:尊重原創者的勞動成果,分享和轉載請著名出處。謝謝。2012.12.6 草原戰狼
