flume启动报错 java.lang.NoClassDefFoundError: org/htrace/Trace

编程入门 行业动态 更新时间:2024-10-06 16:31:19

我在启动Flume对hdfs写入时报如下错误:

ERROR [SinkRunner-PollingRunner-DefaultSinkProcessor] (.apache.flume.sink.hdfs.HDFSEventSink.process:447)  - process failed
java.lang.NoClassDefFoundError: /htrace/Traceat .apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:214)at .sun.proxy.$Proxy12.create(Unknown Source)at .apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.create(ClientNamenodeProtocolTranslatorPB.java:295)at sun.reflect.NativeMethodAessorImpl.invoke0(Native Method)at .apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)at .apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)at .sun.proxy.$Proxy13.create(Unknown Source)at .apache.hadoop.hdfs.DFSOutputStream.newStreamForCreate(DFSOutputStream.java:1725)at .apache.hadoop.hdfs.DFSClient.create(DFSClient.java:1668)at .apache.hadoop.hdfs.DFSClient.create(DFSClient.java:1593)at .apache.hadoop.hdfs.DistributedFileSystem$6.doCall(DistributedFileSystem.java:397)at .apache.hadoop.hdfs.DistributedFileSystem$6.doCall(DistributedFileSystem.java:393)at .apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)at .apache.hadoop.hdfs.DistributedFileSystem.create(DistributedFileSystem.java:393)at .apache.hadoop.hdfs.DistributedFileSystem.create(DistributedFileSystem.java:337)at .apache.hadoop.fs.FileSystem.create(FileSystem.java:908)at .apache.hadoop.fs.FileSystem.create(FileSystem.java:889)at .apache.hadoop.fs.FileSystem.create(FileSystem.java:786)at .apache.hadoop.fs.FileSystem.create(FileSystem.java:775)at .apache.flume.sink.hdfs.HDFSDataStream.doOpen(HDFSDataStream.java:81)at .apache.flume.sink.hdfs.HDFSDataStream.open(HDFSDataStream.java:108)at .apache.flume.sink.hdfs.BucketWriter$1.call(BucketWriter.java:262)at .apache.flume.sink.hdfs.BucketWriter$1.call(BucketWriter.java:252)at .apache.flume.sink.hdfs.BucketWriter$9$1.run(BucketWriter.java:701)at .apache.flume.auth.SimpleAuthenticator.execute(SimpleAuthenticator.java:50)at .apache.flume.sink.hdfs.BucketWriter$9.call(BucketWriter.java:698)at java.util.concurrent.FutureTask.run(FutureTask.java:266)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: .htrace.Traceat java.net.URLClassLoader.findClass(URLClassLoader.java:381)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)... 33 more

该错误不但对于Flume,对于Hbase,Spark等需要对hdfs读写的都有可能报错.
首先需要检查lib包中是否包含如下文件.
mons-configuration-1.6.jar、
hadoop-auth-2.7.2.jar、
hadoop-mon-2.7.2.jar、
hadoop-hdfs-2.7.2.jar、
mons-io-2.4.jar、
htrace-core-3.1.0-incubating.jar
如果存在还报错可能为版本问题htrace-core-3.1.0-incubating.jar
CDH中的classpath中引入的是/opt/cloudera/parcels/CDH/jars/htrace-core-3.0.4.jar,而这个版本的时候,htrace还是.htrace,而3.1.0的时候已经贡献给Apache了,改叫.apache.htrace了。
所以需要下载htrace-core-3.0.4.jar
地址:mvnrepository./artifact/.htrace/htrace-core/3.0.4

更多推荐

报错,lang,java,flume,htrace

本文发布于:2023-05-28 00:47:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/308236.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:报错   lang   java   flume   htrace

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!