Ambari 集成azkaban 導致問題處理

 

集成教程,參考  https://github.com/leoChaoGlut/ambari-azkaban-service

集成之後啓動

一、沒有問題,但是stop出現錯誤:錯誤沒有截圖

1、查看AzkabanExecutorServer啓動腳本 azkaban-executor-start.sh

在啓動AzkabanExecutorServer的時候,會吧PID寫入文件currentpid

2、查看AzkabanWebServer啓動腳本,azkaban-web-start.sh

在啓動AzkabanWebServer的時候,也會吧PID覆蓋寫入文件currentpid 中

3、錯誤描述

當順序殺掉進程的時候,

先執行azkaban-executor-shutdown.sh

中kill_process_with_retry "${pid}" "${pname}" "${maxattempt}"  【具體代碼在util.sh】

Kill 時殺死的PID是webserver,所以再執行檢查是否還含有AzkabanExecutorServer進程的時候一直先顯示1

檢查腳本

azkaban_executor.py

執行的命令:export AZ_CNT=`ps -ef |grep -v grep |grep azkaban-exec-server | wc -l` && `if [ $AZ_CNT -ne 0 ];then exit 0;else exit 3;fi `

命令ps -ef |grep -v grep |grep azkaban-exec-server | wc –l常返回1,不退出

4、修復步驟:

vim azkaban-web-start.sh  修改pid文件

點擊啓動【事先手動殺死azkaban兩個進程】

ll /usr/hdp/current/azkaban

此時有兩個文件保存pid不混合

當然在kill進程的腳本中也要修改

vim bin/azkaban-web-shutdown.sh 改爲對應文件

 

二、這時在ambari點擊stop

發現還是有錯誤,一直檢查不退出

 

1、還原stop時狀態,手動殺死進程,然後start

2、執行ps aux|grep azkaban-exec-server

兩個進程中加載了

azkaban-exec-server-0.1.0-SNAPSHOT.jar

azkaban-web-server-0.1.0-SNAPSHOT.jar

導致殺死一個後檢查狀態時還有一個包含azkaban-exec-server的進程,導致不退出

3、解決方法:

在啓動腳本

azkaban-executor-start.sh

azkaban-web-start.sh

執行的時候互加載lib下面所有jar

for file in $azkaban_dir/lib/*.jar;
do
    CLASSPATH=$CLASSPATH:$file
Done

1)修改azkaban-executor-start.sh

conf=$azkaban_dir/conf
filtr="web"
if [[ -z "$tmpdir" ]]; then
tmpdir=/tmp
fi

for file in $azkaban_dir/lib/*.jar;
do
  if [[ $file =~ $filtr ]];
  then
    echo ""
  else
    CLASSPATH=$CLASSPATH:$file
  fi
done

2)修改azkaban-web-start.sh

conf=$azkaban_dir/conf
filtr="exec"
if [[ -z "$tmpdir" ]]; then
tmpdir=/tmp
fi

for file in $azkaban_dir/lib/*.jar;
do
  if [[ $file =~ $filtr ]];
  then
    echo ""
  else
    CLASSPATH=$CLASSPATH:$file
  fi
done

在啓動是不加載另一個包就行了,在azkaban啓動後,點擊stop

問題解決

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章