![如何在 Hadoop 配置中使用亚马逊实例的公共 IP?](https://linux22.com/image/1133268/%E5%A6%82%E4%BD%95%E5%9C%A8%20Hadoop%20%E9%85%8D%E7%BD%AE%E4%B8%AD%E4%BD%BF%E7%94%A8%E4%BA%9A%E9%A9%AC%E9%80%8A%E5%AE%9E%E4%BE%8B%E7%9A%84%E5%85%AC%E5%85%B1%20IP%EF%BC%9F.png)
我尝试使用亚马逊实例的公共 IP 而不是其网络内 IP 来配置 Hadoop,因为我的目标是创建一个混合集群,即云 + 本地机器集群。尽管所有 ssh 设置都很好,但当使用亚马逊公共 IP 时,Hadoop 仍然无法连接(数据节点找不到名称节点)。我在 hbase 的 zookeeper 配置中使用了亚马逊实例的公共 IP,并且它正确连接到它。那么为什么 HBase 可以连接而 Hadoop 却不能呢?
kafka 也存在同样的问题。
答案1
我找到答案了。
诀窍是不要在“/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
是亚马逊实例的公共 IP。