06部署Spark程序到集群上运行

Posted xupccc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了06部署Spark程序到集群上运行相关的知识,希望对你有一定的参考价值。

06、部署Spark程序到集群上运行

6.1 修改程序代码

  1. 修改文件加载路径

    在spark集群上执行程序时,如果加载文件需要确保路径是所有节点能否访问到的路径,因此通常是hdfs路径地址。所以需要修改代码中文件加载路径为hdfs路径:

    ...
    //指定hdfs路径
    sc.textFile("hdfs://mycluster/user/centos/1.txt") 
    ...

    ?

  2. 修改master地址

    SparkConf中需要指定master地址,如果是集群上运行,也可以不指定,运行时可以通过命令行动态获取。

    //设置master地址或者注释掉该行
    conf.setMaster("spark://s101:7077")

6.2 导出jar包

  1. 进入项目结构窗口

    技术分享图片

  2. 定位artifacts部分中

    技术分享图片

  3. 导出的jar中删除依赖的第三方jar包

    技术分享图片

    技术分享图片

  4. 通过builds -> build artifacts菜单导出jar包

    技术分享图片

    技术分享图片

  5. 到对应的导出目录查看jar文件

    技术分享图片

  6. 查看jar包中类的内容

    $>jar -tf myspark.jar | more

    执行结果如下图所示:

    技术分享图片

6.3 提交job到Spark集群

使用spark-submit命令提交jar包到spark集群执行。

$>spark-submit --class com.oldboy.spark.java.WordCountJava --master spark://s101:7077 myspark.jar

执行结果如下图所示:

技术分享图片

以上是关于06部署Spark程序到集群上运行的主要内容,如果未能解决你的问题,请参考以下文章

java 怎么提交应用程序到spark standalone集群中去运行

无法将 Apache Spark 应用程序提交到容器化集群

导致资产预编译在heroku部署上失败的代码片段

Spark集群上运行jar程序,状态一直Accepted且不停止不报错

对于运行在 YARN 上的 spark 应用,哪种部署方式更好——客户端还是集群

Docker中提交任务到Spark集群