• SparkStreaming运行出现 java.lang.NoClassDefFoundError: org/apache/htrace/Trace 错误


    1、简介

      最近在摸索利用sparkstreaming从kafka中准实时的读取数据,并将在读取的过程中,可以做一个简单的分析,最后将分析结果写入hbase中。

    2、出现的问题

    (1)将从kafka中读取数据的程序打包到服务器上运行,发现需要用kafka相关的包,因此采用assembly的方法打包即可。

    (2)运行 spark-submit  --class "com.yiban.datacenter.MyDataCollection.KafkaToHbase" --master local MyDataCollection-0.0.1-SNAPSHOT-jar-with-dependencies.jar出现如下错误:

     java.lang.NoClassDefFoundError: org/apache/htrace/Trace   这个错误很明显是由于无法加载对应的类,也就是没有添加相应的jar包。

    分析原因:这个对应jar是一个htrace-core-3.1.0-incubating.jar 的jar包。本以为只需要在pom文件中添加对应的依赖项即可。但是我尝试的结果还是报同样的错误。

    解决的方法:

      既然还是报同样的错误,于是就执行在执行命令的时候,通过命令行参数的形式指定对应的jar包的路径即可。最后运行的命令如下所示:

     spark-submit   --class "com.yiban.datacenter.MyDataCollection.KafkaToHbase  --master local   --driver-class-path  /opt/cloudera/parcels/CDH-5.4.4-1.cdh5.4.4.p0.4/jars/htrace-core-3.1.0-incubating.jar  --conf  spark.executor.extraClassPath=/opt/cloudera/parcels/CDH-5.4.4-1.cdh5.4.4.p0.4/jars/htrace-core-3.1.0-incubating.jar    MyDataCollection-0.0.1-SNAPSHOT-jar-with-dependencies.jar

    同样也可以在yarn-cluster模式下运行:

     spark-submit   --class "com.yiban.datacenter.MyDataCollection.KafkaToHbase  --master  yarn-cluster  --driver-class-path  /opt/cloudera/parcels/CDH-5.4.4-1.cdh5.4.4.p0.4/jars/htrace-core-3.1.0-incubating.jar  --conf  spark.executor.extraClassPath=/opt/cloudera/parcels/CDH-5.4.4-1.cdh5.4.4.p0.4/jars/htrace-core-3.1.0-incubating.jar    MyDataCollection-0.0.1-SNAPSHOT-jar-with-dependencies.jar

  • 相关阅读:
    有道翻译js解密(1)
    Python面试题之Python正则表达式re模块
    go语言从例子开始之Example4.常量
    go语言从例子开始之Example3.变量
    go语言从例子开始之Example2.类型
    go语言从例子开始之Example1.helloworld
    python模块打补丁
    gevent协程之猴子补丁带来的坑
    charles抓包小程序
    httptesting HTTP(s)接口自动化测试框架
  • 原文地址:https://www.cnblogs.com/ljy2013/p/5170802.html
Copyright © 2020-2023  润新知