大数据笔记1



spark实现并行计算:把超大的数据集合分成N个分块的数据集,用M个执行器(M<N)执行数据,执行完成后再收集在一起。这个切分后的数据集叫RDD(弹性分布式数据集)。


spark是一种分布式并行处理计算框架,与Hadoop联合使用,增强Hadoop的性能,增加内存缓存、流数据处理、图形处理等高级的数据处理能力。


spark的中间结果保存在内存上,在迭代计算方面拥有更好的性能,而mapreduce的中间结果保存在HDFS上。


spark直到RDD第一次调用一个action时才真正调用RDD。


spark中可以调用persist(持久化)方法表明当前RDD在后面的操作中还会用到。spark默认将调用过的persist方法保存在内存中,若内存不足也会保存到硬盘上,也可以指定persist的参数,调用其它的持久化策略(如Tachyon)并通过标记进行persist。用户可以为每个RDD设定优先级来决定内存中的哪些数据应该被优先调入磁盘。


RDDs依赖关系:
     窄依赖:每个父RDD至多只能被一个子RDD分区使用,或多个父RDD对应一个子RDD,即oneToOneDependecies
     宽依赖:多个子RDD可以依赖一个父RDD的分区,即oneToManyDependecies
         注:map操作是一个窄依赖。join是宽依赖(除非父RDD被hash策略划分过)


Map函数:接收一个键值对(key-value pair),产生中间键值对,MapReduce框架将中间键值对中key值相同的值传递给reduce函数。
Reduce函数:接受一个键,以及相关的一组值,并合并,之后产生一组规模更小的值(一个或者零个)


Map将任务输出结果保存在本地磁盘而不是HDFS



猜你喜欢

转载自blog.csdn.net/sunny0121/article/details/78062997