Dr-elephant安裝說明文檔
1. 前言
“大象醫(yī)生”是LinkedIn推出的一款Hadoop和Spark性能調(diào)節(jié)工具彼城,它能夠自動收集Hadoop平臺所有的度量標(biāo)準(zhǔn)聘裁,并對收集的數(shù)據(jù)進行分析此再,并將分析結(jié)果以一種簡單且易于理解的形式展示出來。這款工具將更好的幫助用戶理解蚜印、分析并提高他們的工作效率循捺。其中主要核心的東西是它定義了一系列的啟發(fā)式算法(Heuristics)稼锅,這些算法提供了對Hadoop/Spark任務(wù)進行性能分析的功能,這些啟發(fā)式算法都是基于一定的Hadoop/Spark任務(wù)調(diào)優(yōu)規(guī)則而設(shè)計的僚纷,而且這些啟發(fā)式算法被設(shè)計成插件式的矩距、可配置的。用戶可以自定義這個規(guī)則或者配置新的參數(shù)來適應(yīng)自己公司的開發(fā)環(huán)境畔濒。
2. 安裝步驟
Linkedln為了讓更多的用戶使用這款產(chǎn)品時能更貼切的適用于自己公司的開發(fā)環(huán)境剩晴,他們只提供源碼,用戶必須自己根據(jù)Hadoop版本跟Spark版本編譯源碼生成安裝包侵状。
2.1 下載源碼赞弥,準(zhǔn)備編譯環(huán)境
$> git clone https://github.com/linkedin/dr-elephant.git
$> cd dr-elephant*
因為這款產(chǎn)品是用play框架搭建的,使用了scala跟java語言趣兄,所以需要準(zhǔn)備play的環(huán)境绽左。下載地址:https://downloads.typesafe.com/typesafe-activator/1.3.12/typesafe-activator-1.3.12.zip
$> wget https://downloads.typesafe.com/typesafe-activator/1.3.12/typesafe-activator-1.3.12.zip
$> unzip typesafe-activator-1.3.12.zip
#添加環(huán)境變量
$> export PLAY_HOME=/opt/soft/activator-dist-1.3.12
$> export PATH=${JAVA_HOME}/bin:${PLAY_HOME}/bin:$PATH
2.2 修改配置文件,編譯源碼
$> cd dr-elephant
$> vim compile.conf
#將Hadoop版本跟Spark版本改為跟生產(chǎn)一致
hadoop_version=2.6.0
spark_version=1.6.0
$> ./compile.sh(開始編譯)
2.3 編譯完成會在dist目錄下面生成安裝包艇潭。將安裝包copy到要部署的服務(wù)器上拼窥。(最好選擇跟jobhistoty一臺的服務(wù)器,免得后面出現(xiàn)拒絕連接的錯誤蹋凝。)
$> cd dist
$> scp dr-elephant-2.0.6.zip root@172.28.3.151:/opt/soft
$> cd /opt/soft
$> unzip dr-elephant-2.0.6.zip
$> cd dr-elephant-2.0.6
2.4 配置app-conf/elephant.conf鲁纠,conf/evolutions/default/1.sql等文件
elephant.conf(配置數(shù)據(jù)庫信息,這里要求只能是mysql的鳍寂,且版本必須在5.5以上改含,建議安裝mariadb 10.0,相關(guān)文檔http://www.reibang.com/p/61e9cbd1b675)
# Database configuration
db_url=master01
db_name=drelephant
db_user=root
db_password=root
1.sql(這里要修改幾個字段的索引長度迄汛。(因為暫時的mysql還不支持很長字符的索引))
create index yarn_app_result_i4 on yarn_app_result (flow_exec_id(100));
create index yarn_app_result_i5 on yarn_app_result (job_def_id(100));
create index yarn_app_result_i6 on yarn_app_result (flow_def_id(100));
#這里還需要配置一下Hadoop跟spark的環(huán)境
$> vim /etc/profile
export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop
export HADOOP_CONF_DIR=/opt/cloudera/parcels/CDH/lib/hadoop/etc/hadoop
export SPARK_HOME=/opt/cloudera/parcels/CDH/lib/spark
export SPARK_CONF_DIR=/opt/cloudera/parcels/CDH/lib/spark/conf
(如果在這里配置后捍壤,程序啟動報錯還是找不到配置文件,就將這幾個配置加到程序的啟動腳本bin/start.sh)鞍爱。
2.5 啟動服務(wù)鹃觉,查看日志
$> bin/start.sh
#這里值得注意的是程序啟動后會產(chǎn)生3個日志文件,一個dr.log(程序啟動過程中的日志)睹逃,一個logs/application.log(程序啟動過程中的結(jié)果)盗扇,最后一個最重要的是程序啟動后的各種運行日志,這個日志的路徑比較奇怪唯卖,在跟dr-elephant-2.0.6同級的目錄下會產(chǎn)生一個logs/elephant/dr_elephant.log(日志會每天生成一個)粱玲,這里面的內(nèi)容才是驗證程序具體的問題的地方。
2.6 登錄頁面拜轨,查看任務(wù)狀態(tài)
http://172.28.3.151:8083/(這里我修改了web的端口,配置在app-conf/elephant.conf中)
主頁顯示的是今天最緊集群跑的任務(wù)允青。
search頁面可以查看歷史任務(wù)的執(zhí)行情況橄碾。
具體的使用方法單獨出一個使用文檔卵沉,下面說一下安裝過程中的坑。
3. 編譯過程的錯誤整理
3.1 sbt模塊報錯
sbt.ResolveException: unresolved dependency: commons-codec#commons-codec;1.8: org.apache#apache;13!apache.pom(pom.original) origin location must be absolute: file:/Users/rvesse/.m2/repository/org/apache/apache/13/apache-13.pom
處理方式: 刪除~/.ivy2整個目錄法牲,重編譯即可史汗。
3.2 前端框架node安裝報錯。
首先該項目需要編譯web模塊故需要安裝node環(huán)境(http://www.reibang.com/p/bef810c33721)拒垃,另外安裝完之后停撞,可能出現(xiàn)bower install 安裝失敗,這個可以跳過悼瓮。
4. 使用過程中的問題整理
4.1 索引過長
Specified key was too long; max key length is 767 bytes [ERROR:1071, SQLSTATE:42000]”戈毒, “Database 'default' is in an inconsistent state!
解決方式:出現(xiàn)這個錯誤就是dr-elephant在建索引時,索引長度太大造成的横堡。按照2.4步驟配置就不會出現(xiàn)這類問題埋市。
4.2 Tez模塊報錯
[圖片上傳中...(tez1.png-5e31d9-1535539755179-0)]
這個是因為最新版的dr-elephant引入了tez計算模型,到那時我們生產(chǎn)測試集群都沒有使用命贴,導(dǎo)致連接拒絕道宅。
解決方式:修改 app-conf/FetcherConf.xml文件,注釋掉tez fetcher相關(guān)的配置
<!--
<fetcher>
<applicationtype>tez</applicationtype>
<classname>com.linkedin.drelephant.tez.fetchers.TezFetcher</classname>
</fetcher>
-->
4.3 能獲取mapreduce任務(wù)并分析胸蛛,但是spark任務(wù)fetch不了污茵。原因是dr-elephant采用的是分析spark history中任務(wù)日志的壓縮格式,而spark history 默認是不對日志進行壓縮的葬项,所以需要修改泞当。
解決方式:修改spark history配置文件,讓它支持壓縮玷室。在CM界面零蓉,spark-->配置-->Gateway-->高級-->spark-conf/spark-defaults.conf 在這個代碼框中加入:spark.eventLog.compress=true。然后重啟spark相關(guān)組件穷缤,讓設(shè)置生效敌蜂。