整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

6.5.4. 任务JVM重用

hadoop 小红牛 8℃ 0评论

Hadoop在它们自己的Java虚拟机上运行任务,以区别于其他正在运行的任务。为每个任务启动一个新的JVM耗时约1秒钟,对运行时间在1分钟左右的作业而言,这个额外消耗是微不足道的。但是,有大量超短任务(通常是map任务)的作业或初始化时间长的作业,它们如果能对后续任务重用JVM,就可以体现出性能上的优势。

启用任务重用JVM后,任务不会同时运行在一个JVM上。JVM顺序运行 各个任务。然而,tasktracker可以一次性运行多个任务,但都是在独立的 JVM上运行的。控制tasktrackermap任务槽数和reduce任务槽数的属性。

控制任务JVM重用的属性是mapred.job.reuse.jvm.num.tasks,它指定给定作业每个JVM运行的任务的最大数,默认值为1(参见表6-5)map 任务和reduce任务间没有什么不同,但不同作业的任务总是在独立的JVM 内运行。JobConf中的setNumTasksToExecuteperJvm()方法也可以用于设置这个属性。

6-5.任务JVM重用的属性

属性名称

类型

默认值

描述

mapred.job.reuse. jvm.num.tasks

int

1

在一个tasktracker上,对于给定的作业的每个JVM上可以运行的任务最大数。-1表示无限制,即同一个JVM可以被该作业的所有任务使用

 

通过充分利用HotSpot JVM所用的运行时优化,计算密集型任务也可以受益于任务JVM重用机制。在运行一段时间后,HotSpot JVM构建足够多的信息来检测代码中的性能关键部分并将热点部分的Java字节码动态转换成本地机器码。这对运行时间长的过程很有效,但只运行几秒钟或几分钟的 JVM并不能充分获得HotSpot带来的好处。在这些情况下,值得考虑启用 任务JVM重用功能。



转载请注明:全栈大数据 » 6.5.4. 任务JVM重用

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址