在hadoop版本1.2.1上安装flume

nbewdwxp  于 2021-06-02  发布在  Hadoop
关注(0)|答案(7)|浏览(526)

我构建了一个hadoop集群,其中一个是主从节点,另一个是从节点。现在,我想建立一个Flume来获取主计算机上集群的所有日志。但是,当我尝试从tarball安装flume时,我总是得到:error:could not find or load main class org.apache.flume.node.application so,please help me to find the answer,or the best way to install flume on my cluster.错误:找不到或加载主类org.apache.flume.node.application所以,请帮助我找到答案。非常感谢!

uyhoqukh

uyhoqukh1#

基本上是因为Flume。。
试试这个命令
$unset flume\u主页

dldeef67

dldeef672#

最好的调试方法是查看正在触发的java命令,并确保flume lib包含在 CLASSPATH ( -cp ),
就像下面的命令一样 /lib/* ,这就是 flume-ng-*.jar 是的,但这是不正确的,因为里面什么都没有 /lib ,在此行中 -cp '/staging001/Flume/server/conf://lib/*:/lib/*' . 一定是的 ${FLUME_HOME}/lib .

usr/lib/jvm/java-1.8.0-ibm-1.8.0.3.20-1jpp.1.el7_2.x86_64/jre/bin/java -Xms100m -Xmx500m $'-Dcom.sun.management.jmxremote\r' \
-Dflume.monitoring.type=http \
-Dflume.monitoring.port=34545 \
-cp '/staging001/Flume/server/conf://lib/*:/lib/*' \
-Djava.library.path= org.apache.flume.node.Application \
-f /staging001/Flume/server/conf/flume.conf -n client

所以,如果你看看 flume-ng 剧本,有 FLUME_CLASSPATH 设置,如果不存在,则设置基于 FLUME_HOME .


# prepend $FLUME_HOME/lib jars to the specified classpath (if any)

if [ -n "${FLUME_CLASSPATH}" ] ; then
  FLUME_CLASSPATH="${FLUME_HOME}/lib/*:$FLUME_CLASSPATH"
else
  FLUME_CLASSPATH="${FLUME_HOME}/lib/*"
fi

因此,请确保这些环境中的任何一个都已设置。与 FLUME_HOME 设置,(我正在使用 systemd )

Environment=FLUME_HOME=/staging001/Flume/server/

这是正在工作的javaexec。

/usr/lib/jvm/java-1.8.0-ibm-1.8.0.3.20-1jpp.1.el7_2.x86_64/jre/bin/java -Xms100m -Xmx500m \
$'-Dcom.sun.management.jmxremote\r' \
-Dflume.monitoring.type=http \
-Dflume.monitoring.port=34545 \
-cp '/staging001/Flume/server/conf:/staging001/Flume/server/lib/*:/lib/*' \
-Djava.library.path= org.apache.flume.node.Application \
-f /staging001/Flume/server/conf/flume.conf -n client
wydwbb8l

wydwbb8l3#

我以前也遇到过同样的问题,只是因为没有设置flume\u类路径

yh2wf1be

yh2wf1be4#

我知道问这个问题已经快一年了,但我看到了!
使用sudo bin/flume ng设置agnet时。。。。确保指定代理配置所在的文件。
--conf文件flume\u agent.conf->-f conf/flume\u agent.conf
这就成功了!

pw9qyyiw

pw9qyyiw5#

我想你是想在windows上运行cygwin的flume?如果是这样的话,我也有类似的问题。问题可能出在flume ng脚本上。
在bin/flume ng中找到以下行:

$EXEC java $JAVA_OPTS $FLUME_JAVA_OPTS "${arr_java_props[@]}" -cp "$FLUME_CLASSPATH" \
  -Djava.library.path=$FLUME_JAVA_LIBRARY_PATH "$FLUME_APPLICATION_CLASS" $*

换成这个

$EXEC java  $JAVA_OPTS $FLUME_JAVA_OPTS "${arr_java_props[@]}" -cp `cygpath -wp "$FLUME_CLASSPATH"` \
  -Djava.library.path=`cygpath -wp $FLUME_JAVA_LIBRARY_PATH` "$FLUME_APPLICATION_CLASS" $*

请注意,路径已替换为windows目录。java将无法从cygdrive路径中找到库路径,我们必须将其转换为正确的windows路径

kb5ga3dv

kb5ga3dv6#

可能您正在使用源文件,您首先应该编译源代码并生成二进制代码,然后在二进制文件目录中,您可以执行:bin/flume ng agent--conf./conf/-f conf/flume.conf-dflume.root.logger=debug,console-n agent1。所有这些信息您可以遵循:https://cwiki.apache.org/confluence/display/flume/getting+started

lyfkaqu1

lyfkaqu17#

看起来您在/bin文件夹flume-in/flume-ng-dist/target/apache-flume-1.5.0.1-bin/apache-flume-1.5.0.1-bin run flume-ng之后运行了flume-ng

相关问题