【背景】在配置好Flume後,在控制檯通過flume-ng agent --conf /* --conf-file /* --name agent Dflume.root.logger=INFO,console命令啓動Flume Agent沒有問題。但是將這個命令通過Oozie SSH Action運行的時候卻發現,Sink的目錄沒有結果文件,且ps -ef | grep flume也沒有Flume Agent的進程。
因爲將啓動Flume Agent的命令在控制檯打印的日誌寫入到了機器上的一個日誌文件裏了,查看這個日誌的時候,發現報錯:
Info: Sourcing environment configuration script /*/flume-env.sh
Warning: JAVA_HOME is not set!
Error: Unable to find java executable. Is it in your PATH?
找到bin/flume-ng文件,發現文件中有這樣一句話:
if [ -n "${FLUME_CONF_DIR}" -a -f "${FLUME_CONF_DIR}/flume-env.sh" ]; then
source "$FLUME_CONF_DIR/flume-env.sh"
fi
if [ -z "${JAVA_HOME}" ] ; then
echo "Warning: JAVA_HOME not set!"
JAVA_DEFAULT=`type -p java`
[ -n "$JAVA_DEFAULT" ] || error "Unable to find java executable. Is it in your PATH?" 1
JAVA_BIN=`dirname $JAVA_DEFAULT`
JAVA_HOME=`dirname $JAVA_BIN`
fi
找到/*/flume-env.sh文件,看到export JAVA_HOME=$JAVA_HOME
【解決】修改/*/flume-env.sh文件相關行爲export JAVA_HOME=/*/jdk1.*