Spark产生的原因:
1、MapReduce具有很多的局限性,仅支持Map和Reduce两种操作,还有迭代效率比较低,不适合交互式的处理,不擅长流式处理。
2、现有的各种计算框架各自为战。
Spark就是在一个统一的框架下能够进行批处理,流式计算和交互式计算。
Spark的核心概念就是RDD(弹性分布式数据集)分布在集群中的对象集合,存储在磁盘或内存中。通过并行“转换”操作构造,失效后自动重构。
RDD的两种操作:1、转换:通过Scala集合或者Hadoop构造心得RDD或者通过已有的RDD产生新的RDD
2、行动:通过计算得到一个或一组值
工具:
1、Shark:以Spark为计算引擎的交互式查询引擎,重用了Hive的HQL解析、词法解析、语法解析等模块,与Hive完全兼容,但效率有高于Hive.
2、Graphx:基于Spark图计算的框架,提供图存储结构和图算法。
3、MLBase:基于Spark机器学习库,与Mahout类似,但是是基于Spark实现的,而不是MapRedece,能够实现聚类、分类、推荐等算法、但算法没有Mahout多。
4、Spark Streaming:基于Spark的流式计算框架,充分利用了Spark计算快的优点,吞吐率和效率都高于Storm
Spark最常见的两种应用场景:
1、离线场景:以时间为维度,几年的数据集等,去进行处理。
2、实时场景:实时传输的数据、硬件信号、图像数据并进行计算处理