排序,是 MapReduce 中最重要的操作之一。默认的排序方式是 字典排序
,且实现此排序的方式是 快速排序
。
MapTask 和 MapReduce 均会对数据按照 key
进行排序,该操作属于 Hadoop 的默认操作。任何程序中的数据均会被排序,不论逻辑上是否需要。
排序,是 MapReduce 中最重要的操作之一。默认的排序方式是 字典排序
,且实现此排序的方式是 快速排序
。
MapTask 和 MapReduce 均会对数据按照 key
进行排序,该操作属于 Hadoop 的默认操作。任何程序中的数据均会被排序,不论逻辑上是否需要。
在了解了常见的 InputFormat,及其处理分片的方式后,通过集成 FileInputFormat 自实现了一个自定义的 InputFormat,并通过自实现的 InputFormat,完成了一个对小文件的汇总合并工作。
那么此时,就需要深入了解一下 MapReduce 的具体工作流程
此前了解了 InputFormat 运行时,需要参考的 MapTask 并行度决定机制,以及任务提交的流程,那么接下来就需要深入分析 InputFormat 机制。
在了解了 Hadoop 的序列化操作,实现了基本的 Bean 序列化的一个 demo,接下来分析一下 MapReduce 的框架原理。
HDFS、MapReduce、Yarn 是 Hadoop 的三大模块,其中,HDFS 负责存储,MapReduce 负责计算,Yarn 负责资源调度
在了解了 NameNode、SecondaryNameNode 的工作机制、FsImage 与 Edits 数据备份、NameNode 安全机制与多目录后,对 NameNode 有了一些基础了解。在此基础之上,接下来了解一下 DataNode 的工作机制。
此前通过代码了解了 HDFS API 和 I/O 操作,并了解了 HDFS 读写数据的过程,对 HDFS 整体运行过程有了初步了解。接下来就需要了解一下 NN(NameNode)、2NN(SecondaryNameNode) 的区别
此前,完成了一个基础的完全分布式集群,并且使用 Java 程序代码实现测试连通了 Hadoop 集群,且在 HDFS 中创建了一个文件夹。由此开始学习 Hadoop 的一些 Java API 操作。
在此前,已经成功启动、测试了 hadoop 集群的功能,了解了部分 hadoop 知识,下面就需要开始针对 hadoop 进行继续深入学习 HDFS、MapReduce 的知识。