我尝试使用亚马逊实例的公共 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。