Hadoop初步了解

Hadoop核心:HDFS(分布式文件系统)和MapReduce(并行计算框架)

HDFS:

涉及到的三个基本概念:

Block(数据块)

HDFS的文件被分成块进行存储,每个块的默认大小为64M。它是文件处理存储的逻辑单元。

NameNode(管理节点)

NameNode是HDFS的管理节点,用来存储文件元数据。元数据一般是两部分组成:

文件与数据块的映射表

数据节点和数据块的映射表

DataNode(数据节点)

DataNode是HDFS的工作节点,用来存放数据块。

hadoop 节点通讯 hadoop的节点个数_数据


数据管理策略

为了保证硬件的容错率,每个数据块都会有三份,其中两份在同一机架上,另一份在另外的一个机架上。这样就保证了,如果一个机架出现故障,也不至于出现数据丢失现象。

心跳检测,就是NameNode与DataNode有一个心跳协议,DataNode会定期向NameNode发送心跳消息,来实时监控DataNode 的状态

二级NameNode会定期同步源数据映像文件和日志,一旦NameNode出现故障,二级NameNode转正。

HDFS文件的读写流程

读:首先客户端会向NameNode发出请求,读取元数据文件,获取数据存储的数据节点和数据块的位置信息,然后返回给客户端。客户端根据获取的位置信息,去找相应的数据节点读取数据。

写:客户端向NameNode发送请求,NameNode会报要写入的信息拆分成块,然后查找出具有空间的数据节点,进行写入。写入后会以复制的方式,通过管道,在将相同信息复制写入两边,存储到不同的数据节点上。然后更新元数据通知NameNode已经写入完毕。

HDFS特点:

1、数据冗余,硬件容错

2、流式数据访问,一旦写入不会被修改。(写一次读多次)

3、存储大文件

适用性:

1、适合数据批量读写,吞吐量大。

2、适合一次写入多次读取。

局限性:

1、不适合交互式应用,低延迟很难满足。

2、不支持多用户并发写相同文件。

MapReduce

原理:一个大任务分成许多的小任务(map),并行执行后,合并结果(reduce)。

hadoop 节点通讯 hadoop的节点个数_数据_02


运行流程:

JobTracker角色

作业调度

分配任务,监控任务执行状态

监控TaskTracer状态

TaskTracer角色:

执行任务

向JobTracker汇报任务状态。

MapReduce的容错机制

重复执行(默认是尝试4次,如果超过次数,则终止。)

推测执行