🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### Hapoop生态体系 hdfs+zookeeper+mapreduce/hive+hbase+storm+mahout+其他 ### Spark体系 hdfs+zookeeper+spark+hbase+storm+mahout+其他 设计初衷: 设计一个统一的计算引擎解决所有的各种类型的计算 1. 离线批处理 2. 交互式查询 3. 流式处理 4. 图计算 5. 迭代计算/机器学习 6. SparkR 科学计算 数据分析 > Spark是一个统一的计算引擎能够完美融入Hadoop体验 ***优势***: 1. 减少磁盘IO 2. 增加并行度 3. 避免重复计算: 可以把数据强制能够持久化到内存中供其他task使用 4. 可选的shuffle和排序: HashShuffle SortShuffle 5. 灵活的内存管理策略 ![](https://box.kancloud.cn/7bc2294d9b0a8496ff9c08d4ef0d14ce_633x298.png) ### Spark编程 1. 获取编程入口 SparkContext SQLContext/HiveContext StreamingContext 2. 通关编程入口加载数据 RDD DataFrame DataSet 3. 对数据进行数据得到结果 各种算子(80个Operators) 4. 对结果进行处理 测试 上线 ### 应用场景 1. 复杂的批量处理 2. 基于历史数据的交互式处理 3. 基于实时数据流的数据处理 ### RDD > 分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变,可分区,内部元素可并行计算的集合.RDD具有数据流模型的特点,自动容错,位置感知性调度和可伸缩性.RDD允许用户在执行多个查询时显示地将工作集缓存在内存中,后续的查询能够重用数据集,这极大的提升了查询速度. 1. 数据集 Dataset 2. 分布式 Distributed 3. 弹性 Resilent ### SparkContext > 隐藏了网络通信,分布式通信,消息通信,存储能力,计算能力,缓存,测量系统,文件服务,web服务. > SparkContext内置了DAGSheduler负责创建Job,将RDD划分到不同的Stage,提交Stage等功能 > SparkContext内置的TaskScheduler负责资源的申请\任务的提交以及请求集群对任务的调度. > ``` Application->Job->Stage->Task ```