hadoop - 无法在 HUE oozie 中运行 spark 作业。异常 : "datanucleus-api-jdo-3.2.1.jar does not exist"

标签 hadoop apache-spark hadoop-yarn oozie hue

我想知道的是 spark 如何/在哪里挑选所需的 jar 。

文件:/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>

最佳答案

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

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

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

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

file: - 绝对路径和 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获取更多信息。

关于hadoop - 无法在 HUE oozie 中运行 spark 作业。异常 : "datanucleus-api-jdo-3.2.1.jar does not exist",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39907293/

相关文章:

hadoop - Oozie相关问题

apache-spark - Spark Dataframe 丢失分区

hadoop - yarn Spark 作业调度较慢

hadoop - 在 Hadoop 上并行运行 MapReduce

scala - Apache Spark Scala - Hive 插入到抛出 "too large frame error"

java - 我如何知道映射器(或化简器)是否在Hadoop中并行运行?

python - 如何使用 Group_Map 使用 Python 3 修复 Spark.SQL 中的 "Cannot use null as map key!"错误

scala - 如何在 Spark 中并行化 RDD/DataFrame 创建?

hadoop - 在 YARN 上运行的 Spark - 真实示例的工作流程是什么样的?

hadoop - Hive:Mapreduce 文件丢失