我们计划在AWS EC2实例中安装Cassandra。已安装单节点群集。如果我们需要安装多节点集群,请帮助我们解决以下问题。
在默认单节点安装期间,我们使用Public DNS通过Putty登录AWS实例,并通过CLI安装Cassandra。如何在AWS实例中为Cassandra添加新节点以使其成为多节点集群?
如何获取/确定其他Cassandra节点的IP地址? AWS是否有任何功能可以找到它?例如,AWS Console或CLI命令?
在每个博客中,它都表示将相同的YAML文件复制到其他节点。如何单独登录每个节点并执行此操作?
在EMR或EC2中安装Cassandra有什么不同吗?
答案 0 :(得分:2)
我在EC2上做过这件事(不能告诉你关于EMR的任何事情),所以我绝对可以从这个角度帮助你。我们使用自己的自定义工具来配置AWS节点,然后使用Chef部署。
关于Chef的好处是,您的yaml和其他配置将始终一致地部署到群集中的每个节点。然后我们会有一个"包装食谱"围绕我们的基础食谱(基本食谱安装Cassandra,禁用交换,并设置一些其他依赖于操作系统的设置),我们将放置所有设置。包装器菜谱还将检索节点的IP地址,并使用它来设置配置中的相应字段。
棘手的部分是种子逻辑。我们总是构建第一个节点,然后等待足够长的时间来为它分配IP。 Chef cookbook有逻辑将当前IP添加到种子列表中(如果它是空的)。一旦我们获得了初始种子IP,我们就可以对包装器食谱进行更改,将其用作种子列表。
您肯定希望使用某种部署工具。通过CLI安装每个都是困难的方法,并且容易出错。希望有所帮助。