flume出现org.apache.hadoop.fs.UnsupportedFileSystemException: No FileSystem for scheme “hdfs“

文章讲述了在配置Flume时遇到的问题,包括设置JAVA_HOME环境变量,将Hadoop的配置文件core-site.xml和hdfs-site.xml放入指定目录,以及处理jar包依赖。同时提到了在flume-ng脚本中,`whichhadoop`命令用于检查Hadoop路径,但如果没有`which`命令,则需手动指定Hadoop路径或安装`which`命令。对于无法上网的情况,可以直接修改HADOOP_IN_PATH变量。

flume没有hadoop环境
排查:

  1. flume-env.sh加上export JAVA_HOME=/opt/module/jdk

  2. 把hadoop的配置文件core-site.xmlhdfs-site.xml放在$FLUME_HOME/conf

  3. jar包依赖问题
    /opt/module/hadoop/share/hadoop/hdfs/lib/hadoop-annotations-3.1.3.jar
    /opt/module/hadoop/share/hadoop/hdfs/lib/hadoop-auth-3.1.3.jar
    /opt/module/hadoop/share/hadoop/hdfs/lib/htrace-core4-4.1.0-incubating.jar
    /opt/module/hadoop/share/hadoop/common/lib/commons-io-2.5.jar
    /opt/module/hadoop/share/hadoop/common/lib/commons-configuration2-2.1.1.jar
    /opt/module/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar 替换成高版本的
    /opt/module/hadoop/share/hadoop/hdfs/hadoop-hdfs-3.1.3.jar
    /opt/module/hadoop/share/hadoop/common/hadoop-common-3.1.3.jar
    /opt/module/hadoop/share/hadoop/common/lib/woodstox-core-5.0.3.jar

  4. 没有which命令!!!!!!!
    在flume-ng脚本里,有一个which hadoop,用来查找有没有hadoop命令的
    which前面是自动添加hadoop环境变量的。
    但是如果没有which命令,他就永远也找不到hadoop在哪里!!!!!

flume
可以再命令行里面用which hadoop测试一下有没有which,如果是command not found就是没有which命令,下载一下就行了
yum install which -y

#Debian
apt-get install which
 
#Ubuntu
apt-get install which
 
#Alpine
apk add which
 
#Arch Linux
pacman -S which
 
#Kali Linux
apt-get install which
 
#CentOS
yum install which
 
#Fedora
dnf install which
 
#Raspbian
apt-get install which
 
#Docker
docker run cmd.cat/which which

没有网下载which的,把HADOOP_IN_PATH变成hadoop的目录就行hadoop

2025-10-24 21:24:46,662 (SinkRunner-PollingRunner-DefaultSinkProcessor) [ERROR - org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:459)] process failed java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V at org.apache.hadoop.conf.Configuration.set(Configuration.java:1357) at org.apache.hadoop.conf.Configuration.set(Configuration.java:1338) at org.apache.hadoop.conf.Configuration.setBoolean(Configuration.java:1679) at org.apache.flume.sink.hdfs.BucketWriter.open(BucketWriter.java:221) at org.apache.flume.sink.hdfs.BucketWriter.append(BucketWriter.java:572) at org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:412) at org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:67) at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:145) at java.lang.Thread.run(Thread.java:750) Exception in thread "SinkRunner-PollingRunner-DefaultSinkProcessor" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V at org.apache.hadoop.conf.Configuration.set(Configuration.java:1357) at org.apache.hadoop.conf.Configuration.set(Configuration.java:1338) at org.apache.hadoop.conf.Configuration.setBoolean(Configuration.java:1679) at org.apache.flume.sink.hdfs.BucketWriter.open(BucketWriter.java:221) at org.apache.flume.sink.hdfs.BucketWriter.append(BucketWriter.java:572) at org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:412) at org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:67) at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:145) at java.lang.Thread.run(Thread.java:750)2025-10-24 21:24:46,662 (SinkRunner-PollingRunner-DefaultSinkProcessor) [ERROR - org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:459)] process failed java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V at org.apache.hadoop.conf.Configuration.set(Configuration.java:1357) at org.apache.hadoop.conf.Configuration.set(Configuration.java:1338) at org.apache.hadoop.conf.Configuration.setBoolean(Configuration.java:1679) at org.apache.flume.sink.hdfs.BucketWriter.open(BucketWriter.java:221) at org.apache.flume.sink.hdfs.BucketWriter.append(BucketWriter.java:572) at org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:412) at org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:67) at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:145) at java.lang.Thread.run(Thread.java:750) Exception in thread "SinkRunner-PollingRunner-DefaultSinkProcessor" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V at org.apache.hadoop.conf.Configuration.set(Configuration.java:1357) at org.apache.hadoop.conf.Configuration.set(Configuration.java:1338) at org.apache.hadoop.conf.Configuration.setBoolean(Configuration.java:1679) at org.apache.flume.sink.hdfs.BucketWriter.open(BucketWriter.java:221) at org.apache.flume.sink.hdfs.BucketWriter.append(BucketWriter.java:572) at org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:412) at org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:67) at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:145) at java.lang.Thread.run(Thread.java:750)
最新发布
10-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厨 神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值