1、大数据具有数据量大(Volume)、数据类型多样(Variety)、产生与处理速度快(Velocity)、价值高(Value)的 “4V” 特性。
2、Spark 是有 UC Berkeley 的 AMPLab 于2012年提出的基于内存,适合迭代计算的分布式处理框架。该框架允许用户将可重用的数据缓存(cache)到内存中,同时利用内存进行中间数据的聚合,极大缩短了数据处理的时间。这些大数据处理框架拥有共同的模型,即 MapReduce-like 模型,采用“分治-聚合”策略来对数据进行分布并行处理。
3、大数据处理框架的四层结构
大数据处理框架大致可以分为4层结构:用户层、分布式数据并行处理层、资源管理与任务调度层、物理执行层。在用户层中,用户需要准备数据、开发用户代码、配置参数。之后,分布式数据并行处理层根据用户代码和配置参数,将用户代码转换为逻辑处理流程(数据单元及数据依赖关系),然后将逻辑处理流程转换为物理执行计划(执行阶段及执行任务)。资源管理与任务调度层根据用户提供的资源来分配资源容器,并将任务(task)调度到合适的资源容器上运行。物理执行层实际运行具体的数据处理任务。
3.1 用户层
对于批式大数据处理框架,如 Hadoop、Spark,用于提交作业(job)之前,需要提前准备好输入数据,输入数据一般以分块(如以128MB为一块)的形式预先存储,可以存储在分布式文件系统(如Hadoop的分布式文件系统 HDFS)和分布式Key-Value 数据库(如HBase)上,也可以存放在关系数据库中。
对于流式大数据处理框架,如Spark Streaming 和 Apache Flink,输入数据可以来自网络流(socket)、消息队列(Kafka)等。数据以微批(多条数据形成一个微批,称为 mini-batch)或者连续(一条接一条,称为coutinuous