无法在HUE oozie中执行火花工作。例外:“datanucleus-api-jdo-3.2.1.jar不存在”

时间:2016-10-06 23:45:51

标签: hadoop apache-spark yarn oozie hue

我想知道的是火花如何/在哪里挑选所需的罐子。

文件:/mnt/md0/yarn/nm/usercache/kylin/appcache/application_1468506830246_161908/container_1468506830246_161908_01_000001/datanucleus-api-jdo-3.2.1.jar不存在。

<spark-opts>
  --num-executors 30 
  --executor-memory 18g 
  --executor-cores 15 
  --driver-memory 2g 
  --files hdfs:///jobs/kylin/hive-site.xml 
  --jars datanucleus-api-jdo-3.2.1.jar,datanucleus-rdbms-3.2.1.jar,datanucleus-core-3.2.2.jar 
  --conf spark.shuffle.manager=tungsten-sort 
  --conf spark.shuffle.consolidateFiles=true 
  --conf spark.yarn.executor.memoryOverhead=3072 
  --conf spark.shuffle.memoryFraction=0.7 
  --conf spark.storage.memoryFraction=0.05 
  --conf spark.spot.instances=30
</spark-opts>

1 个答案:

答案 0 :(得分:1)

我们需要提供罐子的绝对路径,否则会失败。

请查看spark文档中的以下详细信息,了解提供--jar。

的不同方法

使用spark-submit时,应用程序jar以及 - jars 选项中包含的任何jar将自动传输到群集。 -jars之后提供的URL必须用逗号分隔。该列表包含在驱动程序和执行程序类路径中。目录扩展不适用于--jars。

Spark使用以下URL方案来允许传播jar的不同策略:

file: - 绝对路径和文件:/ URI由驱动程序的HTTP文件服务器提供服务,每个执行程序都从驱动程序HTTP服务器提取文件。

hdfs:,http:,https:,ftp: - 这些按预期从URI中下拉文件和JAR

local: - 以local:/开头的URI应该作为每个工作节点上的本地文件存在。这意味着不会产生任何网络IO,并且适用于推送给每个工作者或通过NFS,GlusterFS等共享的大型文件/ JAR。

请注意,JAR和文件将复制到执行程序节点上的每个SparkContext的工作目录中。随着时间的推移,这会占用大量空间,需要进行清理。使用YARN,可以自动处理清理,使用Spark standalone,可以使用spark.worker.cleanup.appDataTtl属性配置自动清理。

用户还可以通过使用--packages提供以逗号分隔的maven坐标列表来包含任何其他依赖项。使用此命令时将处理所有传递依赖项。可以使用标志--repositories以逗号分隔的方式添加其他存储库(或SBT中的解析程序)。这些命令可以与pyspark,spark-shell和spark-submit一起使用,以包含Spark包。

对于Python,可以使用等效的--py-files选项将.egg,.zip和.py库分发给执行程序。

请查看link了解详情。