文档章节

CentOS7 部署 cassandra 集群

俊赛潘安-才比管乐
 俊赛潘安-才比管乐
发布于 06/29 19:31
字数 595
阅读 41
收藏 4

环境

主机名Public IPCluster IP操作系统Cassandra 版本
cassandra10110.0.4.10110.10.10.101CentOS7.63.0.18
cassandra10210.0.4.10210.10.10.102CentOS7.63.0.18
cassandra10310.0.4.10310.10.10.103CentOS7.63.0.18

各节点初始配置

  • 关闭 selinux、防火墙
  • 部署 java 运行环境
  • 创建 cassandra 用户
    useradd -m cassandra
    
  • 创建数据目录
    cd /var/lib
    mkdir -p cassandra/data1 #多个存储磁盘可以创建多个数据存储目录
    mkdir -p cassandra/hints #建议与数据磁盘分开
    mkdir -p cassandra/commitlog #建议与数据磁盘分开
    mkdir -p cassandra/saved_caches #建议与数据磁盘分开
    chown -R cassandra.cassandra cassandra/
    
  • 创建日志目录
    cd /var/log
    mkdir -p cassandra
    chown -R cassandra.cassandra cassandra/
    
  • 创建 pid 目录
    cd /run
    mkdir -p cassandra
    chown -R cassandra.cassandra cassandra/
    
  • 增加 sysctl.conf 配置,执行 sysctl -p 生效
    vm.max_map_count=1048576
    
  • 安装 jemalloc (推荐)
    yum install jemalloc
    
  • 创建文件 /usr/lib/systemd/system/cassandra.service,内容如下
    [Unit]
    Description=Cassandra
    Requires=network.service
    After=network.service
    [Service]
    Type=forking
    WorkingDirectory=/opt/cassandra
    Environment=JAVA_HOME=/opt/jre
    Environment=LOCAL_JMX=no
    PIDFile=/run/cassandra/cassandra.pid
    ExecStart=/opt/cassandra/bin/cassandra -p /run/cassandra/cassandra.pid
    User=cassandra
    Group=cassandra
    LimitNOFILE=65536
    LimitNPROC=65536
    LimitMEMLOCK=infinity
    SuccessExitStatus=143
    [Install]
    WantedBy=multi-user.target
    

部署 Cassandra

  • 登陆 cassandra101,下载 cassandra,解压至 /opt/ 下
  • 修改 /opt/cassandra/conf/cassandra.yaml
    cluster_name: CassandraCluster
    hists_directory: /var/lib/cassandra/hints
    data_file_directories:
        - /var/lib/cassandra/data1
    commitlog_directory: /var/lib/cassandra/commitlog
    saved_caches_directory: /var/lib/cassandra/saved_caches
    seed_provider:
        - class_name: org.apache.cassandra.locator.SimpleSeedProvider
          parameters:
              - seeds: "10.10.10.101,10.10.10.102,10.10.10.103"
    listen_address: 10.10.10.101
    rpc_address: 10.0.4.101
    
  • 修改 /opt/cassandra/conf/logback.xml
    sed -i 's,\${cassandra.logdir},/var/log,' /opt/cassandra/conf/logback.xml
    
  • 修改 /opt/cassandra/conf/cassandra-env.sh
    # 这里我暂时关闭了 jmx 远程验证,否则需要手动创建 jmxremote.password 文件
    sed -i 's/jmxremote.authenticate=true/jmxremote.authenticate=false/' /opt/cassandra/conf/cassandra-env.sh
    
  • 修改 cassandra 目录的权限
    chown -R cassandra.cassandra cassandra/
    
  • 打包 cassandra 目录,部署到 cassandra102 和 cassandra103 的 /opt 下,并修改 cassandra.yaml
    # cassandra102
    listen_address: 10.10.10.102
    rpc_address: 10.0.4.102
    # cassandra103
    listen_address: 10.10.10.103
    rpc_address: 10.0.4.103
    

启动集群

  • 启动 cassandra 服务
    
    systemctl daemon-reload
    systemctl start cassandra
    

简单使用

  • cqlsh 连接数据库
    /opt/cassandra/bin/cqlsh 10.0.4.101 9042
    cqlsh> desc keyspaces;
    

注意事项

  • 创建包含复合主键的表
    create table t1 (
        c1 text,
        c2 text,
        c3 text,
        c4 text,
        c5 text,
        primary key((c1,c2),c3,c4)
    );
    
  • 复合主键的第一列 "(c1,c2)" 构成 PartitionKey,其余列 c3,c4 都是 ClusteringKey
  • Cassandra 对 PartitionKey 计算 Hash 值,决定该记录的存放 node,ClusteringKey 在 Partition 内部排序
  • 默认只支持主键列索引列查询,否则需要手动指定 allow filtering
  • 根据多个 ClustringKey 查询时,需指定全部的 PartitionKey,ClusteringKey 不能跳过
  • 主键列不可修改

© 著作权归作者所有

上一篇: sed 命令
俊赛潘安-才比管乐

俊赛潘安-才比管乐

粉丝 36
博文 84
码字总数 32769
作品 0
海淀
系统管理员
私信 提问
多节点部署Cassandra集群

这篇文章收集了我从Apache Cassandra官网部署Cassandra集群的步骤。下面的步骤是我分享的部署集群的过程。大致分为三步 部署第一个节点 增加其他节点 监视集群(工具nodetool、jConsole、Cas...

曾沙
2012/11/27
676
0
【微服务】部署Api网关Kong

Kong 是在客户端和(微)服务间转发 API 通信的 API 网关,通过插件扩展功能。持久化支持Postgresql和Cassandra。鉴于做测试,使用搭建简便的Postgresql作为DB存储。 IP分配 192.168.0.181:...

Tree
2018/01/04
513
0
多节点部署Cassandra集群

这篇文章收集了我从Apache Cassandra官网部署Cassandra集群的步骤。下面的步骤是我分享的部署集群的过程。大致分为三步 部署第一个节点 增加其他节点 监视集群(工具nodetool、jConsole、Cas...

王振威
2012/08/07
10.9K
8
手把手教你用Rancher创建产品质量数据库设置

数据库对于企业来说至关重要,因此数据库体系结构迁移到容器平台显得尤为必要。本文将介绍如何用Rancher创建产品质量数据库设置,并分析在Rancher高可用和Kubernetes中可供使用的各种选项,给...

RancherLabs
2018/08/09
39
0
CentOS7环境部署kubenetes1.12版本五部曲之三:node节点加入

版权声明:欢迎转载,请注明出处,谢谢。 https://blog.csdn.net/boling_cavalry/article/details/83714209 本文是《CentOS7环境部署kubenetes1.12版本五部曲》系列的第三篇,上篇文章创建了...

博陵精骑
2018/11/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka 原理和实战

本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/bV8AhqAjQp4a_iXRfobkCQ 作者简介:郑志彬,毕业于华南理工大学计算机科学与技术(双语班)。先后从事过电子商务、开放平...

vivo互联网技术
13分钟前
5
0
java数据类型

基本类型: 整型:Byte,short,int,long 浮点型:float,double 字符型:char 布尔型:boolean 引用类型: 类类型: 接口类型: 数组类型: Byte 1字节 八位 -128 -------- 127 short 2字节...

audience_1
今天
7
0
太全了|万字详解Docker架构原理、功能及使用

一、简介 1、了解Docker的前生LXC LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpa...

Java技术剑
今天
13
0
Wifiphisher —— 非常非常非常流氓的 WIFI 网络钓鱼框架

编者注:这是一个非常流氓的 WIFI 网络钓鱼工具,甚至可能是非法的工具(取决于你的使用场景)。在没有事先获得许可的情况下使用 Wifiphisher 攻击基础网络设施将被视为非法活动。使用时请遵...

红薯
今天
57
1
MongoDB 4 on CentOS 7安装指南

本教程为CentOS x86_64 7.x操作系统下,MongoDB Community x86_64 4.2(GA)安装指南。 安装方式一:yum repo在线安装 [此方式较为简单,官方推荐] Step1:新建MongDB社区版Yum镜像源。 # vim ...

王焱君
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部