[Cassandra] cassandra安装部署及日常使用命令


本文总阅读量

1、添加yum源

vim /etc/yum.repos.d/cassandra.repo

1
2
3
4
5
6
[cassandra]
name=Apache Cassandra
baseurl=https://www.apache.org/dist/cassandra/redhat/311x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://www.apache.org/dist/cassandra/KEYS

2、安装cassandra数据库

1
sudo yum install cassandra -y

3、修改配置文件/etc/cassandra/conf/cassandra.yaml

1
2
3
4
5
6
7
8
9
10
cluster_name: 'My Cluster'
hints_directory: /data/cassandra/hints
data_file_directories:
- /data/cassandra/dbdata
commitlog_directory: /data/cassandra/commitlog
saved_caches_directory: /data/cassandra/caches

- seeds: "10.10.8.3,10.10.8.4,10.10.8.5"
listen_address: dax-mysql-mha
rpc_address: dax-mysql-mha

每个节点需要修改的基本参数:

1
2
3
4
5
cluster_name:修改集群名称
修改存放目录hint、data、log
seeds:添加节点ip
listen_address:修改为本地ip地址
rpc_address:修改为本地ip地址

配置文件部分参数解释:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cluster_name: 'Test Cluster'
storage_port: 7000
listen_address: dax-mysql-mha
start_native_transport: true #开启native协议
native_transport_port: 9042 #客户端的交互端口
data_file_directories:
- /data/cassandra/dbdata # 数据位置,多盘的话可以写多个目录
commitlog_directory:
- /data/cassandra/commitlog #commitlog的路径,与data目录分开磁盘,提高性能
saved_caches_directory:
- /data/cassandra/caches #缓存数据目录
commitlog_sync: batch #批量记录commitlog,每隔一段时间将数据commitlog
commitlog_sync_batch_window_in_ms: 2 #batch模式下,批量操作缓存的时间间隔
#commitlog_sync: periodic #周期记录commitlog,每一次有数据更新都commitlog
#commitlog_sync_period_in_ms: 10000 #periodic模式,刷新commitlog的时间间隔
rpc_address: dax-mysql-mha

4、创建配置文件内指定的相关目录:

1
2
3
4
5
mkdir -p /data/cassandra/hints
mkdir -p /data/cassandra/dbdata
mkdir -p /data/cassandra/commitlog
mkdir -p /data/cassandra/caches
chmod 777 -R /data/cassandra

5、启动数据库,并添加到开机启动:

1
2
service cassandra start
chkconfig cassandra on

查看运行状态

1
nodetool status

进入控制台,9042端口为默认控制台端口,可自行修改配置文件设置:

1
cqlsh ip 9042

6、如果没有修改cluster-name启动该数据库,之后想要修改cluster-name需要使用下面方法去修改:

1
2
3
4
5
6
7
进入控制台:
UPDATE system.local SET cluster_name = 'daxcluster' where key='local';
bash $ ./nodetool flush
修改cassandra.yaml配置文件cluster配置参数
cluster_name: 'daxcluster'
重启cassandra
/etc/init.d/cassandra restart

7、给数据库设置用户名密码

1)、首先修改配置文件 cassandra.yaml
把默认的authenticator: AllowAllAuthenticator运行所有人登录设置为用密码登录:

1
authenticator: PasswordAuthenticator

2)、登录cassandra创建用户
使用默认账户登录cassandra

1
cqlsh -ucassandra -pcassandra ip 9042

创建用户

1
CREATE USER test WITH PASSWORD 'test' SUPERUSER;

3)、使用新用户登录

1
cqlsh -utest -ptest ip 9042

删除默认帐号:

1
DROP USER cassandra;

4)、java使用用户名密码访问cassandra

1
2
3
4
Cluster cluster = Cluster.builder()
.addContactPoint("192.168.22.161")
.withCredentials("myusername", "mypassword")
.build();

8、账号权限分配命令

1
2
3
4
5
6
7
8
9
10
11
12
授权:
GRANT permission_name PERMISSION ON resource TO user_name;
GRANT ALL PERMISSIONS ON resource TO user_name;
收回权限:
REVOKE permission_name PERMISSION ON resource FROM user_name;
REVOKE ALL PERMISSIONS ON resource FROM user_name;
查看权限:
LIST permission_name PERMISSION ON resource OF user_name NORECURSIVE;
LIST ALL PERMISSIONS ON resource OF user_name NORECURSIVE;
其中,
permission_name为: ALL/ALTER/AUTHORIZE/CREATE/DROP/MODIFY/SELECT
resource为:ALL KEYSPACES/KEYSPACE keyspace_name/TABLE keyspace_name.table_name

9、其他使用命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
desc KEYSPACEs
枚举所有数据库
list users;
查看所有用户
show version;
显示当前cqlsh,cassandra,cql spec,native protocol 版本信息
show host;
显示当前集群节点的ip地址和端口
SHOW SESSION <session id>
跟踪一个会话信息
SOURCE '/home/thobbs/commands.cql'
读取文件内容,执行cql语句
CAPTURE '<file>';
将会话查询内容指定到一个文件内
CAPTURE OFF;
停止将查询结果指定到文件内,使其正常输出到屏幕上
CAPTURE;
查看当前抓取信息是否指定到什么目录下

10、如果nodetool decommission命令将某节点提出,执行结束之后,如果需要把节点再重新加入集群,需要把数据目录下数据删除掉,重启cassandra服务。

目录
  1. 1. 1、添加yum源
  2. 2. 2、安装cassandra数据库
  3. 3. 3、修改配置文件/etc/cassandra/conf/cassandra.yaml
  4. 4. 4、创建配置文件内指定的相关目录:
  5. 5. 5、启动数据库,并添加到开机启动:
  6. 6. 6、如果没有修改cluster-name启动该数据库,之后想要修改cluster-name需要使用下面方法去修改:
  7. 7. 7、给数据库设置用户名密码
  8. 8. 8、账号权限分配命令
  9. 9. 9、其他使用命令:
  10. 10. 10、如果nodetool decommission命令将某节点提出,执行结束之后,如果需要把节点再重新加入集群,需要把数据目录下数据删除掉,重启cassandra服务。

Proudly powered by Hexo and Theme by Lap
本站访客数人次
© 2020 zeven0707's blog