【发布时间】:2018-12-13 01:53:09
【问题描述】:
我正在尝试在 EMR 上使用自定义 spark 运行 spark 作业,并尝试在驱动程序额外类路径中使用自定义 jar,例如
spark.driver.extraClassPath /usr/lib/hadoop/lib/hadoop-lzo.jar:/usr/local/java/avro-1.8.2.jar:/usr/local/java/avro-mapred-1.8.2-hadoop2.jar
但不知何故,它仍然加载了我通过类路径详细选项找到的默认 avro jar(旧 1.7.4)
[Loaded org.apache.avro.generic.GenericContainer from file:/usr/lib/hadoop/lib/avro-1.7.4.jar]
我想了解加载类路径的顺序和优先级。为什么它仍然选择旧的通用 hadoop avro 1.7.4 而没有加载我想使用的那个。
有没有办法查看为 spark 提交运行加载的确切类路径顺序,任何 jvm 选项等都会有所帮助。
简单地说类路径的顺序(顺序,首先,我的custome jar vs spark jars vs hadoop jars)
【问题讨论】:
-
我通常对想要使用的 jar 进行遮蔽/遮蔽,并将其与 uber jar 中的依赖项一起打包。在此处阅读更多信息:softwareengineering.stackexchange.com/questions/297276/…
标签: java apache-spark hadoop2 amazon-emr