我想知道的是火花如何/在哪里挑选所需的罐子。
文件:/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>
答案 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了解详情。