第一天,浅玩 Cassandra 集群配置及启动

官方文档的帮助下,在一个节点上安装和启动Cassandra其实还是很简单的。但是在集群配置的时候,我这个新手看官方文档被卡住了,找了好多资料才搞明白。在这里记录一下:

第一次浅玩,至少要理解这两个概念:

  • Seeds, 这段话说得非常清楚,本文后面还准备了个小实验来理解这个东东。Cassandra没有传统集群的中心节点,各个节点地位都是平等的,通过Gossip协议维持集群中的节点信息。为了使集群中的各节点在启动时能发现其他节点,需要指定种子节点(seeds),各节点都先和种子节点通信,通过种子节点获取其他节点列表,然后和其他节点通信。种子节点可以指定多个,通过在 conf/ cassandra.yaml中的seeds属性配置。”(引用自:http://dongxicheng.org/nosql/cassandra-install/ )
  • Listen_address, 其它节点与自己通信的IP,这里必须设置为自己的主机IP。

开始动手:

  1.  首先在所有的节点上都安装上Cassandra
  2. 分别在每个节点上配置Cassandra.yaml:
    • Seeds, 一个集群里面找几个节点作为Seeds。官方推荐每个节点都设置成一样的。这里master1是我其中一个节点的hostname,别被误导。记住Cassandra没有中心节点
    • Listen_address, 每个节点设置成自己的ip地址
  3. 依次启动节点
    • 首先必须先把Seeds 节点先启动起来
    • 然后启动非Seeds节点
    • 这里有个坑,注意,要一个节点启动好了再去启动另一个节点。如果多个节点同时启动,多半要报错。不要图快。
  4. 在任意一个节点上运行 nodetool status,看到如下结果集群就算启动起来了

 

 接下来做几个关于Seeds的小实验,(步骤是连续的,观察结果的方法是在任意一个节点上运行nodetool status)

  1. 当集群起来后,kill 掉 Seeds上的 Cassandra进程。观察结果:集群照常运行,Seeds节点状态变成 DN (Down and Normal)
  2. 再去Kill掉一个非Seeds的节点。观察结果:集群照常运行,kill掉的节点状态编程DN
  3. 在没有seeds的情况下,启动非Seeds节点。观察结果:启动失败
  4. 在没有seeds的情况下,启动Seeds节点。观察结果:启动成功
  5. Seeds节点启动后,再去启动第3步的非Seeds节点。观察结果:启动成功

 暂到这里,高级功能还很多,慢慢玩。

 

    

posted @ 2016-12-21 21:30  wbzhang  阅读(1252)  评论(0编辑  收藏  举报