hadoop学习笔记

来源:互联网 发布:蜘蛛爬行软件 编辑:程序博客网 时间:2024/06/13 17:48

hadoop是Apache开发的开源框架。

hadoop的核心是HDFS和MapRedure。

HDFS,分布式文件系统,为海量的数据提供存储。

MapRedure,并行处理框架,为海量的数据提供计算。

1、HDFS

hdfs的特点是:

(1)数据冗余,硬件容错

使用3个备份来实现硬件容错,允许运行在廉价机器上。

(2)流式数据访问

一旦写入,不会被修改,也无法修改

(3)存储大文件

hdfs的局限性

(1)将HDFS用于对数据访问要求低延迟的场景

由于HDFS是为高数据吞吐量应用而设计的,必然以高延迟为代价。

(2)存储大量小文件

 HDFS中元数据(文件的基本信息)存储在namenode的内存中,而namenode为单点,小文件数量大到一定程度,namenode内存就吃不消了。

hdfs基本架构


数据块(block):大文件会被分割成多个block进行存储,block大小默认为64MB。每一个block会在多个datanode上存储多份副本,默认是3份。

namenode:namenode负责管理文件目录、文件和block的对应关系以及block和datanode的对应关系。

datanode:datanode就负责存储了,当然大部分容错机制都是在datanode上实现的。

2、MapRedure

分而治之,把一个大任务分成多个小的子任务map,并行执行,合并结果redure。

MapReduce程序的工作分两个阶段进行:

(1)Map 任务 (分割及映射)

(2)Reduce 任务 (重排,还原)

上图的例子是统计每个单词出现的频率。


参考文献:

http://os.51cto.com/art/201212/369564.htm

http://www.yiibai.com/hadoop/intro-mapreduce.html