【Python】如何让DolphinSceduler里的python脚本如愿跑起来。
单位有台机器安装了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