栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spark(三)------spark pi任务提交

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spark(三)------spark pi任务提交

1.输出1到100的数字中x,y轴的和在单位圆中的点,并统计个数

object sparkPi {
  def main(args: Array[String]): Unit = {
    val conf: SparkConf = new SparkConf()
    conf.setAppName("sparkPi")
    conf.setMaster("local")
    val context: SparkContext = new SparkContext(conf)
    val value: RDD[Int] = context.parallelize(1 to 100)
    val value1: RDD[Int] = value.map(one => {
      var x = random() * 2 - 1
      var y = random() * 2 - 1
      if (x * x + y * y <= 1) 1 else 0
    })
    val count: Int = value1.reduce((v1, v2) => v1 + v2)
    println(count)
  }
}

2.基于standalone模式提交任务
(1) standalone-client提交任务方式
程序写完进行打包,上传到Master节点虚拟机上,打包之前需要clear把target清空然后把master删除,然后package
在虚拟机终端spark-3.0.0/bin,
./spark-submit --master spark://hadoop102:7077 --class 包名+类名 虚拟机中路径

./spark-submit --master spark://hadoop102:7077 --class sparkPi /opt/software/submit.jar

图解:
1. client模式提交任务后,会在客户端启动Driver进程。
2. Driver会向Master申请启动Application启动的资源。
3. Master收到请求之后会在对应的Worker节点上启动Executor
4. Executor启动之后,会注册给Driver端,Driver掌握一批计算资源。
5. Driver端将task发送到worker端执行。worker将task执行结果返回到Driver端。

(2)standalone-cluster 提交任务方式
./spark-submit --master spark://hadoop102:7077
–deploy-mode cluster
–类名+包名 jar包位置

3.spark基于yarn模式两种提交任务方式
(1)yarn-client提交任务方式
spark-3.0.0/bin下:
spark-submit–master yarn client --class 包名+类名 打包的程序绝对路径

执行流程:

  1. 客户端提交一个Application,在客户端启动一个Driver进程。
  2. 应用程序启动后会向RS(ResourceManager)发送请求,启动AM(ApplicationMaster)的资源。
  3. RS收到请求,随机选择一台NM(NodeManager)启动AM。这里的NM相当于Standalone中的Worker节点。
  4. AM启动后,会向RS请求一批container资源,用于启动Executor.
  5. RS会找到一批NM返回给AM,用于启动Executor。
  6. AM会向NM发送命令启动Executor。
  7. Executor启动后,会反向注册给Driver,Driver发送task到Executor,执行情况和结果返回给Driver端。

(2)yarn -cluster提交任务方式

spark-submit–master yarn client --cluster 包名+类名 打包的程序绝对路径

执行流程:

  1. 客户机提交Application应用程序,发送请求到RS(ResourceManager),请求启动AM(ApplicationMaster)。
  2. RS收到请求后随机在一台NM(NodeManager)上启动AM(相当于Driver端)。
  3. AM启动,AM发送请求到RS,请求一批container用于启动Executor。
  4. RS返回一批NM节点给AM。
  5. AM连接到NM,发送请求到NM启动Executor。
  6. Executor反向注册到AM所在的节点的Driver。Driver发送task到Executor。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445012.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号