• Cassandra 之旅 (四) 配置集群


    cassandra配置集群还是比较简单的。步骤如下:

    • 打开cassandra.yaml文件,
    1. 修改cluster_name:'Test Cluster'为你想要的集群名字
    2. 去掉屏蔽num_tokens:256,这个值是计算负载用的,比如你集群有2个节点,都配的是256,那么两台机子就是平分压力各为50%
    3. 修改seeds:"localhost"为本机IP,这个seeds是个什么东西呢?比方说,一个数据中心有很多机器,你需要一个或多个来做分配,统筹,与其它数据中心交互,这个就是seed。IP与IP之间用逗号隔开。
    4. 把listen_address等默认配置为localhost的全改为本机IP
    5. 修改endpoint_snith为PropertyFileSnith
    • 打开conf\cassandra-topology.properties

    配置IP与数据中心的关系,如我的两台机器为

    16.158.81.54=dc1:rac1
    16.158.83.70=dc2:rac1
     
    #再把其它不需要的IP映射删除掉
     
    这里为什么用小写呢!因为我在使用CQLSH与DRIVE的时候,发现在不支持大小写,全会被转成小写。如果你配成DC1:RAC1的形式,那么在查询数据、插入数据时是会找不到节点。
    这里再说一下cassandra的一个数据模型与执行方式:
    比如你创建一个keyspace test, 在没有创建表的时候,test这个文件夹并不会创建在data目录下面。当你创建第一个表testtable完成后,那么cassandra服务就会在Data目录下面创建一个叫test的文件夹,在test文件夹下创建一个testtable文件夹。这个过程是不依赖于什么snitch呀,什么replication呀。所以基本上无论怎么配,创建、删除keyspace或table都能成功的,但插入数据、查询数据就不一样了。比如,你用DC1:1的NetworkTopologyStrategy创建好一个keyspace与table之后,想要插入数据,那么cassandra是怎么操作的呢?首先取到keyspace创建时所设置的DC, 这里设置为DC1,然后用DC1去配置文件中找映射,而这个步骤是区分大小写的,于是就会找不到DC1的IP映射,从而产生:“一个或多个节点不可用”的错误信息。
     
    • 确保所有cassandra节点配置都做了如上的更新操作,并删除所有节点中data目录, commitlog目录中的文件

    这里我为什么会说要把commitlog里的文件也删除呢?主要是这些文件中存了当前节点的token。有的人贪快可能会想,既然配置一样,把cassandra整个文件夹COPY到另一台机器上,启动就建好集群了。这时你启动多个COPY的服务之后,会发现有节点加入不了的,并可以在运行窗口看到关于token相同的错误,原因就是commitlog中存了token而且好像不能更新,cassandra官方给出的结决办法就是把commitlog中的文件删除,之后当cassandra服务启动的时候就会重新生成token了。

    • 逐一启动cassandra服务,节点就会自动加入集群了
    • 使用BIN目录下的nodetool并加参数 status查看建立集群是否成功

  • 相关阅读:
    linux Mint 安装apache2
    linux Mint 安装tomcat8
    linux Mint wine安装qq,桌面快捷键配置
    linux Mint mysql 安装
    卸载linux Mint自带jdk并安装最新jdk
    linux Mint截图软件 Shutter
    linux git安装及配置(包括更新)
    linux安装wine
    百度地图用ip获取当前位置的经纬度(高精度)
    mysql 索引和视图
  • 原文地址:https://www.cnblogs.com/modestmt/p/3051612.html
Copyright © 2020-2023  润新知