gpt4 book ai didi

jar - 如何以独立模式更轻松地将我的 Jar 部署到 Spark 集群?

转载 作者:行者123 更新时间:2023-12-03 07:18:38 25 4
gpt4 key购买 nike

我有一个包含 3 台机器的小型集群,还有另一台用于开发和测试的机器。开发时,我将 SparkContext 设置为 local。当一切正常后,我想将我构建的 Jar 文件部署到每个节点。基本上我手动将这个 jar 移动到集群并复制到集群共享的 HDFS。然后我可以将代码更改为:

//standalone mode
val sc = new SparkContext(
"spark://mymaster:7077",
"Simple App",
"/opt/spark-0.9.1-bin-cdh4", //spark home
List("hdfs://namenode:8020/runnableJars/SimplyApp.jar") //jar location
)

在我的 IDE 中运行它。我的问题:有没有什么方法可以更轻松地将这个 jar 移动到集群?

最佳答案

在 Spark 中,创建 SparkContext 的程序称为“驱动程序”。只要驱动程序的本地文件系统可以使用包含您作业的 jar 文件就足够了,以便驱动程序能够拾取它并将其发送给 master/workers。

具体而言,您的配置将如下所示:

//favor using Spark Conf to configure your Spark Context
val conf = new SparkConf()
.setMaster("spark://mymaster:7077")
.setAppName("SimpleApp")
.set("spark.local.ip", "172.17.0.1")
.setJars(Array("/local/dir/SimplyApp.jar"))

val sc = new SparkContext(conf)

在底层,驱动程序将启动一个服务器,工作人员将从驱动程序下载 jar 文件。因此,工作人员能够通过网络访问驱动程序非常重要(而且通常是一个问题)。这通常可以通过在工作人员可访问/可路由的网络中的驱动程序上设置“spark.local.ip”来确保。

关于jar - 如何以独立模式更轻松地将我的 Jar 部署到 Spark 集群?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24052899/

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