首页 > 系统相关 >linux部署cassandra

linux部署cassandra

时间:2024-07-05 14:57:25浏览次数:17  
标签:部署 echo running 分布式 linux cassandra 数据 Cassandra

Cassandra数据库是一个高度可扩展、分布式的NoSQL数据库系统,最初由Facebook开发,用于处理大规模数据集并提供高可用性和高性能。随着其开源和广泛应用,Cassandra已经成为Apache软件基金会的一个顶级项目。以下是关于Cassandra数据库的详细介绍:

一、基本概述

  • 类型:Cassandra是一个开源的分布式NoSQL数据库系统,集Google BigTable的数据模型与Amazon Dynamo的完全分布式架构于一身。
  • 研发者:Facebook,后转为开源项目。
  • 应用领域:计算机,特别是网络社交、云计算等领域。

二、主要特性

  1. 分布式架构:Cassandra采用分布式架构,数据被分散存储在多个节点中,每个节点都是平等的,没有单点故障,可以随时添加或删除节点。这种架构使得Cassandra能够轻松扩展到数百台服务器,支持线性扩展。
  2. 高可用性和容错性:Cassandra提供了多种机制来保障数据的可用性,包括数据复制、数据备份、自动故障转移等。每个分区都有一个主分区副本和多个备份分区副本,可以根据需要进行配置,以确保数据的高可用性和灾难恢复。
  3. 高性能:Cassandra的读写操作都非常快速,支持高吞吐量和低延迟读写操作。这使得它非常适用于需要处理大量数据和具有高并发访问的应用场景。
  4. 灵活的数据模型:Cassandra的数据模型非常灵活,支持多种数据类型,包括结构化数据、半结构化数据和非结构化数据。同时,它还支持复杂查询和数据聚合操作,包括分组、排序、聚合、联接等。

三、系统功能

  • 模式灵活:Cassandra不需要事先定义数据库模式,可以在系统运行时随意添加或移除字段。
  • 可扩展性:Cassandra是纯粹意义上的水平扩展,为给集群添加更多容量,可以指向另一台电脑,而不必重启任何进程、改变应用查询或手动迁移任何数据。
  • 多数据中心支持:Cassandra支持多数据中心部署,可以调整节点布局来避免某个数据中心出现问题时影响整体服务的可用性。

四、应用场景

Cassandra由于其高可扩展性、高可用性和高性能的特点,被广泛应用于各种需要处理大规模数据和具有高并发访问的应用场景,如社交网络、在线广告、电子商务、物联网、日志管理等。

五、安全与性能优化

  • 安全性:Cassandra提供了基于用户名和密码的安全认证机制,支持SSL/TLS协议来加密节点之间的通信,并提供数据加密和审计功能以确保数据的安全性。
  • 性能优化:Cassandra的性能优化包括数据模型优化、数据分区优化、数据访问优化以及JVM和系统参数的优化等。通过合理的配置和优化,可以进一步提高Cassandra的性能和可靠性。

综上所述,Cassandra数据库是一个功能强大、灵活且高度可扩展的分布式NoSQL数据库系统,适用于各种需要处理大规模数据和具有高并发访问的应用场景。

六、部署

版本:apache-cassandra-3.11.5-bin.tar.gz

将下载下来的包上传至目标主机,解压  tar -xzvf apache-cassandra-3.11.5-bin.tar.gz -C /usr/local/

修改配置文件 cassandra.yaml

vim /usr/local/apache-cassandra-3.11.5/conf/cassandra.yaml

seeds、listen_address 、rpc_address修改为实际ip

 创建数据、日志存放目录  mkdir -p /data/cassandra/{data,commitlog}

 编写启停脚本

#!/bin/bash  

# Cassandra安装目录  
CASSANDRA_HOME="/usr/local/apache-cassandra-3.11.5"


# Cassandra 文件路径  
CASSANDRA_PID_FILE="${CASSANDRA_HOME}/bin/cassandra"

# Cassandra PID
PIDS=$(ps ax | grep -i 'cassandra' | grep Dcassandra|grep java|grep -v grep|awk '{print $1}')

# 检查Cassandra是否正在运行  
is_cassandra_running() {
    if [ ! -z "$PIDS" ]; then
        echo "Cassandra server already running,pid is $PIDS"
        return 0
    else
        echo "Cassandra service is not running"  
        return 1
    fi
}

# 启动Cassandra  
start_cassandra() {
    echo "Starting Cassandra..."  
    ${CASSANDRA_PID_FILE} -R >/dev/null 2>&1
    sleep 5s
}

# 停止Cassandra  
stop_cassandra() {
    echo "Stopping Cassandra..."  
    kill -9 ${PIDS}
}

# 重启Cassandra  
restart_cassandra() {
    is_cassandra_running
    if [ $? -eq 0 ]; then
       stop_cassandra
    else
       start_cassandra
    fi
}

# 根据传入的参数执行相应的操作  
case "$1" in
    start)
        is_cassandra_running
        if [ $? -eq 0 ]; then
            echo "Cassandra is already running."  
        else
            start_cassandra
        fi
        ;;
    stop)
        is_cassandra_running
        if [ $? -eq 0 ]; then
            stop_cassandra
        else
            echo "Cassandra is not running."  
        fi
        ;;
    restart)
        restart_cassandra
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"  
        ;;
esac

启动cassandra并登录

/usr/local/apache-cassandra-3.11.5/bin/cqlsh xxx.xxx.xxx.xxx -u 'cassandra' -p 'cassandra'

 新建用户并退出

CREATE ROLE cassandra_hugegraph WITH SUPERUSER = true AND LOGIN = true AND PASSWORD = 'passwd';

quit;

 新用户登录,禁用cassandra

ALTER ROLE cassandra WITH SUPERUSER = false AND LOGIN = false;

quit;

 

标签:部署,echo,running,分布式,linux,cassandra,数据,Cassandra
From: https://www.cnblogs.com/sxFu/p/18285839

相关文章

  • VMware vSphere Tanzu部署_16_TKC集群节点VM密码获取
    SupervisorControlPlaneVM密码获取通过SSH方式登录vcentervcenter开启SSH服务通过SSH工具登录vcenter执行获取密码脚本在vcentershell模式下执行/usr/lib/vmware-wcp/decryptK8Pwd.py命令WARNING!TheremoteSSHserverrejectedX11forwardingrequest.Connect......
  • linux(CentOS)搭建MySQL数据库--详细版
    1、MySQL数据库去mysql官网下载需要安装的mysql版本,我这里用的是mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz将该压缩包放到/usr/local/mysql_store目录下,mysql_store目录需要自己手动创建,cd/usr/localmkdirmysql_store然后解压该压缩包,输入如下指令:tar-zxvfmy......
  • Linux 账号安全管理及应用
    一、账号安全控制1.系统账号清理1.1 将非登录用户设置为无法登录usermod-s /etc/nologin pkm     #将名为pkm用户的shell设为/sbin/nologin用户pkm将无法登录1.2锁定长期不使用的账号usermod -L   用户名       #锁定......
  • Linux 文件系统以及日志管理
    一、inode与block1.inode与block详解在文件存储硬盘上,硬盘的最小存储单位叫做“扇区”,每个为512字节。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小......
  • 基于Kube-Prometheus/v0.13.0的K8S监控部署
    Kube-Prometheus不同版本支持的Kubernetes版本信息如下:kube-prometheusstackKubernetes1.22Kubernetes1.23Kubernetes1.24Kubernetes1.25Kubernetes1.26Kubernetes1.27Kubernetes1.28release-0.10✔✔✗✗xxxrelease-0.11✗✔✔✗xxx......
  • 在wsl中部署puppeteer的相关笔记
    二.缺少依赖问题 反复提示缺少各种依赖,到处搜刮一顿操作之后是没问题了,但也不知道哪些是无所谓的aptinstall-ygconf-servicelibc6libcairo2libdbus-1-3libexpat1libfontconfig1libgcc1libgdk-pixbuf2.0-0libglib2.0-0libgtk-3-0libstdc++6libx11-6aptinstall......
  • linux 服务器与本地文件传输
    相信有的小伙伴在刚开始接触linux时,不知道如何把文件上传到linux中,本文介绍两种方式供大家使用(推荐使用第二种)一.scp传输scpC:\\[email protected]/root/.....使用上述指令,即可实现将制定文件传输到服务器中,其中C…以及/root/…需要换成你自己的路径。165…........
  • Linux(Centos7)安装Docker 社区(ce)版
    安装准备查看Linux系统版本是否为centos7cat/etc/os-release确保系统内核为3版本以上uname-a安装Docker如之前安装过请卸载yumremovedocker\docker-client\docker-client-latest\docker-common\......
  • Linux虚拟机配置杂项问题汇总
    下面提到的相关问题,大部分是基于Ubuntu系统进行操作的,因为CentOS在我目前实践中涉及较少。因此如无明确提及系统,均默认在Ubuntu、debian一类系统中操作。1、更新root密码:新创建的虚拟机有时没有设置root密码导致进入root权限麻烦,使用如下命令可以设置密码。sudopasswdroot2......
  • Kafka集群部署(手把手部署图文详细版)
    1.1.1部署zookpeer在node02下载并解压zookeeper软件包cd/usr/localwgethttps://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz或者:[email protected]:/home/cat/zookeeper-3.4.6.tar.gz/tmp(注意目录)mvzookeeper-3.4.6.tar.gz......