阿里巴巴飞天大数据架构体系与Hadoop生态系统( 六 )

9、如果某一个块的所有数据都已写入,就会向NameNode反馈已完成。

10、对第二个Block,也进行相同的操作。

11、所有Block都完成后,关闭文件。NameNode会将数据持久化到磁盘上。

HDFS读取流程:

1、用户向Client提出读取请求。

2、Client向NameNode请求这个文件的所有信息。

3、NameNode将给Client这个文件的块列表,以及存储各个块的数据节点清单(按照和客户端的距离排序)。

4、Client从距离最近的数据节点下载所需的块。

MapReduce

MapReduce主要也有两个角色:JobTracker和TaskTracker。

JobTracker,类似于 NameNode。JobTracker是 Hadoop 集群中惟一负责控制 MapReduce应用程序的系统,位于Master节点上。在用户计算作业的应用程序提交之后,JobTracker决定有哪些文件参与处理,使用文件块信息确定如何创建其他 TaskTracker 从属任务,同时监控task并且于不同的节点上重启失败的task。TaskTracker位于slave从节点上与dataNode结合管理各自节点上由jobtracker分配的task,每个节点只有一个tasktracker,但一个tasktracker可以启动多个JVM,用于并行执行map或reduce任务。每个 TaskTracker 将状态和完成信息报告给 JobTracker。

推荐阅读