Cassandra Docker#
Cassandra Standalone in Docker Compose#
cassandra-standalone.yml
Cassandra Cluster in Docker Compose#
docker run --name cassandra -d cassandra:3
docker cp cassandra:/opt/cassandra/conf/cassandra.yaml .
mkdir cassandra{1,2,3}
vi cassandra.yaml
AllowAllAuthenticator -> PasswordAuthenticator
Docker Compose#
cassandra.yml
docker exec -it cassandra1 bash
cqlsh -u cassandra -pcassandra
describe keyspaces;
CREATE KEYSPACE IF NOT EXISTS mycasdb WITH REPLICATION = {'class': 'SimpleStrategy','replication_factor':3};
describe keyspaces;
CRUD#
use mycasdb;
CREATE TABLE user (id int,user_name varchar,PRIMARY KEY (id));
describe tables;
INSERT INTO user (id,user_name) VALUES (1,'user_1');
INSERT INTO user (id,user_name) VALUES (2,'user_2');
INSERT INTO user (id,user_name) VALUES (3,'user_3');
select * from user;
delete from user where id=2;
select * from user;
Tests#
nodetool -h host -u username -pw password [option]
nodetool status
nodetool info
docker exec cassandra1 nodetool status
docker exec -it cassandra1 cqlsh -e "describe keyspaces"
docker cp cassandra1:/etc/cassandra etc_cassandra
mkdir -p ./etc
cp -a etc_cassandra etc/cassandra1
cp -a etc_cassandra etc/cassandra2
cp -a etc_cassandra etc/cassandra3
vi ./etc/cassandra1/cassandra.yaml
vi ./etc/cassandra3/cassandra.yaml
vi ./etc/cassandra2/cassandra.yaml
authenticator: PasswordAuthenticator
authorizer: CassandraAuthorizer
docker exec -it cassandra1 cqlsh -u cassandra -p cassandra -e "describe keyspaces"
docker exec -it cassandra1 cqlsh -u cassandra -pcassandra cassandra2 -e "DESCRIBE CLUSTER"