gpt4 book ai didi

java - Hadoop 的 TaskTracker 是否为每个任务生成一个新的 JVM?

转载 作者:可可西里 更新时间:2023-11-01 16:33:07 26 4
gpt4 key购买 nike

根据 TaskTracker Hadoop Wiki page ,TaskTracker 生成一个新的 JVM 来完成它正在跟踪的实际工作。然而,页面中有一个拼写错误,不清楚 TaskTracker 是否为它正在跟踪的所有任务生成一个 JVM,或者 TaskTracker 是否为每个任务生成一个 JVM 它正在跟踪。我问的原因是因为我很好奇使用静态变量来保存作业级变量是否比简单地在 map 函数中实例化变量有任何好处。

最佳答案

它为每个任务生成一个 JVM。

您可以通过设置此配置参数来重用 jvms:mapred.job.reuse.jvm.num.tasks,但这只是为了减少 JVM 启动时间。从功能上讲,它仍然会重建类,所以这对您来说无关紧要。

如果变量比较小,比如字符串之类的,你不必太担心。如果它更大,你就可以开始担心了!例如,从分布式缓存中将一个大文件加载到一个 Map 中,每个任务一次,总的来说可能是昂贵的。您可以通过让更少的 map task 为每个任务做更多的工作来缓解这种情况。我什至做过疯狂的事情,比如在 Redis 或 ZooKeeper 中存储共享变量。

关于java - Hadoop 的 TaskTracker 是否为每个任务生成一个新的 JVM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20101725/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com