gpt4 book ai didi

hadoop - 在 EC2 : spark. driver.extraClassPath 和 spark.executor.extraClassPath 上设置 spark 类路径

转载 作者:可可西里 更新时间:2023-11-01 14:12:00 30 4
gpt4 key购买 nike

通过为 maven 依赖项提供 spark-classPath 来减少应用程序 jar 的大小:

我的集群有 3 个运行 hadoop 和 spark 的 ec2 实例。如果我使用 maven 依赖项构建 jar,它会变得太大(大约 100 MB),我想避免这种情况,因为 Jar 正在所有节点上进行复制,每次我运行作业。

为了避免我构建了一个 maven 包作为“maven 包”。为了解决依赖关系,我已经在每个节点上下载了所有 maven 依赖关系,然后只在 jar 路径下方提供:

我在“spark-defaults.conf”中的每个节点上添加了类路径作为

spark.driver.extraClassPath        /home/spark/.m2/repository/com/google/code/gson/gson/2.3.1/gson-2.3.1.jar:/home/spark/.m2/repository/com/datastax/cassandra/cassandra-driver-core/2.1.5/cassandra-driver-core-2.1.5.jar:/home/spark/.m2/repository/com/google/guava/guava/16.0.1/guava-16.0.1.jar:/home/spark/.m2/repository/com/google/collections/google-collections/1.0/google-collections-1.0.jar:/home/spark/.m2/repository/com/datastax/spark/spark-cassandra-connector-java_2.10/1.2.0-rc1/spark-cassandra-connector-java_2.10-1.2.0-rc1.jar:/home/spark/.m2/repository/com/datastax/spark/spark-cassandra-connector_2.10/1.2.0-rc1/spark-cassandra-connector_2.10-1.2.0-rc1.jar:/home/spark/.m2/repository/org/apache/cassandra/cassandra-thrift/2.1.3/cassandra-thrift-2.1.3.jar:/home/spark/.m2/repository/org/joda/joda-convert/1.2/joda-convert-1.2.jar

它在单个节点上本地工作。我仍然收到此错误。任何帮助将不胜感激。

最佳答案

终于,我能够解决问题了。我已经使用 "mvn package" 而不是 "mvn clean compile assembly:single " 创建了应用程序 jar,这样它在创建 jar 时就不会下载 maven 依赖项(但需要提供这些运行时的 jar/依赖项),这导致了小尺寸的 Jar(因为只有依赖项的引用)。

然后,我在每个节点的 spark-defaults.conf 中添加了以下两个参数:

spark.driver.extraClassPath     /home/spark/.m2/repository/com/datastax/cassandra/cassandra-driver-core/2.1.7/cassandra-driver-core-2.1.7.jar:/home/spark/.m2/repository/com/googlecode/json-simple/json-simple/1.1/json-simple-1.1.jar:/home/spark/.m2/repository/com/google/code/gson/gson/2.3.1/gson-2.3.1.jar:/home/spark/.m2/repository/com/google/guava/guava/16.0.1/guava-16.0.1.jar

spark.executor.extraClassPath /home/spark/.m2/repository/com/datastax/cassandra/cassandra-driver-core/2.1.7/cassandra-driver-core-2.1.7.jar:/home/spark/.m2/repository/com/googlecode/json-simple/json-simple/1.1/json-simple-1.1.jar:/home/spark/.m2/repository/com/google/code/gson/gson/2.3.1/gson-2.3.1.jar:/home/spark/.m2/repository/com/google/guava/guava/16.0.1/guava-16.0.1.jar

那么问题来了,应用程序 JAR 将如何获得 Maven 依赖项(必需的 jar 的)运行时?

为此,我提前使用 mvn clean compile assembly:single 在每个节点上下载了所有必需的依赖项。

关于hadoop - 在 EC2 : spark. driver.extraClassPath 和 spark.executor.extraClassPath 上设置 spark 类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31701273/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com