Spark运行模式

来源:互联网 发布:饥荒修改数据没用 编辑:程序博客网 时间:2024/05/15 09:39

我们先看一个完整的实例wordcount

import org.apache.spark._import SparkContext._object WordCount {    def main(args: Array[String]) {        if (args.length != 3 ){            println("usage is org.test.WordCount <master> <input> <output>")            return        }        val sparkConf = new SparkConf().setAppName("WordCount")        val sc = new SparkContext(sparkConf)        val rowRdd= sc.textFile(args(1))        val resultRdd = rowRdd.flatMap(line => line.split("\\s+"))        .map(word => (word, 1)).reduceByKey(_ + _)        resultRdd.saveAsTextFile(args(2))    }}

程序的核心执行流程就是最后三行代码,用图例展示如下:
程序执行流程
放大节点

以运行在YARN上为例,提交上面Spark程序的脚本如下:

spark-submit --masteryarn-cluster--class com.roger.examples.WordCount--driver-memory 2g //driver进程使用的内存大小--driver-cores 1 //driver程序运行需要的cpu内核数--executor-memory 3g //每个executor进程使用的内存大小--executor-cores 3--num-executors 3

local模式

本地模式是将Spark应用以多线程方式直接运行在本地,通常用于程序调试。其分类如下:
local:只启动一个executor
local[K]:启动K个executor
local[*]:启动跟cpu数目相同的executor

standalone模式

独立模式是将Spark应用独立运行在一个集群中。
独立模式

YARN分布式模式(yarn-client)

yarn-client

YARN分布式模式(yarn-cluster)

yarn-cluster

0 0