现在的位置: 首页 > 综合 > 正文

Hadoop–初识Hadoop

2013年08月01日 ⁄ 综合 ⁄ 共 1893字 ⁄ 字号 评论关闭

什么是Hadoop?

搞什么东西之前,第一步是要知道What(是什么),然后是Why(为什么),最后才是How(怎么做)。但很多开发的朋友在做了多年项目以后,都习惯是先How,然后What,最后才是Why,这样只会让自己变得浮躁,同时往往会将技术误用于不适合的场景。

Hadoop框架中最核心的设计就是:MapReduce和HDFS。MapReduce的思想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapReduce就是“任务的分解与结果的汇总”。HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,为分布式计算存储提供了底层支持。

MapReduce从它名字上来看就大致可以看出个缘由,两个动词Map和Reduce,“Map(展开)”就是将一个任务分解成为多个任务,“Reduce”就是将分解后多任务处理的结果汇总起来,得出最后的分析结果。这不是什么新思想,其实在前面提到的多线程,多任务的设计就可以找到这种思想的影子。不论是现实社会,还是在程序设计中,一项工作往往可以被拆分成为多个任务,任务之间的关系可以分为两种:一种是不相关的任务,可以并行执行;另一种是任务之间有相互的依赖,先后顺序不能够颠倒,这类任务是无法并行处理的。回到大学时期,教授上课时让大家去分析关键路径,无非就是找最省时的任务分解执行方式。在分布式系统中,机器集群就可以看作硬件资源池,将并行的任务拆分,然后交由每一个空闲机器资源去处理,能够极大地提高计算效率,同时这种资源无关性,对于计算集群的扩展无疑提供了最好的设计保证。(其实我一直认为Hadoop的卡通图标不应该是一个小象,应该是蚂蚁,分布式计算就好比蚂蚁吃大象,廉价的机器群可以匹敌任何高性能的计算机,纵向扩展的曲线始终敌不过横向扩展的斜线)。任务分解处理以后,那就需要将处理以后的结果再汇总起来,这就是Reduce要做的工作。

 

Hadoop解决两个问题海量数据存储、海量数据分析
提供了一个可靠的共享存储和分析系统,HDFS(Hadoop Distributed File System)实现存储,MapReduce实现分析处理。这两块是Hadoop的核心

 

Hadoop具有最大化利用内存、最大化利用磁盘、最大化利用CPU的特点。

Hbase:nosql数据库,最大化利用内存。

 

HDFS架构设计:

NAMENODE:
 1.映射一个文件到一批的块,映射数据块到DN节点上。集群配置管理,数据块的管理和复制。
 2.处理事务日志:记录文件生成,删除等。
 3.因为NameNode的全部的元数据在内存中存储,所以NN(NameNode)的内存大小决定整个集群的存储量。
 4.NN内存中保存的数据:文件列表、每一个文件的块列表、每一个DN中块的列表、文件属性:生成时间,复制参数,文件许可(ACL)

DATENODE:
 在本地文件系统存储数据块,存储数据块的元数据,用于CRC校验。
 响应客户端对数据块和元数据的请求。
 周期性的向NN报告这个DN存储的所有数据块信息。
 客户端要存储数据时从NN获取存储数据块的DN位置列表,客户端发送数据块到第一个DN上,第一个DN收到数据通过管道流的方式把数据块发送到另外的DN上。当数据块被  所有的节点写入后,客户端继续发送下一个数据块。DN每3秒钟发送一个心跳到NN,如果NN没有收到心跳再重新尝试后宣告这个DN失效。
 当NN察觉到DN节点失效了,选择一个新的节点复制丢失的数据块。
SECONDNAMENODE:
 Secondary Namenode是一个让人混淆的名字,其实Secondary Namenode是一个辅助NN处理FsImage和事务日志的Server,它从NN拷贝FsImage和事务日志到临时目录,合并FsImage和事务日志生成一个新的FsImage,上传新的FsImage到NN上,NN更新FsImage并清理原来的事务日志。
 简单说也就是一个备份作用,因为NN全部的元数据在内存中存储,久而久之对内存的耗用越来越大,SECONDNAMENODE就是定时的对NN的FsImage和事务日志的Server进行备份。在NN重启后清除原来的信息。这样就避免了对内存过高的耗用。

 

我根据理解简单绘制了一个NN与DN的架构图。

 

网上截取的流程图

 

MapReduce:
最大化利用CPU,分析处理大规模的数据集

通过图片可以简单了解,将同一操作,放在相当于多台处理器上并行执行,每个处理器执行1部分执行后,在将结果汇总在一起,这样减少了很多的时间。

 

 

 

 


 

【上篇】
【下篇】

抱歉!评论已关闭.