zoukankan      html  css  js  c++  java
  • flume启动报错 java.lang.NoClassDefFoundError: org/htrace/Trace

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

    ERROR [SinkRunner-PollingRunner-DefaultSinkProcessor] (org.apache.flume.sink.hdfs.HDFSEventSink.process:447)  - process failed
    java.lang.NoClassDefFoundError: org/htrace/Trace
            at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:214)
            at com.sun.proxy.$Proxy12.create(Unknown Source)
            at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.create(ClientNamenodeProtocolTranslatorPB.java:295)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
            at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
            at com.sun.proxy.$Proxy13.create(Unknown Source)
            at org.apache.hadoop.hdfs.DFSOutputStream.newStreamForCreate(DFSOutputStream.java:1725)
            at org.apache.hadoop.hdfs.DFSClient.create(DFSClient.java:1668)
            at org.apache.hadoop.hdfs.DFSClient.create(DFSClient.java:1593)
            at org.apache.hadoop.hdfs.DistributedFileSystem$6.doCall(DistributedFileSystem.java:397)
            at org.apache.hadoop.hdfs.DistributedFileSystem$6.doCall(DistributedFileSystem.java:393)
            at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
            at org.apache.hadoop.hdfs.DistributedFileSystem.create(DistributedFileSystem.java:393)
            at org.apache.hadoop.hdfs.DistributedFileSystem.create(DistributedFileSystem.java:337)
            at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:908)
            at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:889)
            at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:786)
            at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:775)
            at org.apache.flume.sink.hdfs.HDFSDataStream.doOpen(HDFSDataStream.java:81)
            at org.apache.flume.sink.hdfs.HDFSDataStream.open(HDFSDataStream.java:108)
            at org.apache.flume.sink.hdfs.BucketWriter$1.call(BucketWriter.java:262)
            at org.apache.flume.sink.hdfs.BucketWriter$1.call(BucketWriter.java:252)
            at org.apache.flume.sink.hdfs.BucketWriter$9$1.run(BucketWriter.java:701)
            at org.apache.flume.auth.SimpleAuthenticator.execute(SimpleAuthenticator.java:50)
            at org.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: org.htrace.Trace
            at 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包中是否包含如下文件.
    commons-configuration-1.6.jar、
    hadoop-auth-2.7.2.jar、
    hadoop-common-2.7.2.jar、
    hadoop-hdfs-2.7.2.jar、
    commons-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还是org.htrace,而3.1.0的时候已经贡献给Apache了,改叫org.apache.htrace了。
    所以需要下载htrace-core-3.0.4.jar

  • 相关阅读:
    redis(lettuce)
    Dubbo与SSM整合(认证授权)步骤
    maven常用命令
    Dubbo(RPC框架)
    SpringCache
    mybatis(SSM整合)
    java设计模式-命令模式
    java设计模式-原型模式
    java设计模式-职责链模式
    java设计模式-建造者模式
  • 原文地址:https://www.cnblogs.com/shenzhenhuaya/p/sdfsdyt.html
Copyright © 2011-2022 走看看