我正在寻找一个磁盘密集型的Hadoop应用程序,以测试Hadoop中的I/O活动,但我找不到任何使磁盘利用率保持在50%以上的应用程序,或者任何实际上使磁盘忙碌的应用程序。我尝试了randomwriter,但令人惊讶的是它并不是磁盘I/O密集型的。
因此,我编写了一个小程序,在Mapper中创建一个文件并将一些文本写入其中。这个应用程序工作得很好,但是只有在主节点(也是名称节点、作业跟踪器和其中一个从节点)中利用率很高。其他任务跟踪器中的磁盘利用率为零或可忽略。我无法理解为什么任务跟踪器中的磁盘I/O如此低。如果我做错了什么,能否请有经验的人给我指点一下?提前感谢您。
这是我在WordCount.java文件中编写的样本代码片段,用于创建和写入UTF字符串到文件中-
因此,我编写了一个小程序,在Mapper中创建一个文件并将一些文本写入其中。这个应用程序工作得很好,但是只有在主节点(也是名称节点、作业跟踪器和其中一个从节点)中利用率很高。其他任务跟踪器中的磁盘利用率为零或可忽略。我无法理解为什么任务跟踪器中的磁盘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);
}