flume-ng启动报错: java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration

flume-ng启动时报错

java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration

flume-ng 启动后错误如下:

2022-07-11 05:48:23,874 (conf-file-poller-0) [ERROR - org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:150)] Failed to start agent because dependencies were not found in classpath. Error follows.
java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration
        at org.apache.flume.sink.hdfs.HDFSEventSink.getCodec(HDFSEventSink.java:323)
        at org.apache.flume.sink.hdfs.HDFSEventSink.configure(HDFSEventSink.java:248)
        at org.apache.flume.conf.Configurables.configure(Configurables.java:41)
        at org.apache.flume.node.AbstractConfigurationProvider.loadSinks(AbstractConfigurationProvider.java:453)
        at org.apache.flume.node.AbstractConfigurationProvider.getConfiguration(AbstractConfigurationProvider.java:106)
        at org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:145)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.conf.Configuration
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 13 more

flume配置

flume数据ETL配置文件:

#为各组件命名
a1.sources = r1
a1.channels = c1
a1.sinks = k1

## source1
a1.sources.r1.type = org.apache.flume.source.kafka.KafkaSource
a1.sources.r1.batchSize = 5000
a1.sources.r1.batchDurationMillis = 2000
a1.sources.r1.kafka.bootstrap.servers = dn3:9092,dn4:9092,dn5:9092
a1.sources.r1.kafka.topics=topic_log
a1.sources.r1.interceptors = i1
a1.sources.r1.interceptors.i1.type=com.david.flume.interceptor.TimeStampInterceptor$Builder

## channel1
a1.channels.c1.type = file
a1.channels.c1.checkpointDir = /opt/module/flume/checkpoint/behavior1
a1.channels.c1.dataDirs = /opt/module/flume/data/behavior1/
a1.channels.c1.maxFileSize = 2146435071
a1.channels.c1.capacity = 1000000
a1.channels.c1.keep-alive = 6

## sink1
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = /origin_data/gmall/log/topic_log/%Y-%m-%d
a1.sinks.k1.hdfs.filePrefix = log-
a1.sinks.k1.hdfs.round = false

a1.sinks.k1.hdfs.rollInterval = 10
a1.sinks.k1.hdfs.rollSize = 134217728
a1.sinks.k1.hdfs.rollCount = 0

## 控制输出文件是原生文件
a1.sinks.k1.hdfs.fileType = CompressedStream
a1.sinks.k1.hdfs.codeC = gzip

## 拼装
a1.sources.r1.channels = c1
a1.sinks.k1.channel= c1

原因分析

启动flume的serve上没有安装hadoop, 没有配置hadoop的环境变量.
导致flume启动时无法查找到所需的hadoop依赖.

解决方案

1、下载hadoop 并 配置hadoop环境变量

①. hadoop环境变量配置

export HADOOP_HOME=/opt/module/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

②. hadoop-env.sh中显示指定$JAVA_HOME
export JAVA_HOME=${SETUP_LOCATION_OF_JAVA}

注意:
不作为hadoop集群中的一个节点启动, 而只是配置hadoop环境变量的话, 启动后,
a1.sinks.k1.hdfs.path 中指定的hdfs位置, 将会以Linux本地文件代替, 如下: /origin_data/gmall/log/topic_log/%Y-%m-%d

2. 在有hadoop节点的服务器上安装flume程序(推荐)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用中的异常信息表明,在启动Spring Boot应用程序时出现了java.lang.NoClassDefFoundError: org/apache/catalina/Context错误。这个错误通常表示应用程序无法找到org/apache/catalina/Context类。该类是Apache Tomcat服务器的一部分,它提供了与Web应用程序的上下文相关的功能。因此,它的缺失可能导致Spring Boot应用程序无法正确启动。 引用和提供了一些可能导致此错误的原因。一种可能性是由于缺少正确的jar包或依赖项。在引用中,jar包被清空了,可能是由于maven的规则导致的。而引用中的pom文件中指定了本地引用的jar包路径。这些问题可能导致应用程序无法加载所需的类。 要解决这个问题,你可以尝试以下步骤: 1. 检查你的项目依赖项和构建配置是否正确。确保所有的jar包和依赖项都正确引入并存在于应用程序的类路径中。 2. 如果你使用maven进行构建,可以尝试清理和重新构建项目。这将确保所有的依赖项被正确下载和配置。 3. 确保你的应用程序的类路径中包含了Apache Tomcat相关的jar包。你可以检查你的构建配置文件(如pom.xml)中是否有相关依赖项,并且这些依赖项是否正确下载和配置。 4. 如果你使用的是本地引用的jar包,确保路径和配置正确无误,并检查jar包是否存在于指定的位置。 记住,这只是一些可能的解决方案之一。具体的解决方法可能因为你的项目配置和环境而有所不同。如果这些方法都没有解决问题,你可能需要进一步调查和排除其他可能的原因。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SpringMVC4.3.6配置json所需要的jar包](https://download.csdn.net/download/renxingwu2008/9765096)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [IDEA启动tomcat报错java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext、...](https://blog.csdn.net/wuxun1997/article/details/115525915)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值