在筛选一些Hadoop指南时,我无法找到问题的答案:我通过客户端计算机上的shell脚本一次性提交各种Hadoop作业(最多200个)。每个作业都是通过JAR(非常大,大约150 MB)启动的。在提交作业之后,客户端计算机具有非常高的CPU负载(每个核心100%)并且RAM变得非常快。这样,客户端就不再可用了。我认为每个作业的计算完全在Hadoop框架内完成,并且只有一些状态信息在作业运行时在集群和客户端之间交换。
那么,为什么客户完全伸展了?我是以错误的方式承诺Hadoop工作吗?每个JAR都太大了吗?
提前致谢。
答案 0 :(得分:2)
这不是关于罐子的。客户端正在计算InputSplits
。
因此,当每个作业具有大量输入文件时,客户端计算机可能会承受很大的负担。
但我想在提交200个作业时,jobtracker上的RPC Handler存在一些问题。 jobtracker上有多少个RPC处理程序处于活动状态?
无论如何,我会一次批量提交10到20份工作并等待完成。我猜你有默认的FIFO调度程序?因此,您无法一次性提交所有200个工作岗位。