hadoop:单节点与集群性能之比较

kmynzznz  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(475)

我在一个有3个节点(1个主节点和2个从节点)的hadoop集群上按顺序运行3个mapreduce作业(其中一个的输出是另一个的输入)。
显然,单个作业在单节点集群上完成所花费的总时间比上面的要少很多。可能的原因是什么?是网络延迟吗?它在100mbps以太网上运行。如果我增加节点的数量会有帮助吗?
我使用的是hadoop流媒体,我的代码是python2.7。

vx6bjr1n

vx6bjr1n1#

mapreduce并不是真的要处理那么小的输入数据集。mapreduce框架必须确定哪些节点将运行任务,然后启动jvm来运行每个单独的map和reduce任务(任务的数量取决于数据集的大小)。通常有几十秒的延迟。在节点之间传送非本地数据也很昂贵,因为它需要通过有线传输数据。对于如此小的数据集,在分布式集群中设置mapreduce作业的开销可能高于作业本身的运行时。在单个节点上,您只看到在本地计算机上启动任务的开销,而不必通过网络进行任何数据复制,这就是为什么作业在单个计算机上完成得更快的原因。如果您有多个千兆字节的文件,您将在多台计算机上看到更好的性能。

相关问题