我正在使用一个由我自己编写的vagrant配置脚本在我提供的本地virtualbox中安装cloudera集群。供应者在这里:
https://github.com/theclue/cdh5-vagrant
在我的本地环境中一切正常,但是现在我面临着如何添加ec2提供程序的问题。由于provisioner烘焙了一个经过大量手动调优的cloudera集群,因此使用whirr来完成任务是没有意义的。我会努力抓住我心爱的流浪汉。
问题是网络。群集的每个节点在子网10.10.50中共享一个专用ip。*-这确保了节点可以相互通信,并且不能从外部访问。
然后,我为每个节点在/etc/hosts文件中硬编码这些私有ip。每个节点的文件都是相同的,类似于:
10.10.50.5 cdh主机10.10.50.6 cdh-node1 10.10.50.7 cdh-node2
在配置阶段编辑的所有hadoop配置文件中,我都使用了fqhn。
另外,masternode还有第二个网络接口桥接到dhcp中的真实lan,因此使用192.168.1形式的公共ip。*这是通向虚拟集群外部世界的门。
但是当我构建ec2示例时,我事先既不知道ips也不知道fqhn,而且我不认为我可以设置机器来拥有私有网络接口。
在这种情况下,设置网络命名的最佳方法是什么?
1条答案
按热度按时间1hdlvixo1#
ec2示例可以使用示例元数据服务检查自己的ip(
curl -s http://169.254.165.254/latest/meta-data/local-ipv4
)您还可以设置专用网络接口(enis)。另一种方法是使用标记和awscli来查询集群配置。为了避免所有这些复杂性,请考虑使用aws elastic map reduce来配置hadoop集群。
请参见:
http://docs.aws.amazon.com/awsec2/latest/userguide/aesdg-chapter-instancedata.htmlhttphttp://docs.aws.amazon.com/awsec2/latest/userguide/using-eni。htmlhttps://aws.amazon.com/elasticmapreduce/