2016-07-04 336 views
1

我在Amazon EMR上运行其公有DNS的Spark,例如23.21.40.15Apache Spark通过跨群集访问hdfs中的数据

现在我在这个群集上执行我的Spark Jar &我想将我的Spark Job的输出写入其公有DNS为29.45.56.72的其他Amazon EMR HDFS。

我能够访问我自己的群集HDFS,即23.21.40.15,但我无法写入群集29.45.56.72

  • 我需要做什么才能让我的火花作业可以访问跨群集 HDFS?
  • 如果可能的话,任何人都可以共享此示例代码?
+0

您可以在第一个群集上写出来,然后使用distCp将输出移动到第二个群集? –

+0

这是一种间接的方式,我想......但如果我的目的地是第二个集群?我的意思是如果我想将它写入第一个集群的第二个集群的hdfs? – Akki

回答

1

当你在火花的工作设置输出目录,你可以设置凭据访问这样的:

hdfs://username:[email protected]:port/pathToFolder 

PD:你不应该写群集的IP地址在公众质疑;)

+1

我为样本写了IP ...他们不是真正的IP ...任何替代方式,而不是指定用户名和密码?如果有2个亚马逊EMR集群参与,我该怎么做? – Akki

+0

如果它们都是EMR集群,那么您可能能够设置IAM角色以允许它们之间的EMR访问,尽管在理论上它似乎已经被允许,但您可能还需要公开端口以供安全组使用来访问这两位主人的。 – Kristian

+0

明白了......我在N.California创建了我的第二个群集,而我的第一个群集在N.Virginia中......现在我可以访问hdfs了......有什么方法可以访问2个EMR群集,区域,即1个群集在N.Virginia&其他在N.California? – Akki