我有一个关于Hadoop Map reduce的查询。我们有3个集群,每个集群有5个节点。现在,如果我写了一个Map Reduce计划&想要运行它来处理所有3个集群上的数据。我是否只需要在1个节点上运行此Map reduce程序,还是需要在所有节点上运行map reduce程序?最后,它需要处理我的3个集群上的所有数据。
答案 0 :(得分:0)
您只需要在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中的数据。