Spark

Spark主要有两种模式:
1. Spark Standalone - 单独模式。
2. Spark on Yarn - 运行在Yarn上,可以与其他计算框架共享资源
1) Yarn Client
Driver在任务提交机上运行
bash spark-shell 启动spark-core(scala)的交互模式。数据Yarn-Client模式
2) Yarn Cluster
两者区别: Client模式driver跑在提交的机器上,Cluster模式dirver跑在Application Master上

Driver (就是Application Master):
1) 创建SparkContext
2) 编译出DAG图
3) 划分Stage, 生成tasks
4) 根据tasks要求向ResourceManager申请自愿
5) 提交并监视任务状态

Executor:
真正执行task的单元

Spark的执行单位是Executor,跑在Yarn的Container中

每个Spark Application都有一个SparkContext
每个Applicaton可以有多个job(进程),每个job可以有多个stage,每个stage里执行一个taskset(处理逻辑是一样的,没有shuffle)
Hadoop的map reduce是进程,Spark是线程。Spark的job(进程)只有在整个Application结束后才会释放掉

Hadoop Map Reduce vs Spark
1. Spark基于线程,启动快,Hadoop Map Reduce基于进程,启动慢
2. Spark中间结果可以缓存在内存中,Hadoop Map Reduce要缓存在磁盘上
3. Spark有很多算子,MR只有Map和Reduce两个原语
缺点: 所有资源要等到整个Application结束后才释放

executor装在在container里,默认1G,可以用yarn.scheduler.minimum-allocation-mb定义container内存
executor是个线程池,由Driver(Application Master)向Resource Mangaer申请而来,executor启动后,Driver会为其分配task。 executor内存 : executor-memory
executor生命周期和application一样

(SparkContex.Conf)
val conf = new SparkConf().setAppName(“Interview”)
conf.set(“yarn.scheduler.minimum-allocation-mb”, “2048”)
val sc = new SparkContext(conf)

例如
–num-executors 4 \
–executor-memory ‘1024m’ \
–executor-cores 1 \
–class spark.example.testRDD_groupby /usr/local/src/spark_workstation/spark_wordcount/target/scala-2.11/wordcount_2.11-1.6.3.jar \
hdfs://master:9000/data/orders.csv \
hdfs://master:9000/output

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值