如何在 hadoop 配置中使用亚马逊实例的 public IP?

How to use amazon instances' public IPs in hadoop configuration?

我试图通过使用亚马逊实例的 public IP 而不是它们的网络内 IP 来配置 Hadoop,因为我的目标是创建一个混合集群,即云 + 本地机器集群。尽管所有ssh设置都很好,但是当使用amazon public IPs时Hadoop仍然无法连接(datanodes找不到namenode)。我在 hbase 的 zookeeper 配置中使用了 amazon 实例的 public IP 并且它正确连接到它。那么为什么 HBase 连接而 Hadoop 不连接呢?

kafka 也有同样的问题。

删除 .ssh/known_hosts 文件并尝试

我找到了答案。

诀窍是在“/etc/hosts”文件中不要有任何关于亚马逊 EC2 实例的条目,并且“~/.ssh/config”文件应该只包含以下设置它涉及亚马逊实例:

Host ec2-x-x-x-x.compute-1.amazonaws.com
    StrictHostKeyChecking no
    IdentityFile /path to private key

这里ec2-x-x-x-x.compute-1.amazonaws.com是亚马逊实例的publicIP