告诉你Hadoop是什么

来源:互联网 发布:线性映射的矩阵表示 编辑:程序博客网 时间:2024/04/30 21:45


告诉你Hadoop是什么

技术的发展是相当的快速,当我们还在为用三大框架做个实现了增删改查的项目而沾沾自喜时,殊不知别人出口闭口谈论的已都是大数据,云计算之类的貌似很高大上的东东。我们已经进入了第四次工业革命,在这个新的时代里,数据就是企业的命脉,数据就是黄金,得数据者得天下,...。数据,数据,全是数据,那tm跟Hadoop有半毛钱的关系呢?那么好了,我们就来谈谈所谓的Hadoop到底是个什么东东?

Hadoop是什么?Hadoop是一个开发和运行处理大规模数据的软件框架,是Doug Cutting在看了google发表的三篇论文(我也看看)之后挥手用java语言敲出来的,最初只是Nutch项目中的一个子项目,但是在加入雅虎后Hadoop正式成为一个项目由doug cuting负责开发,后来成为了Apache基金会中的一个开源软件框架,形成了一个巨大的hadoop生态系统,实现在大量计算机组成的集群中对海量数据进行分布式计算.

Hadoop框架中最核心设计就是:HDFS和MapReduce.HDFS提供了海量数据的存储,MapReduce提供了对数据的计算.

数据在Hadoop中处理的流程可以简单的按照下图来理解:数据通过Haddop的集群处理后得到结果.

HDFS:Hadoop Distributed File System,Hadoop的分布式文件系统.
大文件被分成默认64M一块的数据块分布存储在集群机器中.

如下图中的文件 data1被分成3块,这3块以冗余镜像的方式分布在不同的机器中.

MapReduce:Hadoop为每一个inputsplit创建一个task调用Map计算,在此task中依次处理此split中的一个个记录(record),map会将结果以key--value的形式输出,hadoop负责按key值将map的输出整理后作为Reduce的输入,Reduce Task的输出为整个job的输出,保存在HDFS上.

Hadoop的集群主要由 NameNode,DataNode,Secondary NameNode,JobTracker,TaskTracker组成.

如下图所示:

NameNode中记录了文件是如何被拆分成block以及这些block都存储到了那些DateNode节点.

NameNode同时保存了文件系统运行的状态信息. 

DataNode中存储的是被拆分的blocks.

Secondary NameNode帮助NameNode收集文件系统运行的状态信息.

JobTracker当有任务提交到Hadoop集群的时候负责Job的运行,负责调度多个TaskTracker.

TaskTracker负责某一个map或者reduce任务.


转自:http://www.yanhom.cn/yanhomBlog/article/31/detail


0 0