MAPREDUCE服务 MRS-常见jar包冲突处理方式:原因分析

时间:2024-06-29 14:10:56

原因分析

以自定义UDF为例:

报错信息显示是找不到类。

  1. 首先需要确认的是这个类属于的jar包是否在jvm的classpath里面, spark自带的jar都在“spark客户端目录/jars/”。
  2. 确认是否存在多个jar包拥有这个类。
  3. 如果是其他依赖包,可能是没有使用--jars添加到任务里面。
  4. 如果是已经添加到任务里面,但是依旧没有取到,可能是因为配置文件的driver或者executor的classpath配置不正确,可以查看日志确认是否加载到环境。
  5. 另外可能报错是类初始化失败导致后面使用这个类的时候出现上述报错,需要确认是否在之前就有初始化失败或者其他报错的情况发生。

报错信息显示找不到方法。

  1. 确认这个方法对应的类所在的jar包是否加载到jvm的classpath里面,spark自带的类都在“spark客户端目录/jars/”。
  2. 确认是否有多个jar包包含这个类(尤其注意相同工具的不同版本)。
  3. 如果报错是Hadoop相关的包,有可能是因为使用的Hadoop版本不一致导致部分方法已经更改。
  4. 如果报错的是三方包里面的类,可能是因为Spark已经自带了相关的jar包,但是和代码中使用的版本不一致。
support.huaweicloud.com/devg3-mrs/mrs_07_200176.html