• Cassandra -- Cassandra 3.0版本安装


    ============================================================

    服务器信息

    搭建三节点的Cassandra群集:

    SERVER1:	192.168.199.171
    SERVER2:	192.168.199.172
    SERVER3:	192.168.199.172

    ============================================================

    下载依赖包

    cassandra下载地址:https://cassandra.apache.org/download/
    JDK 1.8.0_201下载地址:https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz
    Python 2.7.13下载地址:https://www.python.org/downloads/release/python-2713/

    ============================================================

    配设JAVA环境

    下载java安装包,解压到/usr/java18目录,然后在/etc/profile文件中追加下面代码:

    #set java environment
    JAVA_HOME=/usr/java18
    JRE_HOME=/usr/java18/jre
    CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
    export JAVA_HOME JRE_HOME CLASS_PATH PATH

    使用下面命令刷新环境变量:

    ## 刷新环境配置
    source /etc/profile

    检查JAVA是否安装正确:

    ## 查看java版本
    java -version
    
    ## 查看java路径
    echo $JAVA_HOME

    ============================================================

    安装Cassandra

    ## 创建安装目录
    mkdir -p /export/servers/cassandra/ /export/data/cassandra/
    
    ## 创建用户组和用户
    groupadd cassandra
    useradd cassandra -g cassandra
    
    ## 将cassandra安装包解压到/export/servers/cassandra/
    
    ## 修改文件目录权限
    chown -R cassandra:cassandra /export/servers/cassandra/ /export/data/cassandra/

    ============================================================

    配置Cassandra

    修改/export/servers/cassandra/conf/cassandra.yaml文件的下面属性

    ## 群集名称
    cluster_name: 'cluster1'

      ## 数据验证

     authenticator: PasswordAuthenticator
      authorizer: CassandraAuthorizer

    ## 数据目录
    data_file_directories:
        - /export/data/cassandra/data
    
    ## commitlog目录
    commitlog_directory: /export/data/cassandra/commitlog
    
    ## saved_caches目录
    saved_caches_directory: /export/data/cassandra/saved_caches
    
    ##  设置为第一个启动的节点地址
    ##  种子节点不做引导,它负责处理现有集群中新加入的节点。对于新的集群,引导处理会跳过种子节点。
    seeds: "192.168.199.171"
    
    ## 将监听地址设置为本地IP
    listen_address: 192.168.199.171
    
    ## 将RPC地址设置为本地IP
    rpc_address: 192.168.199.171
    
    ## 程序访问端口,默认9042
    native_transport_port: 9042

    ## endpoint_snitch属性
    endpoint_snitch: GossipingPropertyFileSnitch

    endpoint_snitch参数选项:

    GossipingPropertyFileSnitch
    这应该是你的生产使用的。本地节点的机架和数据中心在cassandra-rackdc.properties中定义,并通过gossip传播到其他节点。如果存在cassandra-topology.properties,它将用作回退,从而允许从PropertyFileSnitch进行迁移。
    
    SimpleSnitch
    将战略顺序视为接近度。这可以在禁用读修复时提高缓存位置。仅适用于单数据中心部署。
    
    PropertyFileSnitch
    接近性由机架和数据中心决定,这些在cassandra-topology.properties中显式配置。
    
    Ec2Snitch
    从EC2 API加载当前区域和可用区域信息。当前区域被视为数据中心,可用区域被视为机架。仅使用私有IP,因此这不会在多个区域工作。
    
    Ec2MultiRegionSnitch
    使用公共IP作为broadcast_address以允许跨区域连接(因此,您应该将seed地址设置为公共IP)。您将需要打开公共IP防火墙上的storage_port或ssl_storage_port(对于区域内流量,Cassandra将在建立连接后切换到专用IP)。
    
    RackInferringSnitch
    接近性由机架和数据中心确定,假定它们分别对应于每个节点的IP地址的第3和第2个八位字节。除非这种情况符合您的部署约定,否则这最好用作编写自定义Snitch类的示例
    View Code

    修改/export/servers/cassandra/conf/cassandra-topology.properties文件内容:

    ## 设置服务器所在机架
    192.168.199.171=DC1:RAC1
    192.168.199.172=DC1:RAC1
    192.168.199.173=DC1:RAC1
    
    ## 下面为默认
    # default for unknown nodes
    default=DC1:r1
    
    # Native IPv6 is supported, however you must escape the colon in the IPv6 Address
    # Also be sure to comment out JVM_OPTS="$JVM_OPTS -Djava.net.preferIPv4Stack=true"
    # in cassandra-env.sh
    fe80:0:0:0:202:b3ff:fe1e:8329=DC1:RAC3

    ============================================================

    启动服务

    以此在171/172/173上启动服务

    ## 切换到cassandra用户
    su cassandra
    
    ## 启动服务
    /export/servers/cassandra/bin/cassandra >/export/data/cassandra/start_server.log

    ============================================================

    检查群集

    ## 查看群集节点状态
    /export/servers/cassandra/bin/nodetool status
    
    
    ## 登录群集171节点
    ## cqlsh.py仅支持python2.7版本
    python27 /export/servers/cassandra/bin/cqlsh.py 192.168.199.171
    
    
    ## 查看命名空间
    describe  keyspaces;
    
    
    ## 查看群集版本
    select release_version from System.local;

    ============================================================

    替换群集节点

    假设群集运行一段时间后,服务器192.169.199.172因为硬件故障导致数据丢失,修复后仍使用该IP加入群集,操作如下:

    ## 删除原服务器上数据
    /bin/rm -rf /export/data/cassandra/*
    
    
    ## 切换到cassandra用户
    su cassandra
    
    ## 使用cassandra.replace_address配置启动
    /export/servers/cassandra/bin/cassandra -Dcassandra.replace_address='192.168.199.173' >/export/data/cassandra/start_server.log

    等待一段时间后,数据会自动同步到新节点上

    ============================================================

    删除群集节点

    删除群集节点时,需要根据要删除节点的状态决定如何删除。

    ## 删除在线群集节点(在该节点上运行)
    nodetool decommission
    
    ## 删除离线群集节点(在任意存活节点运行)
    nodetool removenode node_guid
  • 相关阅读:
    【Java异常】idea 报错:无效的目标发行版:17 的解决办法
    springboot实现MyBatis分页
    已解决No converter for XXX with preset ContentType ‘application/vnd.msexcel;charset=utf8‘
    mybatis if标签判断boolean等于true或者flase
    Java实现Excel导入和导出
    文件上传报错:Current request is not a multipart request的解决办法
    二维数组内的元素获取交集
    .Net Core MemoryCache 缓存
    SQL Server调用OLE对象
    SQL Server中使用正则表达式
  • 原文地址:https://www.cnblogs.com/gaogao67/p/10428581.html
Copyright © 2020-2023  润新知