资讯中心

5种大数据处理框架技术如何选择是关键

来源:大数据杂谈
编辑:沐子飞
2016/12/1 9:30:20
39342
导读:处理框架负责对系统中的数据进行计算,例如处理从非易失存储中读取的数据,或处理刚刚摄入到系统中的数据。数据的计算则是指从大量单一数据点中提取信息和见解的过程。
  【中国智能制造网 智造快讯】处理框架负责对系统中的数据进行计算,例如处理从非易失存储中读取的数据,或处理刚刚摄入到系统中的数据。数据的计算则是指从大量单一数据点中提取信息和见解的过程。

5种大数据处理框架技术 如何选择是关键
  
  大数据处理框架是什么?
  
  处理框架和处理引擎负责对数据系统中的数据进行计算。虽然“引擎”和“框架”之间的区别没有什么的定义,但大部分时候可以将前者定义为实际负责处理数据操作的组件,后者则可定义为承担类似作用的一系列组件。
  
  例如Apache Hadoop可以看作一种以MapReduce作为默认处理引擎的处理框架。引擎和框架通常可以相互替换或同时使用。例如另一个框架Apache Spark可以纳入Hadoop并取代MapReduce。组件之间的这种互操作性是大数据系统灵活性如此之高的原因之一。
  
  虽然负责处理生命周期内这一阶段数据的系统通常都很复杂,但从广义层面来看它们的目标是非常一致的:通过对数据执行操作提高理解能力,揭示出数据蕴含的模式,并针对复杂互动获得见解。
  
  为了简化这些组件的讨论,我们会通过不同处理框架的设计意图,按照所处理的数据状态对其进行分类。一些系统可以用批处理方式处理数据,一些系统可以用流方式处理连续不断流入系统的数据。此外还有一些系统可以同时处理这两类数据。
  
  在深入介绍不同实现的指标和结论之前,首先需要对不同处理类型的概念进行一个简单的介绍。
  
  批处理系统
  
  批处理在大数据世界有着悠久的历史。批处理主要操作大容量静态数据集,并在计算过程完成后返回结果。
  
  批处理模式中使用的数据集通常符合下列特征……
  
  有界:批处理数据集代表数据的有限集合
  
  持久:数据通常始终存储在某种类型的持久存储位置中
  
  大量:批处理操作通常是处理极为海量数据集的方法
  
  批处理非常适合需要访问全套记录才能完成的计算工作。例如在计算总数和平均数时,必须将数据集作为一个整体加以处理,而不能将其视作多条记录的集合。这些操作要求在计算进行过程中数据维持自己的状态。
  
  需要处理大量数据的任务通常适合用批处理操作进行处理。无论直接从持久存储设备处理数据集,或首先将数据集载入内存,批处理系统在设计过程中就充分考虑了数据的量,可提供充足的处理资源。由于批处理在应对大量持久数据方面的表现极为出色,因此经常被用于对历史数据进行分析。
  
  大量数据的处理需要付出大量时间,因此批处理不适合对处理时间要求较高的场合。
  
  Apache Hadoop
  
  Apache Hadoop是一种专用于批处理的处理框架。Hadoop是在开源社区获得极大关注的大数据框架。基于谷歌有关海量数据处理所发表的多篇论文与经验的Hadoop重新实现了相关算法和组件堆栈,让大规模批处理技术变得更易用。
  
  新版Hadoop包含多个组件,即多个层,通过配合使用可处理批数据:
  
  HDFS:HDFS是一种分布式文件系统层,可对集群节点间的存储和复制进行协调。HDFS确保了无法避免的节点故障发生后数据依然可用,可将其用作数据来源,可用于存储中间态的处理结果,并可存储计算的终结果。
  
  YARN:YARN是Yet Another Resource Negotiator(另一个资源管理器)的缩写,可充当Hadoop堆栈的集群协调组件。该组件负责协调并管理底层资源和调度作业的运行。通过充当集群资源的接口,YARN使得用户能在Hadoop集群中使用比以往的迭代方式运行更多类型的工作负载。
  
  MapReduce:MapReduce是Hadoop的原生批处理引擎。
  
  批处理模式
  
  Hadoop的处理功能来自MapReduce引擎。MapReduce的处理技术符合使用键值对的map、shuffle、reduce算法要求。基本处理过程包括:
  
  从HDFS文件系统读取数据集
  
  将数据集拆分成小块并分配给所有可用节点
  
  针对每个节点上的数据子集进行计算(计算的中间态结果会重新写入HDFS)
  
  重新分配中间态结果并按照键进行分组
  
  通过对每个节点计算的结果进行汇总和组合对每个键的值进行“Reducing”
  
  将计算而来的终结果重新写入 HDFS
  
  优势和局限
  
  由于这种方法严重依赖持久存储,每个任务需要多次执行读取和写入操作,因此速度相对较慢。但另一方面由于磁盘空间通常是服务器上丰富的资源,这意味着MapReduce可以处理非常海量的数据集。同时也意味着相比其他类似技术,Hadoop的MapReduce通常可以在廉价硬件上运行,因为该技术并不需要将一切都存储在内存中。MapReduce具备极高的缩放潜力,生产环境中曾经出现过包含数万个节点的应用。
  
  MapReduce的学习曲线较为陡峭,虽然Hadoop生态系统的其他周边技术可以大幅降低这一问题的影响,但通过Hadoop集群快速实现某些应用时依然需要注意这个问题。
  
  围绕Hadoop已经形成了辽阔的生态系统,Hadoop集群本身也经常被用作其他软件的组成部件。很多其他处理框架和引擎通过与Hadoop集成也可以使用HDFS和YARN资源管理器。
  

热门评论

上一篇:岁末大盘点:2016不可不知的无人机炫酷“黑科技”

下一篇:无人驾驶成21世纪产业制高点 四国竞赛火热上演

相关新闻

<