zoukankan      html  css  js  c++  java
  • Cassandra集群搭建

    1.Cassandra介绍


    Cassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据。NoSQl数据库分为4大类,Key-value类型、列存储型、文档类型、图形(Graph)等,而Cassandra为列存储型。
    Cassandra的特点:

    弹性可扩展性 - Cassandra是高度可扩展的; 它允许添加更多的硬件以适应更多的客户和更多的数据根据要求。
    数据存储灵活 - Cassandra适应所有可能的数据格式,包括:结构化,半结构化和非结构化。它可以根据您的需要动态地适应变化的数据结构。
    便捷的数据分发 - Cassandra通过在多个数据中心之间复制数据,可以灵活地在需要时分发数据。
    快速写入 - Cassandra被设计为在廉价的商品硬件上运行。 它执行快速写入,并可以存储数百TB的数据,而不牺牲读取效率。


    2. 准备


    1.CentOS x64系统至少3台(可以用虚拟机练习)
    2.Java运行环境
    3.Cassandra安装包
    我这里选的是cassandra-3.11.6
    下载链接wget https://mirror.bit.edu.cn/apache/cassandra/3.11.6/apache-cassandra-3.11.6-bin.tar.gz

    3.集群搭建


    Cassandra选择了无中心的P2P架构,网络中的所有节点都是对等的,它们构成了一个环,节点之间通过Gossip协议每秒钟和至多三个节点交换一次数据,这样每个节点都拥有其它所有节点的信息,包括位置、状态等。为了保证数据交换的准确性,所有的节点必须使用同一份集群列表,这样的节点又被称作seed节点。
    本文将使用4台虚拟机搭建集群
    ip分别为:

    192.168.3.40
    192.168.3.41
    192.168.3.42
    其中将192.168.3.40 和 92.168.3.41作为seed(种子)节点

    (1).搭建Java运行环境
    同kafka安装一样,该集群已经安装完毕

    (2)安装Cassandra

    useradd cassandra
    tar -zxvf apache-cassandra-3.11.6-bin.tar.gz
    mv apache-cassandra-3.11.6 /home/cassandra/cassandra
    chown cassandra:root /data/cassandra -R
    mkdir -p  /data/cassandra/data
    mkdir -p /data/cassandra/commitlog
    mkdir -p /data/cassandra/saved_caches

    vi /home/cassandra/cassandra/conf/cassandra.yaml编辑cassandra配置文件

    配置下配置项
    #集群名称
    cluster_name: ‘ssyx001’
    #数据存储的目录,这里按照自己的路径配置,不写默认为/var/lib/cassandra/data,这项可以有多个目录分行写
    data_file_directories:
    - /data/cassandra/data
    #提交日志存放目录
    commitlog_directory: /data/cassandra/commitlog
    #缓存目录
    saved_caches_directory: /data/cassandra/saved_caches
    以上三个目录配置项,可以自己创建文件夹,自行配置

    #种子节点 这里我使用192.168.3.40和192.168.3.41服务器作为种子节点,ip中间使用逗号隔开

    seeds: “192.168.3.40,192.168.3.41”

    #监听地址 这项配置当前服务器ip,rpc_address 和 listen_address一样填写当前服务器ip
    listen_address:$ip
    rpc_address:$ip
    以上是基础配置,其他项配置参考cassandra配置详解
    另两台服务器,也是按同样方法配置,注意的是 listen_address, rpc_address 这两项填写该台服务器地址,data_file_directories,commitlog_directory ,commitlog_directory 填写的目录需要提前创建好。

    4.启动集群

    cat << EOF > /etc/systemd/system/cassandra.service
    [Unit]
    Description=Cassandra Server Service
    After=network.service
     
    [Service]
    Type=simple
    Environment=JAVA_HOME=/opt/java1.8
     
    PIDFile=/var/run/cassandra.pid
    User=cassandra
    ExecStart=/home/cassandra/cassandra/bin/cassandra -f -p /var/run/cassandra.pid
    StandardOutput=journal
    StandardError=journal
    LimitNOFILE=100000
    LimitMEMLOCK=infinity
    LimitNPROC=32768
    LimitAS=infinity
     
    [Install]
    WantedBy=multi-user.target
    EOF
    systemctl start cassandra
    systemctl enable cassandra

    #注意先启动种子机器

  • 相关阅读:
    Vue 获取dom元素中的自定义属性值
    php文件包含
    php数组运算符
    管理一组事物的状态
    php数据类型转换
    php函数
    PHP循环while do while循环
    php的流程控制 if elseif swich case for循环
    php的工作原理
    python算数、逻辑运算,位运算
  • 原文地址:https://www.cnblogs.com/breg/p/13187956.html
Copyright © 2011-2022 走看看