新闻动态

NEWS INFORMATION

当前位置: 新闻动态 > 最新通知 >

hadoop生态圈背后隐藏的“凶险”

时间:2018-05-21 浏览:10次


伴随互联网的高速发展,大数据成为炙手可热的时髦产物。随之而来的是关于大数据的存储与计算问题。作为能够对大量数据进行分布式处理的软件框架——Hadoop目前已经发展成为分析大数据的领先平台,它能够以一种可靠、高效、可伸缩的方式进行数据处理。

一、Hadoop生态圈的形成

大数据是个宽泛的问题,而Hadoop生态圈是最佳的大数据的解决方案。Hadoop生态圈的所有内容基本都是为了处理超过单机范畴的数据而产生的。

1.jpg

HDFS&MapReduce

在最开始阶段Hadoop只包含HDFS(Hadoop Distributed FileSystem)和MapReduce两个组件。HDFS的设计本质是为解决大量数据分别存储于成百上千台机器上的问题,让客户看到的是一个文件系统而非很多文件系统,屏蔽复杂的底层调用。好比用户想要取/liusicheng/home/test1下的数据,只需要得到准确的路径即可获得数据,至于数据实际上被存放在不同的机器上这点用户根本不需要关心。HDFS帮助客户管理分散在不同机器上的PG级数据。这些数据如果都放在一台机器上处理,一定会导致恐怖的等待时间。于是,客户选择使用很多台机器处理数据。

Hadoop的第二个重要组件MapReduce被设计用来解决对多台机器实现工作分配,并完成机器之间的相互通信,最终完成客户部署的复杂计算。至此第一代hadoop已经具备了大数据管理和计算能力。

MapReduce计算模型虽然能用于很多模型,但还是过于简单粗暴,好用但笨重。为了解决MapReduce的这一缺陷,引入Tez和Spark使Map/Reduce模型更通用,让Map和Reduce之间的界限更模糊,数据交换更灵活,更少的磁盘读写以更方便描述复杂算法,取得更高吞吐量。

Pig&Hive

解决完计算性能问题,就要往效率方面做努力,降低使用门槛。MapReduce的程序写起来非常麻烦,用更高层、更抽象的语言层来描述算法和数据处理流程可以有效降低使用门槛,提高工作效率。于是,利用Pig接近脚本方式描述MapReduce,利用Hive把脚本和SQL语言翻译成MapReduce程序,丢给计算引擎去计算。如此一来,一般客户也可以简单使用或维护hadoop了。

数据仓库

hadoop生态圈完成的数据仓库架构为:底层HDFS;上面跑MapReduce/Tez/Spark;再往上跑Hive,Pig。这种数据仓库可以解决中低速数据处理的要求,多用于归档数据分析。客户有新的需求,需要数据仓库有更高的处理速度,来固定查询某些特定值,给网站实时动态变化提供数据。HBase、Cassandra和MongoDB等多种非关系型数据库,表现得比MapReduce要好很多,比如HBase会通过索引解决这个问题,而MapReduce很可能要扫描整个数据集。

除了这些基本组件属于hadoop生态外,分布式机器学习库Mahout,数据交换的编码库Protobuf和高一致性分布存取协同系统ZooKeeper等也在hadoop生态中发挥着作用。这么多工具在同一个集群上运转,调度系统Yarn就变得必不可少。上面组件仅是hadoop生态其中一部分,还有更多解决不同问题或处理不同场景的其他组件存在。


返回上一级