1. 程式人生 > >Dr.Elephant 部署啟動詳細流程

Dr.Elephant 部署啟動詳細流程

------------------

最近嘗試在測試環境安裝部署了Dr.Elephant,花了不少時間,碰到一些問題。藉助於官方文件和LinedIn akshayrai大神的幫助,最終成功啟動Dr.Elephant。鑑於國內還沒有類似的文章詳細介紹Dr.Elephant的部署啟動的實踐,現將自己的一些經驗分享給大家,歡迎一起討論。

我的首次安裝是在分散式Hadoop叢集上完成的,沒有嘗試本地安裝Dr.Elephant,所以下面的安裝步驟和經驗也都是針對叢集部署啟動而言的。首先,我會對文件中要求的準備工作已經部署啟動過程進行一個彙總,然後再說關於遇到問題的解決辦法。

準備工作

編譯程式碼,生成部署需要的包

1. 本地安裝play框架,在環境變數PATH新增play命令路徑。play對Java版本要求,版本必須是Java 8以上。

2. 修改原始碼中編譯時用到的配置檔案,app-conf/compile.conf,將hadoop_version和spark_version修改成對應的版本。(如果不修改,是否會遇到問題,我沒有嘗試)。

3. 執行原始碼中編譯命令./compile.sh [./app-conf/compile.conf],請將中括號中路徑修改為相應檔案的路徑。編譯過程會下載很多需要用到的jar包和檔案,請耐心等待。我前兩次編譯都因為部分檔案下載失敗而導致編譯失敗。如果有問題,繼續嘗試編譯,已經下載過的檔案會自動跳過,就不用再次下載了。

4. 編譯完成後,會有SUCCESS的提示。這時可以看到在原始碼資料夾中,多了一個目錄dist,進入這個目錄可以看到,裡面有一個zip包dr-elephant*.zip,解壓縮這個zip包,生成一個資料夾dr-elephant*。記住,這個資料夾需要被分發到需要部署Dr.Elephant的機器上,下面會用到它。

5. 原始碼中的app-conf資料夾也會在後面分發到需要部署Dr.Elephant的機器上

編譯生成可執行檔案,在本地即可完成。是不需要在本地安裝Hadoop平臺的。

叢集環境要求

1. 確保Yarn資源管理器的正常執行以及歷史任務服務的正常執行,對於使用Yarn管理Hadoop平臺的叢集環境來說,一般這個條件都能滿足

2. 部署啟動一個MySQL服務,MySQL的版本必須是5.5+。對MySQL沒有特殊配置,分配好對這個DB有讀寫許可權的賬號即可。在MySQL中建立一個db名稱drelephant(這個名稱可以是任意的,後面可以看到,和elephant.conf配置檔案中db名稱一致即可)

3.將準備工作中提到的需要用到的app-conf資料夾也拷貝到需要部署的機器上某個目錄,假設這個目錄是/a/app-conf/。修改app-conf資料夾中的檔案elephant.conf檔案,新增

jvm_props=" -Devolutionplugin=enabled -DapplyEvolutions.default=true"

並修改這個檔案中的db_url、db_user、db_name和db_password配置引數,改為我們要使用的MySQL的連線引數。

4. 在這個機器上配置環境變數ELEPHANT_CONF_DIR,讓這個環境變數指向從原始碼中拷貝過來的app-conf資料夾。其實這步不是必須的,後面可以看到,如果不設定這個變數ELEPHANT_CONF_DIR,在啟動Dr.Elephant時,在命令列引數中第一個引數新增這個本地目錄也是可以的。

部署啟動

1. 在Hadoop叢集中選擇一臺機器作為Dr.Elephant的部署機器,在這個機器上選擇一個有許可權訪問HDFS的賬號,作為Dr.Elephant的啟動賬號

2. 將前面步驟中提到的編譯後生成的dist/dr-elephant*檔案拷貝到這個機器上

3. 進入bin目錄,執行./start.sh [/a/app-conf]啟動。如果沒有執行“叢集環境要求”中的第4步,這裡需要手動輸入/a/app-conf這個目錄作為命令列引數

4. 啟動後,驗證是否執行成功。如果命令列輸出提示“Dr.Elephant started”並不能證明它已經成功啟動。可以按照以下步驟逐步驗證:(1)ps aux | grep elephant,檢視是否有這個程序,如果有,那麼說明啟動成功;(2)檢視預設的log,dr.log,在安裝包的首層目錄下,如果日誌中沒有明顯的異常丟擲,說明啟動正常;(3)登入用到的MySQL,進入使用的db,檢視是否有表play_evolutions、yarn_app_heuristic_result、yarn_app_heuristic_result_details以及yarn_app_result,如果有這些表也說明啟動正常;(4)瀏覽器請求"host:8080"(這個host是部署Dr.Elephant的機器的host),看看是否能看到Dr.Elephant UI的首頁,如果可以,說明啟動成功

如果你的安裝過程出現什麼問題,請首先檢視我的這邊部落格Dr.Elephant常見問題來進行問題排查。

在我的另一篇部落格“Dr.Elephant啟動問題彙總”中,會總結一些Dr.Elephant在部署啟動過程中遇到的一些問題,如果有需要可以點選檢視。

歡迎大家一起交流Dr.Elephant相關的問題~

作者簡介:屈世超,專注於大資料。曾任職小米科技公司服務端後臺開發工程師,現擔任EverString資料平臺組高階開發工程師。