Spark学习之在集群中运行代码

代码提交到 Spark Standalone 集群中运行

Spark-submit 第二种常见的spark程序方式

spark-submit [options] <app jar> <app options>
  • app jar 程序 Jar 包
  • app options 程序 Main 方法传入的参数
  • options 提交应用的参数, 可以有如下选项
参数 解释
--master <url> 同 Spark shell 的 Master, 可以是spark, yarn, mesos, kubernetes等 URL
--deploy-mode <client or cluster> Driver 运行位置, 可选 Client 和 Cluster, 分别对应运行在本地和集群(Worker)中
--class <class full name> Jar 中的 Class, 程序入口
--jars <dependencies path> 依赖 Jar 包的位置
--driver-memory <memory size> Driver 程序运行所需要的内存, 默认 512M
--executor-memory <memory size> Executor 的内存大小, 默认 1G

编写代码

package com.xp.rdd

import org.apache.spark.{SparkConf,SparkContext}

/**
 * @author noor9
 * @date 2021-01-12-17:12
 */
object WordCount {

  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("word_count")
    val sc = new SparkContext(conf)
    val rdd1 = sc.textFile("hdfs://node01:8020/data/wordcount.txt")
    val rdd2 = rdd1.flatMap(item => item.split(" "))
    val rdd3 = rdd2.map(item => (item,1))
    val rdd4 = rdd3.reduceByKey((curr,agg)=>curr+agg)
    val result = rdd4.collect()
    result.foreach(item => println(item))
  }
}

在idea中使用maven打包,找到jar包


将jar包上传到虚拟机

开启spark

spark-submit 命令完成运行

​ 获取运行class的全路径

​ 输入命令 参考上面spark-sumit参数表格

原文地址:https://www.cnblogs.com/xp-thebest/p/14274280.html