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

    CentOS下Cassandra集群搭建

    最近公司进行技术选型,作为一个菜鸟,当然先百度,结果关于Cassadnra资料并不是很多。没办法只能大量翻资料,所以写篇博客总结下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.0.17
    下载链接www.apache.org/dyn/closer.lua/cassandra/3.0.17/apache-cassandra-3.0.17-bin.tar.gz

    3.集群搭建

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

    • 192.168.50.133
    • 192.168.50.136
    • 192.168.50.137
    • 192.168.50.138

    其中将192.168.50.133 和 92.168.50.136作为seed(种子)节点

    (1).搭建Java运行环境

    使用Xshell工具连接服务器,使用FTP工具将JDK1.8的安装包上传至服务器 使用 tar -zxvf jdk-8u181-linux-x64.tar.gz 命令解压, 修改文件夹名称 mv jdk1.8.0_181 jdk1.8

    这里写图片描述

    配置Java环境变量
    vim /etc/profile 修改环境变量文件

    export JAVA_HOME=/usr/local/jdk1.8
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport JRE_HOME=$JAVA_HOME/jre
    
    
    • 1
    • 2
    • 3
    • 4

    将配置信息添加至profile文件末尾

    这里写代码片

    执行source /etc/profile 使配置文件生效,之后执行 java -version查看是否安装成功

    安装Cassandra

    和之前一样,使用FTP工具将Cassandra3.0.7安装包上传至服务器,-tar -zxvf apache-cassandra-3.0.17-bin.tar.gz命令解压,mv apache-cassandra-3.0.17 cassandra 命令重命名文件夹。进入cassandra 文件夹查看目录
    这里写图片描述

    vim 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.50.133和192.168.50.136服务器作为种子节点,ip中间使用逗号隔开

    • seeds: “192.168.50.133,192.168.50.136”
      这里写图片描述

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

    启动集群

    确保集群之间能互相通讯,所以每台服务器需关闭防火墙,使用命令service iptables stop关闭防火墙
    先要启动seed节点,进入cassandra/bin目录,执行 ./cassandra 命令 启动cassandra 服务,其他节点也是按同样方法启动
    这里写图片描述

    这里写图片描述

    待所有节点启动完成后, 可以在种子节点 下 使用 ./nodetool status 命令查看各个节点状态

    这里写图片描述

    这里发现192.168.50.138节点 处于DN(down) 状态,应该是配置文件写错
    vim /usr/local/cassandra/conf/cassandra.yaml查看配置文件发现 rpc_address 地址写错
    这里写图片描述

    修改后,重启192.168.50.138这个节点,重新执行./nodetool status 查看各个节点状态
    这里写图片描述

    各个节点处于UP状态,Cassandra 可以使用cql 客户端用来连接Cassandra,cql和sql类似,需要python运行环境,这里不进行讲解。
    至此Cassandra集群搭建完毕。

  • 相关阅读:
    正则式记录
    限制键盘只能按数字键、小键盘数字键、退格键
    windows服务安装记录
    CheckBox使用记录
    you need to be root to perform this command
    Code First 更新数据库 记录
    EF查询记录
    sqlserver数据库存储汉字出现?
    【转】THE ROAD TO SUCCESS--听ERIC XING讲课记录
    Nice Computer Vision package collections
  • 原文地址:https://www.cnblogs.com/ityunwei/p/14121165.html
Copyright © 2011-2022 走看看