http://shop.oreilly.com/
Spark快速大数据分析 Holden Karau 等 有Python java scala
hadoop生态系统 kevin sitto
hadoop:可以支持存储和大数据分析的独立平台
mapreduce原理:
MapReduce在需要迭代处理和数据共享的地方,并不是最优的;
Spark则尽可能地利用内存以减少从硬盘上写入或读取数据的数据总量。
不同于Pig和Hive,Spark并不是让MapReduce成为更容易使用的一种工具,它是包括工作执行引擎在内的MapReduce的完全替代品。
spark把以往的mapreduce、流式计算、机器学习算法等模型全部统一起来
Spark替代hadoop的MR计算,用Spark SQL来替代Hive,但存储依然使用Hadoop HDFS
三个核心理念:
1.RDD(Resilient Distributed Dataset) 弹性分布数据集介绍
RDD是Spark框架中的核心概念。可以将RDD视作数据库中的一张表。其中可以保存任何类型的数据。Spark将数据存储在不同分区上的RDD之中。RDD是不可变的。你可以用变换(Transformation)修改RDD,但是这个变换所返回的是一个全新的RDD,而原有的RDD仍然保持不变。
RDD支持两种类型的操作:
2.变换(Transformation): 变换的返回值是一个新的RDD集合,而不是单个值。调用一个变换方法,不会有任何求值计算,它只获取一个RDD作为参数,然后返回一个新的RDD。变换函数包括:map,filter,flatMap,groupByKey,reduceByKey,aggregateByKey,pipe和coalesce。
3.行动(Action): 行动操作计算并返回一个新的值。当在一个RDD对象上调用行动函数时,会在这一时刻计算全部的数据处理查询并返回结果值。行动操作包括:reduce,collect,count,first,take,countByKey以及foreach。
目录 Spark最佳实践 陈欢 林世飞
操作 循序渐进学Spark 小象学院 杨磊
详细介绍
- RDD
惰性求值
我们不应该把 RDD 看作存放着特定数据的数据集,而最好把每个 RDD 当作我们通过转化操作构建出来的、记录如何计算数据的指令列表。