單位有台機器安裝了DolphinSceduler(以下簡稱DS),需要用它做任務調度,對此其實我其實是抵觸的,linux里有crontab,springboot里有scheduler,還要這勞什子干什么?但任務就是任務.....。DS里面提供一堆子節點,我覺得python的最實用,但是Python版本是缺省安裝的2.73,這個是沒法裝上必要的DB訪問whl的,不能訪問DB的2.73程序必須拋棄,因此必須安裝上新的anaconda3.8.8版本python,這也是能弄到的最高版本。
首先我用root用戶登錄,切換到安裝DS的用戶名為dce上,開始安裝anaconda,安裝過程記錄在:https://www.cnblogs.com/pyhy/p/15898009.html
安裝完,我執行一個測試python程序,運行正常,我以為沒問題了,於是啟動節點里的python腳本,結果運行中止,日志里顯示 sudo:/usr/bin/python 找不到命令。
為什么控制台里的python可以運行但DS里不行呢?我在網上搜索一陣,結果發現有篇文章提到修改DS目錄下的conf/env文件,就是這篇 https://www.cnblogs.com/zzz01/p/15655196.html
里面說有個dolphinscheduler_env.sh文件,其中有如下字樣:
export HADOOP_HOME=/usr/hdp/3.1.4.0-315/hadoop/ export HADOOP_CONF_DIR=/usr/hdp/3.1.4.0-315/hadoop/etc/hadoop #export SPARK_HOME1=/opt/soft/spark1 export SPARK_HOME2=/usr/hdp/3.1.4.0-315/spark2 #export PYTHON_HOME=/opt/soft/python export JAVA_HOME=/usr/local/jdk1.8.0_112 export HIVE_HOME=/usr/hdp/3.1.4.0-315/hive #export FLINK_HOME= export DATAX_HOME=/u01/isi/application/bigsoft/datax
我一看,好家伙export都出來了,肯定是該這里無疑。我剛安裝的python可執行程序在 /home/dce/anaconda3/bin/python,用它替換掉上面一段應該就差不離了。
接下來我首先用命令 find / -name dolphin* 列出所有帶dolphin的目標,然后連猜帶試找到了DS目錄所在,再往下找dolphinscheduler_env.sh文件:
/home/dce/01-workhome/09-dev/dolphinesceduler/dolphinescheduler/conf/env/dolphinscheduler_env.sh
然后用VI將PYTHON_HOME一句改為改為 export PYTHON_HOME=/home/dce/anaconda3/bin/python。
修改完也沒用重啟什么的,直接就執行了節點里的腳本,然后腳本就正常運行了,和控制台里運行一樣。
現在往回看,安裝新版python后,就應該直接去改DC下conf/env目錄里的dolphinscheduler_env.sh文件,這是關鍵一步。
END