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。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值