Cassandra -- Cassandra 3.0版本安装
============================================================
服务器信息
搭建三节点的Cassandra群集:
SERVER1: 192.168.199.171
SERVER2: 192.168.199.172
SERVER3: 192.168.199.172
============================================================
下载依赖包
cassandra下载地址:https://cassandra.apache.org/download/
JDK 1.8.0_201下载地址:https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz
Python 2.7.13下载地址:https://www.python.org/downloads/release/python-2713/
============================================================
配设JAVA环境
下载java安装包,解压到/usr/java18目录,然后在/etc/profile文件中追加下面代码:
#set java environment
JAVA_HOME=/usr/java18
JRE_HOME=/usr/java18/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
使用下面命令刷新环境变量:
## 刷新环境配置
source /etc/profile
检查JAVA是否安装正确:
## 查看java版本
java -version ## 查看java路径
echo $JAVA_HOME
============================================================
安装Cassandra
## 创建安装目录
mkdir -p /export/servers/cassandra/ /export/data/cassandra/ ## 创建用户组和用户
groupadd cassandra
useradd cassandra -g cassandra ## 将cassandra安装包解压到/export/servers/cassandra/ ## 修改文件目录权限
chown -R cassandra:cassandra /export/servers/cassandra/ /export/data/cassandra/
============================================================
配置Cassandra
修改/export/servers/cassandra/conf/cassandra.yaml文件的下面属性
## 群集名称
cluster_name: 'cluster1'
## 数据验证
authenticator: PasswordAuthenticator
authorizer: CassandraAuthorizer
## 数据目录
data_file_directories:
- /export/data/cassandra/data ## commitlog目录
commitlog_directory: /export/data/cassandra/commitlog ## saved_caches目录
saved_caches_directory: /export/data/cassandra/saved_caches ## 设置为第一个启动的节点地址
## 种子节点不做引导,它负责处理现有集群中新加入的节点。对于新的集群,引导处理会跳过种子节点。
seeds: "192.168.199.171" ## 将监听地址设置为本地IP
listen_address: 192.168.199.171 ## 将RPC地址设置为本地IP
rpc_address: 192.168.199.171 ## 程序访问端口,默认9042
native_transport_port: 9042 ## endpoint_snitch属性
endpoint_snitch: GossipingPropertyFileSnitch
endpoint_snitch参数选项:
GossipingPropertyFileSnitch
这应该是你的生产使用的。本地节点的机架和数据中心在cassandra-rackdc.properties中定义,并通过gossip传播到其他节点。如果存在cassandra-topology.properties,它将用作回退,从而允许从PropertyFileSnitch进行迁移。 SimpleSnitch
将战略顺序视为接近度。这可以在禁用读修复时提高缓存位置。仅适用于单数据中心部署。 PropertyFileSnitch
接近性由机架和数据中心决定,这些在cassandra-topology.properties中显式配置。 Ec2Snitch
从EC2 API加载当前区域和可用区域信息。当前区域被视为数据中心,可用区域被视为机架。仅使用私有IP,因此这不会在多个区域工作。 Ec2MultiRegionSnitch
使用公共IP作为broadcast_address以允许跨区域连接(因此,您应该将seed地址设置为公共IP)。您将需要打开公共IP防火墙上的storage_port或ssl_storage_port(对于区域内流量,Cassandra将在建立连接后切换到专用IP)。 RackInferringSnitch
接近性由机架和数据中心确定,假定它们分别对应于每个节点的IP地址的第3和第2个八位字节。除非这种情况符合您的部署约定,否则这最好用作编写自定义Snitch类的示例
修改/export/servers/cassandra/conf/cassandra-topology.properties文件内容:
## 设置服务器所在机架
192.168.199.171=DC1:RAC1
192.168.199.172=DC1:RAC1
192.168.199.173=DC1:RAC1 ## 下面为默认
# default for unknown nodes
default=DC1:r1 # Native IPv6 is supported, however you must escape the colon in the IPv6 Address
# Also be sure to comment out JVM_OPTS="$JVM_OPTS -Djava.net.preferIPv4Stack=true"
# in cassandra-env.sh
fe80\:0\:0\:0\:202\:b3ff\:fe1e\:8329=DC1:RAC3
============================================================
启动服务
以此在171/172/173上启动服务
## 切换到cassandra用户
su cassandra ## 启动服务
/export/servers/cassandra/bin/cassandra >/export/data/cassandra/start_server.log
============================================================
检查群集
## 查看群集节点状态
/export/servers/cassandra/bin/nodetool status ## 登录群集171节点
## cqlsh.py仅支持python2.7版本
python27 /export/servers/cassandra/bin/cqlsh.py 192.168.199.171 ## 查看命名空间
describe keyspaces; ## 查看群集版本
select release_version from System.local;
============================================================
替换群集节点
假设群集运行一段时间后,服务器192.169.199.172因为硬件故障导致数据丢失,修复后仍使用该IP加入群集,操作如下:
## 删除原服务器上数据
/bin/rm -rf /export/data/cassandra/* ## 切换到cassandra用户
su cassandra ## 使用cassandra.replace_address配置启动
/export/servers/cassandra/bin/cassandra -Dcassandra.replace_address='192.168.199.173' >/export/data/cassandra/start_server.log
等待一段时间后,数据会自动同步到新节点上
============================================================
删除群集节点
删除群集节点时,需要根据要删除节点的状态决定如何删除。
## 删除在线群集节点(在该节点上运行)
nodetool decommission ## 删除离线群集节点(在任意存活节点运行)
nodetool removenode node_guid
Cassandra -- Cassandra 3.0版本安装的更多相关文章
- (新)elasticsearch6.0版本安装head插件
ES6.0版本安装head插件 1.1 前言 不知道是我电脑问题还是最近的开源软件都比较**,mysql和elasticsearch新版本变动都比较大. elasticsearch6.0貌似已经不支持 ...
- elasticsearch6.0版本安装head插件
ES6.0版本安装head插件 1.1 前言 不知道是我电脑问题还是最近的开源软件都比较**,mysql和elasticsearch新版本变动都比较大. elasticsearch6.0貌似已经不支持 ...
- Vim 8.0 版本安装方法及添加Python支持
利用Git安装 最简单也是最有效的方法 1. 获取Vim仓库: git clone https://github.com/vim/vim.git 2. 升级到最新的版本: cd vim git pul ...
- MongoDB4.0+版本安装
>>>首先要下载MongoDB软件安装包, MongoDB社区版官网下载 >>>双击msi安装文件进行安装,点击"Next" >>& ...
- 最新MySQL5.7.3.0版本安装(图文版本)
转自:http://www.myexception.cn/mysql/1609536.html 可以从http://dev.mysql.com/downloads/下载MySQL服务器安装软件包,我下 ...
- vue3.0版本安装
如果安装过其他版本的vue的话先卸载 npm uninstall -g vue-cli //卸载指令 卸载不会影响以前项目的启动 然后安装 NPM安装: npm install -g @vue/cli ...
- (转)elasticsearch6.0版本安装head插件
1.1 前言 不知道是我电脑问题还是最近的开源软件都比较**,mysql和elasticsearch新版本变动都比较大. elasticsearch6.0貌似已经不支持命令行安装head插件了,反正我 ...
- VueCli 4.0+ 版本安装插件与VueCLI 旧版本的不同
通过VueCli 脚手架 4+ 版本创建的项目,在引入插件文件并配置时,是通过 import {Create* } ,旧版本是直接导入全部,在配置相应的文件时,重新new 一个:然后再通过Vue 进行 ...
- Microsoft Dynamics CRM 9.0 OP 版本 安装 的那些 雷
天天讲安装过程好无聊了,还是搞点有营养的东西来,那么后面来说说刚出来的MSCRM OP 9.0 版本安装的那些雷: 雷1:操作系统要求Windows 2016 Server 这点还好,因为之前安装MS ...
随机推荐
- python操作Excel读写(使用xlrd和xlrt)
包下载地址:https://pypi.python.org/pypi/xlrd 导入 import xlrd 打开excel data = xlrd.open_workbook('demo.xls ...
- 深入margin
1.外边距叠加 外边距叠加是指两个垂直外边距相遇时,这两个外边距会合并成一个外边距,就是二变一,关键是叠加后的外边距会取值两个外边距最大的那个: 例子如下:创建A.B两个盒子,A定义一个margin- ...
- intelij idea常用设置
1.genneral设置 2.自动导包 3.设置显示行号和方法分隔符 4.忽略大小写提示代码 比如:输入str会让其提示String 5.去掉单行显示类,让idea多行显示,容易找到类 6.设置字体及 ...
- ArrayList和LinkedList有什么区别?
---恢复内容开始--- ArrayList和LinkedList都实现了List接口,但是: ArrayList是基于索引的数据接口,底层是数组,能够以O(1)时间复杂度随机访问元素.而Linked ...
- c/c++动态内存分配的区别
c中动态内存分配使用malloc和free. malloc指定需要分配的内存大小,分配成功则返回指向该内存的指针,不成功则返回空指针.返回的指针类型为void *,表示不确定指针所指内存存放的数据类型 ...
- byte[]->new String(byte[]) -> getByte()引发的不一致问题
今天接短信接口,短信接口提供了sdk,我们可以直接用sdk发送请求然后发送对应短信. 但是想使用我们平台自定义的httpUtil实现. 然而忙了1天半,才解决这个问题,还是我同事帮忙找出问题并解决的. ...
- Html.DropDownList()的用法
页面代码如下: <%= Html.DropDownList("Category", ViewData["Categories"] as SelectLis ...
- java基础学习之抽象类
以下内容是自己学习后的一个备忘笔记,理解上肯定有很多问题,望有耐心的大神能给予指点,谢谢 定义:抽象是对事物的一个模糊定义,它主要对那些有共性功能但具体实现不同的对象进行抽象,提高代码的复用性和简洁性 ...
- os.path和sys.path的区别
os.path是module,包含了各种处理长文件名(路径名)的函数. sys.path是由目录名构成的列表,python从中查找扩展模块(python源模块)编译模块,或者二进制扩展),启动pyth ...
- JAVA Clone复制对象
谈到了对象的克隆,就不得不说为什么要对对象进行克隆.Java中所有的对象都是保存在堆中,而堆是供全局共享的.也就是说,如果同一个Java程序的不同方法,只要能拿到某个对象的引用,引用者就可以随意的修改 ...