论文部分内容阅读
Hadoop是如今大数据革命的代表性技术,做Hadoop相关产品有很多,其中有很多不一样的选择和变种,比较知名的有Cloudera、Hortonwork、亚马逊EMR、Storm和Spark。这些都是Hadoop的忠实“粉丝”。
想要搞清楚大数据和Hadoop的关系,我们还得先认识一下Hadoop。
一种数据存储和分析的方法
如何理解Hadoop呢?官方给的定义是这样的:作为一种软件库,Hadoop允许在集群服务器上使用简单的编程模型对大数据集进行分布式处理。它被设计成能够从单台服务器扩展到数以千计的服务器,每台服务器都有本地的计算和存储资源。Hadoop的高可用性并不依赖硬件,其代码库自身就能在应用层侦测并处理硬件故障,因此能基于服务器集群提供高可用性的服务。
对于非专业人员,这个解释显得比较晦涩,我们从“系统”这个角度来理解。Hadoop是一个分布式系统,这种系统的结构特点是表面上看起来是一个整体,实际上它的各个模块和数据都具有高度的自治独立性,系统中的若干台计算机可以互相协作来完成一个共同的任务,或者说一个程序可以分布在几台计算机上并行地运行。比如说我们平时使用的万维网就是一个很好的分布式系统的例子,表面看起来它是一个整体,实际上网页中很多不同的部分都是独立工作的。
具体到Hadoop中,我们会发现它的“独立性”做得更彻底, Hadoop中几乎所有的功能都是独立模块化的,也就是说具体在应用中使用者可以用其他软件抽掉或替代那些不需要的模块,这使得Hadoop的“兼容性”变得很高。
如果Hadoop还是没给你留下深刻的印象的话,那么你只要记住,这个系统是由两个部分构成的,一个是数据处理框架,另一个是分布式数据存储文件系统(HDFS)。大数据存在HDFS中,需要用的时候就从这里拿到数据处理框架里面处理。
大数据为何离不开它
我们这里说的“大数据离不开Hadoop”其实是相对而言的,从技术上来说,大数据的处理非得Hadoop吗?那倒不是,在Hadoop出现之前很多企业已经开始处理大数據啦。不过,这些企业仅限于大企业,因为只有他们有能力购买处理大数据的大型机器。
但是,大数据要想做出更多贡献,必须让更多的组织机构参与进来,在时代的呼唤下,一种成本相对较低的能够处理大数据的系统就呼之欲出。这时候Google站了出来,他们的工程师经过多番探讨实践,最后做出了Hadoop!
Hadoop的出现在大数据发展史上是有里程碑意义的,因为它的出现把大数据的应用从小众变成了大众。最直接的体现就是它降低了大数据处理成本!
首先,企业不用花太多钱在服务器硬件成本上,一般廉价的服务器也足以支撑起Hadoop。
其次,在软件使用上Hadoop不像是昂贵的“大型机”——昂贵且很多东西不开放。Hadoop不仅对用户开放源代码和协议,可供自由修改,最主要的是,这些东西的使用时成本相对低廉的。
再次,Hadoop出自Google工程师之手,工程师们使用的时候都是二次开发,其本身的结构合理性、安全性都有保障,在日常维护上的成本低了很多。当然,这里还有一个“后天”累计而成的优势不得不提,Hadoop自从出现之后就受到了热捧,目前工程师们已经自发的形成了非常热闹的讨论社区,新手在入门的时候可以享受到友好的学习环境和进阶环境。
缺陷:不适合处理实时数据
Twitter在使用了Hadoop处理大数据后,他们又推出了自己的自己的另外一个系统——Storm,因为Hadoop并不适合处理实时大数据,但在Twitter上用户每天就要生成1.4亿条新的推文。
相比较起来,虽然Hadoop吞吐数据的量比Storm大,但Storm在时延上比要比Hadoop优得多,在实时数据较多的业务场景下,当然是Storm比较合适。这还得从它们的工作本质说起。
Storm 与Hadoop之间不同之处在于它们的工作处理方式。Hadoop在本质上是一个批处理系统,数据被引入 Hadoop 文件系统 (HDFS) 并分发到各个节点进行处理。当处理完成时,结果数据返回到 HDFS 供始发者使用。Storm 支持创建拓扑结构来转换没有终点的数据流,这些转换从不停止,它们会持续处理到达的数据。
当然,我们在说Hadoop不适合处理实时数据的时候也得加上一个前提,那就是这个需要被处理的实时数据得足够大,如果只是一般量的话,Hadoop还是应付得了的。(编辑/有庆)
想要搞清楚大数据和Hadoop的关系,我们还得先认识一下Hadoop。
一种数据存储和分析的方法
如何理解Hadoop呢?官方给的定义是这样的:作为一种软件库,Hadoop允许在集群服务器上使用简单的编程模型对大数据集进行分布式处理。它被设计成能够从单台服务器扩展到数以千计的服务器,每台服务器都有本地的计算和存储资源。Hadoop的高可用性并不依赖硬件,其代码库自身就能在应用层侦测并处理硬件故障,因此能基于服务器集群提供高可用性的服务。
对于非专业人员,这个解释显得比较晦涩,我们从“系统”这个角度来理解。Hadoop是一个分布式系统,这种系统的结构特点是表面上看起来是一个整体,实际上它的各个模块和数据都具有高度的自治独立性,系统中的若干台计算机可以互相协作来完成一个共同的任务,或者说一个程序可以分布在几台计算机上并行地运行。比如说我们平时使用的万维网就是一个很好的分布式系统的例子,表面看起来它是一个整体,实际上网页中很多不同的部分都是独立工作的。
具体到Hadoop中,我们会发现它的“独立性”做得更彻底, Hadoop中几乎所有的功能都是独立模块化的,也就是说具体在应用中使用者可以用其他软件抽掉或替代那些不需要的模块,这使得Hadoop的“兼容性”变得很高。
如果Hadoop还是没给你留下深刻的印象的话,那么你只要记住,这个系统是由两个部分构成的,一个是数据处理框架,另一个是分布式数据存储文件系统(HDFS)。大数据存在HDFS中,需要用的时候就从这里拿到数据处理框架里面处理。
大数据为何离不开它
我们这里说的“大数据离不开Hadoop”其实是相对而言的,从技术上来说,大数据的处理非得Hadoop吗?那倒不是,在Hadoop出现之前很多企业已经开始处理大数據啦。不过,这些企业仅限于大企业,因为只有他们有能力购买处理大数据的大型机器。
但是,大数据要想做出更多贡献,必须让更多的组织机构参与进来,在时代的呼唤下,一种成本相对较低的能够处理大数据的系统就呼之欲出。这时候Google站了出来,他们的工程师经过多番探讨实践,最后做出了Hadoop!
Hadoop的出现在大数据发展史上是有里程碑意义的,因为它的出现把大数据的应用从小众变成了大众。最直接的体现就是它降低了大数据处理成本!
首先,企业不用花太多钱在服务器硬件成本上,一般廉价的服务器也足以支撑起Hadoop。
![](http://img1.qikan.com/qkimages/dzkx/dzkx201710/dzkx20171012-1-l.jpg)
其次,在软件使用上Hadoop不像是昂贵的“大型机”——昂贵且很多东西不开放。Hadoop不仅对用户开放源代码和协议,可供自由修改,最主要的是,这些东西的使用时成本相对低廉的。
再次,Hadoop出自Google工程师之手,工程师们使用的时候都是二次开发,其本身的结构合理性、安全性都有保障,在日常维护上的成本低了很多。当然,这里还有一个“后天”累计而成的优势不得不提,Hadoop自从出现之后就受到了热捧,目前工程师们已经自发的形成了非常热闹的讨论社区,新手在入门的时候可以享受到友好的学习环境和进阶环境。
缺陷:不适合处理实时数据
Twitter在使用了Hadoop处理大数据后,他们又推出了自己的自己的另外一个系统——Storm,因为Hadoop并不适合处理实时大数据,但在Twitter上用户每天就要生成1.4亿条新的推文。
相比较起来,虽然Hadoop吞吐数据的量比Storm大,但Storm在时延上比要比Hadoop优得多,在实时数据较多的业务场景下,当然是Storm比较合适。这还得从它们的工作本质说起。
Storm 与Hadoop之间不同之处在于它们的工作处理方式。Hadoop在本质上是一个批处理系统,数据被引入 Hadoop 文件系统 (HDFS) 并分发到各个节点进行处理。当处理完成时,结果数据返回到 HDFS 供始发者使用。Storm 支持创建拓扑结构来转换没有终点的数据流,这些转换从不停止,它们会持续处理到达的数据。
当然,我们在说Hadoop不适合处理实时数据的时候也得加上一个前提,那就是这个需要被处理的实时数据得足够大,如果只是一般量的话,Hadoop还是应付得了的。(编辑/有庆)