1.hadoop,spark,Flink的比较
MapReduce: 分布式的计算框架 -> Hive
问题:
shuffle:大文件的排序+读写磁盘+网络传输 => 比较慢
只有两种执行算子/API: MapTask(数据转换+过滤)和ReduceTask(数据聚合) ==> 定制化稍微有点差
不适合迭代式的计算
对于需要快速执行的产生结果的应用场景不适合
Spark:为了解决MapReduce执行慢、不适合迭代执行的问题
Flink:类似于spark的基于内存的计算框架
Hadoop的存活:因为使用的机器比较便宜,更适合批量计算。
2.学习方式
spark案例:examples文件夹中
spark源码:一定要回看spark源码,至少常用的必须知道,比如:RDD、SparkContext、DStream....
官网:http://spark.apache.org/
1.6.0帮助文档:http://spark.apache.org/docs/1.6.0/
官方博客:https://databricks.com/blog
3.官网
http://spark.apache.org/
4.spark特点(在官网的首页)
快
简单/入手快
公用性/普遍性
可以运行在任何地方:local、yarn、standalone(类似于yarn的一个资源管理框架,是spark的一个模块)、mesos(apache顶级项目,类似yarn的一个资源管理框架)
5.spark结构(生态圈)
BDAS: 伯克利数据分析栈
起源:加州大学伯克利分校的AMP实验室开源的一个计算框架
结构:
SparkCore: 核心部分
SparkSQL: Spark中交互式处理模块
SparkStreaming: Spark中流式数据处理的模块
SparkMLib:Spark机器学习相关模块 => Mahout
SparkGraphX: Spark中图形计算的模块
5.Hadoop与Spark的比较