JVM Reuse MapReduce 2.0 YARN



我想用Hadoop处理由小文件创建的大量输入分割(大约50,000个)。但是,我只有256个容器可用来处理它。

作业本身使用大量的CPU,但相当少的内存。

我正在使用Hadoop 2.3,并且正在查看MapReduce 1.0的JVM重用特性

我也读过关于优步任务,但它看起来不像一样的东西-或者我对JVM重用有不同的理解。

因为我有很多小文件(并且每个文件生成一个inputSplit),我想为每个容器创建一个JVM机器,并在每个已经分配的JVM上运行尽可能多的顺序Map任务。这将减少JVM分配时间开销。

我猜对于每个输入分割将分配一个新的映射器,从而分配一个新的JVM,我是对的吗?

我怎么能在YARN做这样的事情?

哦,我知道我也可以使用压缩来增加inputSplit的大小,但对于这个确切的应用程序,这是不可行的。

最诚挚的问候,马可Lotz

是。在yarn中,任务在专用JVM中运行。与mapreduce 1不同的是,它不支持JVM重用。

然而,在mapreduce 1中,控制任务JVM重用的属性是mapred.job.reuse.jvm.num.tasks。它为每个启动的JVM指定给定作业要运行的最大任务数,默认情况下是1。这个答案应该能让您更好地了解1.

中的JVM重用。

相关内容

  • 没有找到相关文章

最新更新