欢迎访问我的GitHub

https://github.com/zq2599/blog_demos

内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;

关于cassandra3集群部署

通常情况下的cassandra3集群部署操作如下:

  1. 安装JDK;
  2. 设置JDK环境变量;
  3. 创建运行cassandra服务的群组和账号;
  4. 安装cassandra;
  5. 设置cassandra环境变量;
  6. 设置cassandra参数;
  7. 设置cassandra日志目录和文件目录;

上述操作要在每台机器执行,手动操作较为费时,因此用ansible来完成上述所有步骤,除了省事儿,还减少了操作失误的概览;

关于ansible部署

  1. ansible是常用的运维工具,可以大幅度简化整个部署过程;
  2. 接下来使用ansible完成部署工作,如果您想了解ansible,请参考《ansible2.4安装和体验》
  3. 部署操作如下图所示,在一台安装了ansible的电脑上运行脚本,由ansible远程连接到三台CentOS7.7的服务器上,完成部署工作:

软件版本

本次实战的软件版本信息如下:

  1. ansible电脑操作系统:CentOS Linux release 7.7.1908
  2. cassandra服务器操作系统:CentOS Linux release 7.7.1908
  3. cassandra版本:3.11.6
  4. jdk:1.8.0_191

材料准备

ansible远程操作最重要的是提前把材料准备好,本次实战一共需要如下7文件(稍后有下载地址):

  1. ansible.cfg:ansible配置文件;
  2. hosts:保存了三台cassansra服务器信息;
  3. cluster-3-nodes.yml:ansible脚本,即playbook文件,里面是整个安装部署的逻辑;
  4. vars-cluster-3-nodes.yml:ansible脚本用到的变量配置信息,例如JDK文件名,cassandra文件名等;
  5. cassandra.yaml:cassandra配置文件,我从安装包里取出来做了些修改(几个和目录有关的配置,被我从注释状态改成了生效状态)
  6. apache-cassandra-3.11.6-bin.tar.gz:cassandra官方安装包;
  7. jdk-8u191-linux-x64.tar.gz:jdk8的官方安装包;

所有材料的下载地址

  1. 从1到5的内容可以在我的GitHub下载,仓库地址:https://github.com/zq2599/blog_demos ,在仓库的playbooks/cassandra3目录下,有个名为cluster-3-nodes文件夹,如下图红框所示,这里面有那五个文件:

  2. apache-cassandra-3.11.6-bin.tar.gz:在官方下载:http://ftp.kddilabs.jp/infosystems/apache/cassandra/3.11.6/apache-cassandra-3.11.6-bin.tar.gz
  3. jdk-8u191-linux-x64.tar.gz:Oracle官网可下,也可以在csdn下载(不用积分),地址:https://download.csdn.net/download/boling_cavalry/12098987

文件摆放位置

  1. 登录ansible电脑,在家目录创建名为palybooks的目录,命令是:mkdir ~/playbooks
  2. 上面的七个文件中,1到4放入playbooks目录;
  3. playbooks目录下新建名为files的目录,将5到7放进去;
  4. 最终七个文件的摆放位置如下图:

修改配置

  1. cassandra服务器的IP地址、账号、密码等需要修改成您自己那边的信息,请修改hosts文件中的相关内容,如下图:

  2. cassandra集群的seed配置是其中两台机器的IP地址,这个信息在vars-cluster-3-nodes.yml,请您改成自己机器的IP地址,如下图黄框所示:

  3. 如果您的集群名称、jdk版本、cassandra版本和我这里不同,都可以在vars-cluster-3-nodes.yml中修改;
  4. 第一次ssh连接到cassandra机器时会有提示要求输入"Yes",为了避免这种情况出现在ansible连接cassandra机器的时候,建议先手动连接一次,这样后面就不再出现提示了,如下图:

准备完毕,可以开始部署了;

部署

  1. 在playbooks目录下执行ansible-playbook cluster-3-nodes.yml
  2. 等待大约5分钟左右,如果控制台没有报错,整个安装过程完成;
  3. 如果有报错,请按照错误提示做好处理再重复执行ansible-playbook cluster-3-nodes.yml,该命令可以反复多次执行;

启动

  1. 部署的时候会创建名为cassandra的群组,以及名为cassandra的账号;
  2. 以cassandra账号分别SSH登录三台cassandra机器,密码是888888
  3. 登录cassandra机器后,在任意位置执行命令cassandra,即可启动cassandra服务;
  4. 等待大约几分钟,服务初始化、构建集群成功:

  5. 在三台机器的任意目录下执行命令nodetool status,查看集群情况:

验证

  1. 在任意一台cassandra机器上,cqlsh进入交互模式后,执行以下操作:

  2. 创建一个springboot应用,访问上面新建的student表,如下图红框所示,应用启动时连接cassandra成功:

  3. springboot应用中有个根据名称查找记录的web接口,如下图,可以查到数据库中的记录:

  4. 上面的springboot应用源码已上传到GitHub,仓库地址:https://github.com/zq2599/blog_demos ,在仓库的cassandrahelloworld目录下,如下图红框所示:



    至此,cassandra集群从部署到验证已经操作完成,希望能给您一些参考;

欢迎关注公众号:程序员欣宸

微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界...

https://github.com/zq2599/blog_demos

ansible快速部署cassandra3集群的更多相关文章

  1. 使用 Ansible 快速部署 HBase 集群

    背景 出于数据安全的考虑,自研了一个低成本的时序数据存储系统,用于存储历史行情数据. 系统借鉴了 InfluxDB 的列存与压缩策略,并基于 HBase 实现了海量存储能力. 由于运维同事缺乏 Had ...

  2. Ansible自动化部署K8S集群

    Ansible自动化部署K8S集群 1.1 Ansible介绍 Ansible是一种IT自动化工具.它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署,滚动更新.Ansible适用于管理企 ...

  3. MariaDB Galera Cluster 部署(如何快速部署 MariaDB 集群)

    MariaDB Galera Cluster 部署(如何快速部署 MariaDB 集群)  OneAPM蓝海讯通7月3日 发布 推荐 4 推荐 收藏 14 收藏,1.1k 浏览 MariaDB 作为 ...

  4. MariaDB Galera Cluster 部署(如何快速部署MariaDB集群)

    MariaDB Galera Cluster 部署(如何快速部署MariaDB集群) [日期:--] 来源:Linux社区 作者:Linux [字体:大 中 小] MariaDB作为Mysql的一个分 ...

  5. docker 快速部署ES集群 spark集群

    1) 拉下来 ES集群  spark集群 两套快速部署环境, 并只用docker跑起来,并保存到私库. 2)弄清楚怎么样打包 linux镜像(或者说制作). 3)试着改一下,让它们跑在集群里面. 4) ...

  6. Kubernetes探索学习001--Centos7.6使用kubeadm快速部署Kubernetes集群

    Centos7.6使用kubeadm快速部署kubernetes集群 为什么要使用kubeadm来部署kubernetes?因为kubeadm是kubernetes原生的部署工具,简单快捷方便,便于新 ...

  7. 菜鸟系列k8s——快速部署k8s集群

    快速部署k8s集群 1. 安装Rancher Rancher是业界唯一完全开源的企业级容器管理平台,为企业用户提供在生产环境中落地使用容器所需的一切功能与组件. Rancher2.0基于Kuberne ...

  8. 使用RKE快速部署k8s集群

    一.环境准备 1.1环境信息 IP地址 角色 部署软件 10.10.100.5 K8s Master Etcd.Control 10.10.100.17 K8s Worker1 Worker 10.1 ...

  9. 通过kubeadm快速部署K8S集群

    kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Master 节点 $ kubeadm i ...

随机推荐

  1. 多测师讲解html _无序列表006_高级讲师肖sir

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>无 ...

  2. 提取swagger内容到csv表格,excel可打开

    swagger生成的页面api接口统计,有几种方法 直接在前端用js提取出来,较麻烦(不推荐,不同版本的页面生成的标签有可能不一样,因此可能提取不出来) //apilet a = document.g ...

  3. 【LWJGL3】LWJGL3的内存分配设计,第一篇,栈上分配

    简介 LWJGL (Lightweight Java Game Library 3),是一个支持OpenGL,OpenAl,Opengl ES,Vulkan等的Java绑定库.<我的世界> ...

  4. spring boot:shardingsphere+druid多数据源整合seata分布式事务(spring boot 2.3.3)

    一,为什么要给shardingsphere配置多数据源? 1,shardingjdbc默认接管了所有的数据源, 如果我们有多个非分表的库时,则最多只能设置一个为默认数据库, 其他的非分表数据库不能访问 ...

  5. ansible使用shell模块在受控机上执行命令(ansible2.9.5)

    一,ansible的shell模块和command模块的区别? shell模块:在远程主机上执行主控端发出的shell/python脚本 command模块:不能调用shell指令,没有bash的环境 ...

  6. Django创建表时报错django.db.utils.InternalError: (1366问题解决记录

    问题出现 执行Python manage.py makemigrations生成创建表的py文件 执行python manage.py migrate创建数据表 界面出现报错 问题原因 网上搜索原因, ...

  7. (静默安装)Cent OS 6_5(x86_64)下安装Oracle 11g

    Cent OS 6_5(x86_64)下安装Oracle 11g 1 硬件要求   1.1 内存 & swap 物理内存不少于1G 硬盘可以空间不少于5G swap分区空间不少于2G Mini ...

  8. docker是个啥?

    docker 第一问:什么是容器 容器就是在一个隔离的环境中运行的一个进程.注意关键词,隔离和进程.如果进程停止,那么容器就销毁.因为具有隔离的特点,所以每个容器都拥有自己的文件系统:包括IP地址.主 ...

  9. Bitmap缩放(二)

    先得到位图宽高不用加载位图,然后按ImageView比例缩放,得到缩放的尺寸进行压缩并加载位图.inSampleSize是缩放多少倍,小于1默认是1,通过调节其inSampleSize参数,比如调节为 ...

  10. oracle数据库中索引失效的几种情况

    原文1:https://blog.csdn.net/u012255097/article/details/102792683 原文2:https://www.cnblogs.com/lanseyita ...