【背景】在配置好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.*