环境:linux centos7
dolphinscheduler集群安装,正确配置完/env/install_env.sh、/env/dolphinscheduler_env.sh脚本后,执行安装脚本报错。排错期间排查了sudo、mkdir、bash命令是否已安装等问题。怀疑是环境问题,尝试将整个解压包拷贝至其他相同版本系统的机器上,发现可正常安装启动。
后经公司运维提醒,打印脚本执行环境。共打印三次,找到问题所在。
第一次打印:依然报printenv:command not found等错误(代码片段:第七行为修改内容)
1 workDir=`dirname $0` 2 workDir=`cd ${workDir};pwd` 3 baseDir=`cd ${workDir}/..;pwd` 4 5 source ${workDir}/env/install_env.sh 6 source ${workDir}/env/dolphinscheduler_env.sh 7 printenv 8 echo "1.create directory"
第二次打印:可正常打印环境信息,显示一切正常,由此可以锁定第一行至第八行之间肯定代码肯定有问题,source命令嫌疑最大。(代码片段:第一行为修改内容)
1 printenv 2 workDir=`dirname $0` 3 workDir=`cd ${workDir};pwd` 4 baseDir=`cd ${workDir}/..;pwd` 5 6 source ${workDir}/env/install_env.sh 7 source ${workDir}/env/dolphinscheduler_env.sh 8 9 echo "1.create directory"
第三次打印和第二次打印结果一致。由此可判断source命令导致了环境变量无法读取。(代码片段:第四行为修改内容)
1 workDir=`dirname $0` 2 workDir=`cd ${workDir};pwd` 3 baseDir=`cd ${workDir}/..;pwd` 4 printenv 5 source ${workDir}/env/install_env.sh 6 source ${workDir}/env/dolphinscheduler_env.sh 7 8 echo "1.create directory"
解决办法:既然无法读取到环境,那么就重新声明一下。添加打印出来的PATH环境信息。(代码片段:第七行为修改内容)
1 workDir=`dirname $0` 2 workDir=`cd ${workDir};pwd` 3 baseDir=`cd ${workDir}/..;pwd` 4 5 source ${workDir}/env/install_env.sh 6 source ${workDir}/env/dolphinscheduler_env.sh 7 export PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/java/jdk1.8.0_141-cloudera/bin 8 echo "1.create directory"
至此可正常安装,后续如有无法启动等问题,看日志。