日期:2014-05-16  浏览次数:20537 次

搭建cassandra集群简要
cassandra是facebook开源的著名nosql数据库。因为它和google的big talbe及amazon的dynamo有着千丝万缕的联系,一时好奇,搭建了下简单的双机环境。

cassandra是由java写的,所以需要安装openjdk
如果客户端程序使用cassandra,可以用facebook的thrift这个高性能二进制中间件。

假设有两个客户端:
10.1.1.11/24和10.1.1/12/24

解压之后,创建文件夹,并使之可以被当前用户访问(chown -R)
mkdir -p /var/log/cassandra
mkdir -p /var/lib/cassandra


编辑conf/cassandra.yaml文件
seed_provider:
    # Addresses of hosts that are deemed contact points.
    # Cassandra nodes use this list of hosts to find each other and learn
    # the topology of the ring.  You must change this if you are running
    # multiple nodes!
    - class_name: org.apache.cassandra.locator.SimpleSeedProvider
      parameters:
          # seeds is actually a comma-delimited list of addresses.
          # Ex: "<ip1>,<ip2>,<ip3>"
          - seeds: "127.0.0.1, 10.1.1.11, 10.1.1.12" #这里写上性能比较稳定的seed服务器

listen_address: 10.1.1.12 #可以空着,表示本机IP地址


rpc_address: 0.0.0.0 #允许任何地址的程序前来访问本数据库

这里没有硬性规定seed应该是谁。普通cassandra启动的时候都会先去连接seed,看看有其它node是否存活

之后可以启动cassandra
cassandra -f


查看一下集群的状态
bin/nodetool -host 10.1.1.11 -p 7199 ring


使用客户端访问cassandra集群
bin/cassandra-cli -h 127.0.0.1 -p 9160


创建一个简单的keyspace并添加数据,查看数据
  [default@unknown] create keyspace Keyspace1;
  ece86bde-dc55-11df-8240-e700f669bcfc
  [default@unknown] use Keyspace1;
  Authenticated to keyspace: Keyspace1
  [default@Keyspace1] create column family Users with comparator=UTF8Type and default_validation_class=UTF8Type and key_validation_class=UTF8Type;
  737c7a71-dc56-11df-8240-e700f669bcfc

  [default@KS1] set Users[jsmith][first] = 'John';
  Value inserted.
  [default@KS1] set Users[jsmith][last] = 'Smith';
  Value inserted.
  [default@KS1] set Users[jsmith][age] = long(42);
  Value inserted.
  [default@KS1] get Users[jsmith];


至此简单集群搭建成功,详细就翻翻apache cassandra的文档吧。