【大数据】批处理与Hadoop

一、批处理系统

批处理主要操作大容量静态数据集(有边界数据),并在计算结束后返回结果。
批处理模式中使用的数据集通常符合以下特征:

  1. 有界:数据是限的
  2. 持久:数据通常存储在某种持久存储中
  3. 大量:批处理是处理极为海量数据集的唯一方法

批处理非常适合需要访问全套记录才能完成的计算工作,例如计算总数以及平均数。但是不适合对处理时间要求较高的场合,因为处理大量数据通常需要大量的时间。

二、Apache Hadoop

Apache Hadoop是一种专用于批处理的处理框架。Hadoop是首个在开源社区获得极大关注的大数据框架。基于谷歌有关海量数据处理所发表的多篇论文与经验的Hadoop重新实现了相关算法和组件堆栈,让大规模批处理技术变得更易用。
新版Hadoop包含多个组件,即多个层,通过配合使用可处理批数据:

  1. HDFS:HDFS是一种分布式文件系统层,可以对集群节点之间的存储和复制进行协调,它确保了当某些节点故障发生后数据依然可用。可将其作为数据来源,或是存储中间态的处理结果,亦或是存储计算的最终结果。
  2. YARN:YARN是Yet Another Resource Negotiator(另一个资源管理器)的缩写,可充当Hadoop堆栈的集群协调组件。该组件负责协调并管理底层资源和调度作业的运行。通过充当集群资源的接口,YARN使得用户能在Hadoop集群中使用比以往的迭代方式运行更多类型的工作负载。
  3. MapReduce:MapReduce是Hadoop的原生批处理引擎。

批处理 × Hadoop
Hadoop的批处理功能来自MapReduce引擎,MapReduce的处理技术符合使用键值对的map、shuffle、reduce算法要求。基本处理过程包括:

  1. 从HDFS文件系统读取数据集

  2. 将数据集拆分成小块并分配给所有可用节点

  3. 针对每个节点上的数据子集进行计算(计算的中间态结果会重新写入HDFS)

  4. 重新分配中间态结果并按照键进行分组

  5. 通过对每个节点计算的结果进行汇总和组合对每个键的值进行“Reducing”

  6. 将计算而来的最终结果重新写入 HDFS

优势和局限
由于这种方法严重依赖持久存储,每个任务需要多次执行读取和写入操作,因此速度相对较慢。但另一方面由于磁盘空间通常是服务器上最丰富的资源,这意味着MapReduce可以处理非常海量的数据集。同时也意味着相比其他类似技术,Hadoop的MapReduce通常可以在廉价硬件上运行,因为该技术并不需要将一切都存储在内存中。MapReduce具备极高的缩放潜力,生产环境中曾经出现过包含数万个节点的应用。

MapReduce的学习曲线较为陡峭,虽然Hadoop生态系统的其他周边技术可以大幅降低这一问题的影响,但通过Hadoop集群快速实现某些应用时依然需要注意这个问题。

围绕Hadoop已经形成了辽阔的生态系统,Hadoop集群本身也经常被用作其他软件的组成部件。很多其他处理框架和引擎通过与Hadoop集成也可以使用HDFS和YARN资源管理器。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我顶得了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值