HDFS与MapReduce学习笔记

来源:互联网 发布:索尼电视推荐 知乎 编辑:程序博客网 时间:2024/06/06 06:53

HDFS的文件被分成块进行存储

HDFS块的默认大小是64M 块是文件存储处理的逻辑单元

HDFS中有两类节点:namenode和datanode
namenode:
namenode是管理节点,存放文件元数据。
文件与数据块的映射表
数据块与数据节点的映射表
datanode:
datanode是HDFS的工作节点,存放数据块。
每个数据块3个副本,分布在两个机架内的三个节点
datanode定期向namenode发送心跳消息,汇报自己的状态,帮助namenode了解datanode的实时情况。

二级namenode(secondarynamenode)定期同步元数据映像文件和修改日志,namenode发生故障时,二级namenode暂时接替namenode的工作。

HDFS读文件:客户端(文件读取请求)->namenode(返回元数据)->读取blocks
HDFS写文件:客户端(将文件拆分成块)->namenode(返回可用的datanode)->写入blocks->流水线复制->更新元数据

HDFS的特点:
1.数据冗余,硬件容错;
2.流式的数据访问(写一次读多次);
3.适合存储大文件(大量的小文件的话namenode的压力会非常大)。

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

基本概念:Job(作业)&Task(任务)
JobTracker:
作业调度
分配任务、监控任务执行进度
监控TaskTracker的状态
TaskTracker:
执行任务
汇报任务状态

MapReduce的容错机制:
重复执行
推测执行(当一个TaskTracker执行很慢的时候,另外开一个TaskTracker执行相同的任务,谁先执行完就取谁的结果,而另一个则被抛弃。)