You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala Spark运行WordCount报Tracer$Builder类未找到错误如何解决

问题根因
  • 依赖的htrace组件groupId、版本完全不匹配:你引入的org.htrace:htrace-core:3.0.4是Apache接管htrace项目之前的旧版本,包路径为org.htrace.core,和报错缺失的org.apache.htrace.core.Tracer$Builder路径完全不符,无法匹配。
  • 引入的hbase依赖无效:你加的org.apache.hbase:hbase:2.4.5是pom类型的父模块,不会引入任何实际的业务依赖,除非你确实使用HBase,否则该依赖完全多余。
  • 依赖版本冲突:你同时引入了htrace-core 3.x和htrace-hbase 4.x,两个大版本不兼容,反而会导致类加载异常。
解决方案

方案1:替换正确的htrace依赖

首先删除你当前pom.xml中已添加的3个错误依赖,替换为匹配Hadoop版本的htrace核心包:

<!-- 适配Hadoop 2.8+/3.x版本所需的htrace核心包 -->
<dependency>
    <groupId>org.apache.htrace</groupId>
    <artifactId>htrace-core4</artifactId>
    <version>4.1.0-incubating</version>
    <!-- 若提交到已内置该依赖的Spark集群运行,放开下面的scope配置 -->
    <!-- <scope>provided</scope> -->
</dependency>

如果确实需要使用HBase,替换原有的pom类型hbase依赖为具体的功能模块,同时排除旧版本htrace传递依赖:

<dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase-client</artifactId>
    <version>2.4.5</version>
    <exclusions>
        <exclusion>
            <groupId>org.htrace</groupId>
            <artifactId>htrace-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>

方案2:临时规避(无需改依赖)

如果只是本地调试,不想调整依赖,可以在初始化FileSystem之前关闭Hadoop的tracing功能,跳过该类加载:

// 添加在你调用FileSystem.get之前
spark.sparkContext.hadoopConfiguration.set("hadoop.tracing.enabled", "false")
FileSystem.get(spark.sparkContext.hadoopConfiguration).delete(new Path(outputFile), true)

排查验证

调整后可执行以下命令检查依赖冲突:

mvn dependency:tree | grep htrace

确保输出中仅存在一个版本的org.apache.htrace:htrace-core4依赖即可。

内容的提问来源于stack exchange,提问作者CloudSparkie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:24:03