美文网首页
HDFS TestDFSIO

HDFS TestDFSIO

作者: wayyyy | 来源:发表于2022-11-17 09:24 被阅读0次

TestDFSIO 程序原理:

使用多个 Map Task 模拟多路的并发读写。通过自己的 Mapper class 用来读写数据,生成统计信息;通过自己的 Reduce Class 来收集并汇总各个 Map Task 的统计信息, 主要涉及到三个文件: AccumulatingReducer.java, IOMapperBase.java, TestDFSIO.java。

TestDFSIO 大致运行过程:

  1. 根据 Map Task 的数量将相应个数的 Control 控制文件写入 HDFS,这些控制文件仅包含一行内容:<数据文件名,数据文件大小> ;

  2. 启动 MapReduceJob,IOMapperBase Class 中的 Map 方法将 Control 文件作为输入文件,读取内容,将数据文件名和大小作为参数传递给自定义的 doIO 函数,进行实际的数据读写工作。而后将数据大小和 doIO 执行的时间传递给自定义的 collectStatus 函数,进行统计数据的输出工作 ;

  3. doIO 的实现:TestDFSIO 重载并实现 doIO 函数,将指定大小的数据写入 HDFS 文件系统;

  4. collectStatus 的实现:TestDFSIO 重载并实现 collectStatus 函数,将任务数量,以及数据大小,完成时间等相关数据作为 Map Class 的结果输出;

  5. 统计数据用不同的前缀标识,例如 l: (stand for long), s: (stand for string) etc;

  6. 执行唯一的一个 Reduce 任务,收集各个 Map Class 的统计数据,使用 AccumulatingReducer 进行汇总统计;

  7. 最后当 MapReduceJob 完成以后,调用 analyzeResult 函数读取最终的统计数据并输出到控制台和本地的 Log 文件中;


参考资料
1、https://www.codercto.com/a/29761.html
2、https://blog.csdn.net/ssjdoudou/article/details/121811114
3、https://mryqu.github.io/post/hadoop_%E4%BD%BF%E7%94%A8dfsio%E6%B5%8B%E8%AF%95%E9%9B%86%E7%BE%A4io%E6%80%A7%E8%83%BD/

相关文章

网友评论

      本文标题:HDFS TestDFSIO

      本文链接:https://www.haomeiwen.com/subject/priuxdtx.html