如何配置Cassandra在Azure中运行?
根据下面链接的指南,您应该为每个Cassandra节点创建一个Cloud Service,并在每个Cloud Service上安装一个VM。这些VM应位于同一虚拟网络上。 http://blog.metricshub.com/2012/12/27/running-cassandra-on-azure-step-by-step-gotcha-by-gotcha/
这仍然是推荐的方式吗?
在此设置中,每个VM都使用来自Cloud Service的公共IP进行公开,并且它们还具有可在虚拟网络上使用的内部IP。
您应该如何在Cassandra yaml配置文件中设置以下值?联系群集的客户端与节点不在同一虚拟网络上。集群只包含一个数据中心。
内部IP,外部IP,0.0.0.0,本地主机等应该是什么?
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: ??
listen_address: ??
broadcast_address: ??
broadcast_rpc_address: ??
rpc_address: ??
endpoint_snitch: (SimpleSnitch?)
答案 0 :(得分:1)
DataStax与Microsoft合作制作本指南,用于在Azure上设置Cassandra: https://academy.datastax.com/content/deploying-datastax-enterprise-microsoft-azure-cloud
在本文档中,他们建议每个云服务使用更多VM(节点)。 Azure每个云服务最多支持50个VM。
所有VM应位于相同的可用性集中,以确保它们位于不同的更新域中。 Azure将以循环方式自动将一个可用性集中的新节点分配给5个更新域中的一个。应通过使用GossipingPropertyFileSnitch并在cassandra-rackdc.properties文件中指定机架/更新域,将这些更新域映射到Cassandra中的Rack概念。 Azure分配的更新域可以位于Azure管理控制台中的云服务实例概述下。
所有虚拟机应位于Azure中的同一VNet上,以使节点能够相互通信。 如果您的客户端不在此VNet上,则需要为每个VM分配实例级公共ips。请参阅本指南: https://azure.microsoft.com/documentation/articles/virtual-networks-instance-level-public-ip/ 将公共ips分配给VM时,需要为Cassandra添加某种安全性。用户身份验证和加密。
目前,2.0分支是推荐用于生产的分支。在所述设置中,2.0的cassandra.yaml文件的设置是:
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- {seeds: '<<INTERNAL VNET IPS FOR THE SEED NODES>>'}
listen_address: <<INTERNAL VNET IP FOR THE CURRENT NODE>>
broadcast_address: <<PUBLIC UP FOR THE CURRENT NODE>>
broadcast_rpc_address: <<NOT AVAILABLE IN Cassandra 2.0>>
rpc_address: 0.0.0.0
endpoint_snitch: org.apache.cassandra.locator.GossipingPropertyFileSnitch
答案 1 :(得分:0)
这一切都取决于你的Cassandra版本。 v2的配置与v3不同。通常情况下,不应该使用Azure的经典部署模式来设置Cassandra,因为它始终是面向Internet的,这会危及安全性。只有需要Cassandra数据的VM才能连接到它。
基本上,如果要构建Cassandra集群,则不必更改yaml配置,只允许它监听以太网不正确。 这样的配置是:
# listen_address:
listen_interface: eth0
如果您需要更多信息,此blog post描述了在Azure上设置Cassandra所需的全部内容。