文档首页 > > 常见问题> Spark作业相关问题>

运行Spark作业报java.lang.AbstractMethodError

运行Spark作业报java.lang.AbstractMethodError

分享
更新时间:2021/03/22 GMT+08:00

Spark 2.3对内部接口Logging做了行为变更,如果用户代码里直接继承了该Logging,且编译时使用的是低版本的Spark,那么应用程序在Spark 2.3的环境中运行将会报java.lang.AbstractMethodError。

解决措施有如下两种方案:

  • 基于Spark 2.3重新编译应用
  • 使用sl4j+log4j来实现日志功能,而不是直接继承Spark内部接口Logging。具体如下:
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.16</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.16</version>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
    
    private val logger = LoggerFactory.getLogger(this.getClass)
    logger.info("print log with sl4j+log4j")
分享:

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区论坛频道来与我们联系探讨

智能客服提问云社区提问