我有一个包含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
)
Run Code Online (Sandbox Code Playgroud)
在我的IDE中运行它.我的问题:有没有办法更容易将此jar移动到群集?
maa*_*asg 24
在Spark中,创建SparkContext的程序称为"驱动程序".将作业的jar文件提供给驱动程序的本地文件系统就足够了,以便将其提取并将其发送给主/工作人员.
具体来说,您的配置将如下所示:
//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)
Run Code Online (Sandbox Code Playgroud)
在引擎盖下,驱动程序将启动一个服务器,工作人员将从驱动程序下载jar文件.因此,工作人员可以通过网络访问驱动程序,这一点很重要(通常也是一个问题).这通常可以通过在可从工作人员访问/路由的网络中的驱动程序上设置'spark.local.ip'来确保.
| 归档时间: |
|
| 查看次数: |
11438 次 |
| 最近记录: |