我在Mesos 0.14之上运行Hadoop 1.2.1。我的目标是记录输入数据大小、运行时间、cpu使用情况、内存使用情况等,以便以后进行优化。除了数据大小之外,所有这些都是使用Sigar获得的。
是否有任何方法可以获取正在运行的任何作业的输入数据大小?
例如,当我运行hadoop示例的terasort时,我需要在作业实际运行之前获得teragen生成的数据大小。如果我正在运行Wordcount示例,我需要获取Wordcount输入文件的大小。我需要自动获取数据大小,因为我以后无法知道在这个框架内会运行什么作业。
我正在使用Java编写一些mesos库代码。最好,我想在MesosExecutor类中获取数据大小。出于某种原因,升级Hadoop/Mesos不是一种选择。
如有任何建议或相关API将不胜感激。非常感谢。
hadoop fs -dus
是否满足您的要求?在将作业提交给hadoop之前,计算输入文件大小,并将其作为params传递给执行器。