【发布时间】:2014-11-01 18:08:07
【问题描述】:
我有一个关于 Hadoop Map reduce 的查询。我们有 3 个集群,每个集群有 5 个节点。现在,如果我编写了一个 Map Reduce 程序并想运行它来处理所有 3 个集群上的数据。我需要仅在 1 个节点上运行此 Map reduce 程序还是需要在所有节点上运行 map reduce 程序?最后它需要处理我的 3 个集群上的所有数据。
【问题讨论】:
我有一个关于 Hadoop Map reduce 的查询。我们有 3 个集群,每个集群有 5 个节点。现在,如果我编写了一个 Map Reduce 程序并想运行它来处理所有 3 个集群上的数据。我需要仅在 1 个节点上运行此 Map reduce 程序还是需要在所有节点上运行 map reduce 程序?最后它需要处理我的 3 个集群上的所有数据。
【问题讨论】:
您只需在一个节点上运行您的 MR 程序,MR 框架将在集群中的所有从节点上执行它。
MR 框架的一个优点是执行基于数据局部性,计算移动到数据存在的节点。由于您有 3 个集群,因此为了获得良好的性能,最好在所有这三个集群上部署或运行您的应用程序。
如果您的集群在同一个网络中,也可以在 1 个集群中处理这 3 个集群的数据。您不应该这样做,因为它会降低性能。其他集群中的数据需要带到实际执行发生的集群。这可以使用 HDFS URI 来实现
Eg : Cluster A hdfs URI : hdfs://nnhost-clusterA:8020/inputfile
Cluster B HDFS URI : hdfs://nnhost-clusterB:8020/input
从集群 C 中,您可以通过提供完整的 HDFS URI 访问上述两个集群 A&B 中的数据。
【讨论】: