2014-11-01 65 views
0

我有一个关于Hadoop Map reduce的查询。我们有3个群集,每个群集有5个节点。现在,如果我编写了一个Map Reduce程序&想运行它来处理所有3个群集上的数据。我是否需要在1个节点上运行此Map Reduce程序,还是需要在所有节点上运行Map Reduce程序?最后它需要处理我的3个群集上的所有数据。Hadoop Map减少多节点群集上的程序

回答

0

您只需要运行您的MR程序只有一个节点,MR框架将在群集中的所有从节点中执行它。

MR框架的一个优势是执行基于数据局部性,Computation移动到数据存在的节点。由于您有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访问数据在上述两个集群甲&乙来实现。