Gud*_*ota 6 hadoop word-count hdfs
我正在寻找一个磁盘密集型Hadoop应用程序来测试Hadoop中的I/O活动,但我找不到任何这样的应用程序,它保持磁盘利用率高于50%,或者某些此类应用程序实际上保持磁盘繁忙.我试过了randomwriter,但令人惊讶的是它不是磁盘I/O密集型的.
所以,我写了一个小程序来在Mapper中创建一个文件并在其中写入一些文本.此应用程序运行良好,但仅在主节点中使用率很高,主节点也是名称节点,作业跟踪器和其中一个从属节点.其他任务跟踪器中的磁盘利用率为NIL或可忽略不计.我无法理解为什么磁盘I/O在任务跟踪器中如此之低.如果我做错了什么,有人可以请我朝正确的方向推?提前致谢.
这是我在WordCount.java文件中编写的示例代码段,用于创建UTF字符串并将其写入文件中 -
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
Path outFile;
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());
context.write(word, one);
outFile = new Path("./dummy"+ context.getTaskAttemptID());
FSDataOutputStream out = fs.create(outFile);
out.writeUTF("helloworld");
out.close();
fs.delete(outFile);
}
Run Code Online (Sandbox Code Playgroud)
好的。我一定是太蠢了,之前没有检查过。实际的问题是我的所有数据节点都没有真正运行。我重新格式化了名称节点,一切都恢复原状,我得到了 15-20% 的利用率,这对 WC 来说还不错。我将为 TestDFSIO 运行它,看看是否可以更多地利用该磁盘。
| 归档时间: |
|
| 查看次数: |
3402 次 |
| 最近记录: |