spark 入门整理

时间:2023-03-09 04:03:38
spark 入门整理

1.第一个概念:RDD

RDD(Resilient DistributedDatasets) ,弹性分布式数据集,是分布式内存的一个抽象概念,RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,只能通过在其他RDD执行 确定的转换操作(如map、join和group by)而创建,然而这些限制使得实现容错的开销很低。

对开发者而言,RDD可以看作是Spark的一个对象,它本身运行于内存中,如读文件是一个RDD, 对文件计算是一个RDD,结果集也是一个RDD ,不同的分片、数据之间的依赖、key-value类型的map数据都可以看做RDD。

转换(Transformations)(如:map, filter, groupBy, join等),Transformations操作是Lazy的,也就是说从一个RDD转换生成另一个RDD的操作不是马上执行,Spark在遇到Transformations操作时只会记录需要这样的操作,并不会去执行,需要等到有Actions操作的时候才会真正启动计算过程进行计算。

 操作(Actions)(如:count, collect, save等),Actions操作会返回结果或把RDD数据写到存储系统中。Actions是触发Spark启动计算的动因。

actions不会创造RDD,transformation会创造RDD。

2.spark架构

http://www.cnblogs.com/gaoxing/p/5041806.html

(3的那篇有对应的详细讲解,概况的话:为什么有LRU这个东西呢?也就是虚拟内存,真实内存装不下,先换到外存里,用的时候再抽进来,因为内存的大小固定,所以把最没用的换出去。)

3.spark与分布式计算

https://0x0fff.com/spark-misconceptions/

  1. 运行流详解

http://www.cnblogs.com/shishanyuan/archive/2015/08/19/4721326.html

(这个在运行模式,就是standalone还是cluster那里写的很乱。我上学的时候学到的调度的几个常见模式,一个是用yarn,一个是用mesos,主要是资源分配调度的粒度不一样,mesos的粒度更小,然而并不知道实际会不会更好。)

5.中文文档参考

http://my.oschina.net/hanzhankang/blog/200275