什么是大数据
- 大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。
大数据处理方法中的共同特征
- 数据分布在多个节点(网络I/O速度 << 本地磁盘I/O速度)
- 数据库在各个节点的备份,提高系统的容错性
- 为达到数据并行处理的目的
- 计算程序离数据更近(数据本地化处理)
- 大数据平台会吧计算任务尽量的调度到离数据最近的节点
- 数据可顺序读取磁盘I/O代替随机读取磁盘I/O(数据交换速度 << 数据寻道时间)
- 顺序读取可以大大减少读取数据的寻址时间,提高读取的速度
大数据编程模型的常见类型
- 大规模并行处理(Massively Parallel Processing,MPP)数据库系统
- 大规模并行处理(MPP)数据库系统的核心思想是把数据按照某一列或者某一组列的值,按照某种形式进行划分,以分别处理。
- 缺陷:需要在算法设计的时候就决定数据如何划分。这就不适合临时的数据查询需求。
- 内存数据库系统
- 内存数据库系统系统运行类似于 MPP 系统,不同之处在于,内存数据库系统的每个计算节点需要巨大容量的内存,并且大部分数据会被预先加载到内存中。
- 缺点:需要大量的硬件和软件,成本较高。
MapReduce系统
特征:
- 使用商业级别的硬件(廉价的服务器)
- 无需事先定义数据划分准则来把数据分配到各个计算节点。
- 用户仅需定义两个独立的处理过程:Map 和 Reduce。
缺点:MapReduce 编程范型不适合迭代算法。
- 整体同步并行(Bulk Synchronous Parallel,BSP)系统
大数据和事务性系统(RDBMS)
- 大多数的 RDBMS 使用者都要求数据库必须遵守 ACID(atomicity:原子性,consistency:一致性,isolation:隔离线,durability:持久性) 准则。
ACID 的简化版本 CAP 理论
- Consistency(一致性):在分布式系统中的所有数据备份,在同一时刻有同样的值。
- Availability(可用性):在合理且明确的时间内,保证每个请求都能获得成功或失败的结果的响应。
- Partition tolerance(分区容忍性):在集群中一部分节点故障后,集群整体仍可使用。
事实证明,任何分布式系统只能同时满足 CAP 理论的其中两个特性。
分布式集群的 Amdhal 定律
- 分布式集群可以通过增加节点的方式来提高对数据处理的效率,但是这并不能无限的提升,Amdhal 定律很好的说明了这点。
- Amdhal 定律
- 其数据计算处理并行化程度的比例达到 P (P的取值范围是 0 到 1 ),在集群节点数量无限的条件下,我们能获得的性能提升最大为 1/(1-P).
大数据的技术
- 数据采集
- 数据存取
- 基础架构
- 数据处理
- 统计分析
- 数据挖掘
- 模型预测
- 结果呈现