如何在独立模式下更轻松地将Jar部署到Spark Cluster?

 Gefose-洋娃娃_357 发布于 2023-01-11 15:42

我有一个包含3台机器的小型集群,以及另一台用于开发和测试的机器.在开发时,我设置SparkContextlocal.当一切正常时,我想将我构建的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移动到群集?

1 个回答
  • 在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)
    

    在引擎盖下,驱动程序将启动一个服务器,工作人员将从驱动程序下载jar文件.因此,工作人员可以通过网络访问驱动程序,这一点很重要(通常也是一个问题).这通常可以通过在可从工作人员访问/路由的网络中的驱动程序上设置'spark.local.ip'来确保.

    2023-01-11 15:45 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有