spark说明手册阅读笔记

Use method to avoid creating intermediate variables:
即把程序写成下列形式:
Sc.textfile().map().reduceBykey()
这样就不需要储存如map()返回值这样的中间向量。

transformation属于惰性方法,对于一个使用了transformation的RDD,只有当接下来要用这个被transformation处理过的RDD来进行action时,才能真正调用这个transformation操作 

对于sparkRDD的三种聚合操作:
reduceByKey:仅仅只按照键值进行简单的加法
foldByKey:除了把相同键值的相加,还要加上一个初始值
aggregateByKey:把键值和对应数值聚合成一个集合 

对于传统的mapreduce,由于每一次迭代都相当于一个独立的mapreduce job,所以每次迭代的结果都要被写回到硬盘。而对于spark,由于有跨集群的缓存,因此读取速度更快。

Spark的大致工作流程:
当一个RDD上触发了一次action操作,则SparkContext上的runJob函数被调用。该函数会将对应的SC提交到scheduler上,首先经过DAG scheduler,把本次工作划分为一个有向无环图,然后task scheduler按照该有向无环图,把每一步的任务提交到集群上。对于task scheduler,具体步骤是这样的:当它接收到一系列任务时,把这些任务根据优先度分配给各个处理器。一个处理器执行任务的流程如下:首先确认JAR和文件依赖,然后为所有需要用到之前处理器的文件依赖建立一个本地缓存,只有当这些依赖改变的时候,才需要从对应的处理器下载。然后解码并执行任务代码。

如何管理各个处理器:
本地模式:只有一个处理器,并和驱动一起运行在相同的JVM上。适合于小型的项目。
Standalone模式:由一个master和多个worker组成,当一项作业输入后,master会让workers唤起各自的executor来处理这一项作业。
Mesos模式:一个广义上的集群资源管理器。以此能在不同程序之间共享资源。
YARN模式:hadoop的资源管理器。每个spark程序都有与之对应的yarn程序,每个处理器也有与之对应的yarn容器。
Mesos和Yarn集群管理器要优于standalone管理器。前两者会考虑到集群上运行的其他程序,而standalone只能使用集群分配的固定资源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值