spark知识点总结

**

1、Spark简介

**
 1)、Spark的历史:2012年发布初始版本0.6版本,已经有6年的历史了。
 2)、Spark的创始人:美国加州大学的伯克利分校的AMP实验室。
 3)、Spark比MR快的原因:
   ①Spark是粗粒度的资源调度,资源复用。
   ②Spark支持基于内存迭代,MR不支持。
   ③Spark支持DAG有向无环图 task pipleline。
   ④Spark可以根据不同场景选择不同shuffle,spark shuffle 比MR性能高(sortShuffle)
5)、spark的运行模式:local、standalone、yarn、mesos。
6)、开发Spark的语言:scala、java、python、R。(Scala和Java兼容性和效率都是一样的)

2、RDD(弹性分布式数据集)(重点)

1)、RDD五大特性:(重点)

     1. RDD是由一系列的Paratition组成的。(partition个数=split切片数 约等于 block数;Spark没有读文件的方法,依赖MR读文件的方法)
     2. RDD提供的每一个算子实际上是作用在每一个Paratition上的。
     3. RDD实际上是有一系列的依赖关系的,依赖于其他的RDD。(计算的容错性;体现了RDD的弹性;父RDD不一定知道子RDD是谁,子RDD一定知道父RDD是谁)
     4. 可选:分区器作用在内部计算逻辑的返回值是kv格式的RDD上。
     5. 可选:RDD会提供一系列的最佳计算位置。(计算找数据)

2)、算子

     1. taransformation类算子
        	map(一对一)、flatMap(一对多)、filter(一对N(0、1))、join、leftouterJoin、rightouterJoin、fullouterJoin、sortBy、sortByKey、gorupBy、groupByKey、reduceBy、reduceByKey、sample、union、mappatition、mappatitionwithindex、zip、zipWithIndex。
     2. action类算子
        count、collect(将task的计算结果拉回到Driver端)、foreach(不会回收所有task计算结果,原理:将用户传入的参数推送到各个节点上去执行,只能去计算节点找结果)、saveAsTextFile(path)、reduce、foreachPatition、take、first。

(查看计算结果的方式:WEBUI、去各个节点的Worker工作目录查看)
3. 控制类算子
cache(相当于MEMOORY_ONLY)、
persist(MEMORY_ONLY、DISK_ONLY、MEMORY_AND_DISK)
控制类算子注意点:
1)、控制类算子后不能紧跟action类算子
2)、缓存单元是partition
3)、懒执行、需要action类算子触发执行。(如果application中只有一个job,没必要使用控制类算子)

3、Spark在集群中大概运行流程

 1. Driver分发task到节点运行(计算找数据)。
 2. task执行结果拉回到Driver(有可能发生OOM)。
 Driver的作用:
     1)、分发任务到计算节点运行。
     2)、监控task(thread)的运行情况。
     3)、如果task失败,会重新发送(有限制)。
     4)、可以拉回结果到Driver进程。
 结论:Driver进程会和集群频繁通信。

4、提交Application的方式

1、Client
    提交方式:spark-submit --deploy-mode client --class jarPath args
    特点:Driver进程在客户端节点启动
    适用场景:测试环境
    大概运行流程:
        1)、在Client本地启动Driver进程。
        2)、Driver会向Master为当前Application申请资源。
        3)、Master接收到请求后,会在资源充足的节点上启动Executor进程。
        4)、Driver分发task到Executor执行。
2、Cluster
    提交方式:spark-submit --depl
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值