博客
关于我
[大数据计算基础] 大数据计算系统
阅读量:542 次
发布时间:2019-03-09

本文共 1645 字,大约阅读时间需要 5 分钟。

大数据计算系统

一、大数据批处理计算框架

Hadoop 是一个开源的、可靠的、可扩展的分布式并行计算框架,主要包括 MapReduce 离线大数据分析计算引擎、HDFS 分布式文件系统、YARN 任务执行调度资源管理框架、HBase NoSQL 数据库、Hive 分布式数据仓库等。

适用场景

批处理,适用于对大容量静态数据集进行分析,计算过程完成后返回结果。

框架特点
  • Map-Reduce 函数模型:并行处理的基本过程包括数据划分、任务分配、执行、结果汇总等。
  • API:通过重载 MapReduce 函数实现,例如 wordcount 案例。
  • 系统架构:包括客户端节点、JobTracker(主节点)、TaskTracker(工作节点)。
  • 运行流程:初始化、作业调度、任务分配、Shuffle、Reduce 等。
  • 数据存储机制:基于 HDFS,支持大规模数据存储和读写。
  • 事务处理:通过容错机制确保计算过程的正确性。
容错机制
  • 节点容错:主节点周期性设置检查点,工作节点失效后重新调度任务。
  • 任务容错:TaskTracker 黑名单机制,监控任务执行状态。

二、大数据实时计算框架

1. Storm
适用场景

数据流处理,实时分析新数据和更新数据库,兼具容错性和可扩展性。

框架特点
  • Spout 水龙头:从外部数据源读取数据并封装为 Tuple 格式。
  • Bolt 状态转换:处理 Tuple,执行过滤、函数操作、Join 等。
  • Topology 网络拓扑:Spout 和 Bolt 组成网络,实现流转换。
API

通过定义 Spout 和 Bolt 实现用户逻辑,例如 wordcount 案例。

系统架构

包括 Nimbus(主节点)、Zookeeper(分布式协调组件)、Supervisor(工作节点)、Worker(任务进程)等。

流程优化

基于 Topology 组织流式计算,Bolt 任务通过 Acker 跟踪消息处理结果。

容错机制
  • 任务级失败:Bolt、Spout、Acker 等任务失效导致消息处理失败。
  • 节点级故障:Worker、Supervisor、Nimbus 等节点失效后重新调度任务。
2. Spark Streaming
适用场景

实时流数据处理,高吞吐量和容错能力强。

框架特点
  • DStream 数据流:将实时流分成小批处理作业,每批数据转换为 RDD。
  • RDD 操作:基于 Spark Core 的批处理引擎,支持高效的流数据处理。
系统架构

基于 Spark 集群,通过 DStream 操作实现流式计算。

容错机制
  • 批量数据复制:数据存储在多个工作节点内存中,容错能力强。
  • 检查点机制:定期保存计算状态,支持重新计算。

三、大图计算框架

1. Pregel
概念

图并行计算框架,支持大规模图的高效处理。

框架特点
  • Superstep 并行模型:图并行模式,节点间信息传输异步处理。
  • 流程优化:从节点聚合消息并发送,减少消息流量。
  • 数据存储:持久化数据存储在分布式存储系统中,临时数据存储在本地磁盘。
容错机制
  • 检查点机制:定期保存图状态,支持快速恢复。
  • 从节点故障恢复:主节点重新分配失效节点的任务。
2. GraphX(基于 Spark)
概念

基于 Spark 的大图计算框架,支持图算法实现。

框架特点
  • 顶点表和边表:将图数据存储为两张表,支持高效操作。
  • 路由表:通过 RDD 实现高效路由计算。
  • 流程优化:基于 Spark Core 的 RDD 操作,实现高效图算法。
容错机制
  • 检查点机制:定期保存图状态,支持快速恢复。
  • 容错处理:通过数据复制和任务重新分配确保计算正确性。

总结

大数据计算框架根据任务特点和性能需求,提供不同的解决方案。Hadoop 适用于批处理,Storm 和 Spark Streaming 适用于实时计算,而 Pregel 和 GraphX 则专注于大图处理。每种框架都通过容错机制确保计算的可靠性和高效性。

转载地址:http://xaoiz.baihongyu.com/

你可能感兴趣的文章
Objective-C实现多种方法求解定积分(附完整源码)
查看>>
Objective-C实现多组输入(附完整源码)
查看>>
Objective-C实现多项式函数在某个点的评估算法(附完整源码)
查看>>
Objective-C实现多项式哈希算法(附完整源码)
查看>>
Objective-C实现大位数乘法(附完整源码)
查看>>
Objective-C实现大根堆(附完整源码)
查看>>
Objective-C实现奇偶检验码(附完整源码)
查看>>
Objective-C实现奇偶转置排序算法(附完整源码)
查看>>
Objective-C实现奇异值分解SVD(附完整源码)
查看>>
Objective-C实现子集总和算法(附完整源码)
查看>>
Objective-C实现字符串autocomplete using trie(使用 trie 自动完成)算法(附完整源码)
查看>>
Objective-C实现字符串boyer moore search博耶摩尔搜索算法(附完整源码)
查看>>
Objective-C实现字符串IP地址转DWORD地址(附完整源码)
查看>>
Objective-C实现字符串jaro winkler算法(附完整源码)
查看>>
Objective-C实现字符串manacher马拉车算法(附完整源码)
查看>>
Objective-C实现字符串wildcard pattern matching通配符模式匹配算法(附完整源码)
查看>>
Objective-C实现字符串word patterns单词模式算法(附完整源码)
查看>>
Objective-C实现字符串Z 函数或 Z 算法(附完整源码)
查看>>
Objective-C实现字符串加解密(附完整源码)
查看>>
Objective-C实现字符串反转(附完整源码)
查看>>