spark自定义包的加载先后问题

759次阅读
没有评论

背景

一个 spark 任务执行碰到的问题,看起来是snappy包出现的问题,我自己手动指定的是1.1.7版本,cdh 还是1.0.4版本

java.lang.UnsatisfiedLinkError: org.xerial.snappy.SnappyNative.maxCompressedLength(I)I

出现问题的原因google下之后说是包加载引用link时加载的版本不对导致的。

分析

  1. 默认情况下,spark优先使用/etc/spark/conf/classpath.txt里自带的依赖包;
  2. 若是找不到则查找用户通过 –jar 提交的依赖包(位于driver、executor的classpath里);
  3. 若是两个路径下都有相同名字的依赖包(版本不同),则抛出linked exception用户解决冲突;

解决:

--jars snappy-java-1.1.7.jar
--conf "spark.driver.extraClassPath=snappy-java-1.1.7.jar" \
--conf "spark.executor.extraClassPath=snappy-java-1.1.7.jar" \

admin
版权声明:本站原创文章,由 admin2021-12-22发表,共计494字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)