cassandra day 1 (run cassandra)
下載 cassandra images
docker pull cassandra
run cassandra
docker run --name test-cassandra-1 -d cassandra
run cassandra cluster
有 2 種 :
- 在同一台機器建不同 instances
docker run --name test-cassandra-2 -d -e CASSANDRA_SEEDS="$(docker inspect --format='' test-cassandra-1)" cassandra
啟動後
> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 87e56257fb9e cassandra "docker-entrypoint.s…" 3 seconds ago Up 2 seconds 7000-7001/tcp, 7199/tcp, 9042/tcp, 9160/tcp test-cassandra-2 abcd5d24e322 cassandra "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 7000-7001/tcp, 7199/tcp, 9042/tcp, 9160/tcp test-cassandra-1
也可以透過 –link
docker run --name test-cassandra-2 -d --link test-cassandra-1 cassandra
- 在不同機器建不同的 instances,這邊先不實作提供指令參考
docker run --name some-cassandra -d -e CASSANDRA_BROADCAST_ADDRESS=10.42.42.42 -p 7000:7000 cassandra:tag docker run --name some-cassandra -d -e CASSANDRA_BROADCAST_ADDRESS=10.43.43.43 -p 7000:7000 -e CASSANDRA_SEEDS=10.42.42.42 cassandra:tag
root@d0447e24625d:/# nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 172.17.0.3 75.19 KiB 256 52.1% c4cd5109-83ff-4adc-81d1-7d05b7dd2bfb rack1
UN 172.17.0.2 80.16 KiB 256 47.9% 0dc02012-3b01-4bd2-bcf4-65855f630e9a rack1
連線 cassandra
> docker run -it --link test-cassandra-1:cassandra --rm cassandra sh -c 'exec cqlsh "$CASSANDRA_PORT_9042_TCP_ADDR"'
Connected to Test Cluster at 172.17.0.2:9042.
[cqlsh 5.0.1 | Cassandra 3.11.3 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cqlsh>
透過 exec 連線 cassandra,再下 cqlsh
docker exec -it eb31ab378632 bash
root@eb31ab378632:/# cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.3 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cqlsh>
查看目前有的 keyspaces
cqlsh> describe keyspaces;
system_schema system_auth system system_distributed system_traces
建立 keyspace
cqlsh> CREATE KEYSPACE castest WITH REPLICATION = {'class': 'SimpleStrategy', 'replication_factor': 1 };
drop keyspace
cqlsh> drop keyspace castest ;
create table
cqlsh> CREATE TABLE castest.prod (prodid text PRIMARY KEY, count int);
看所有 tables
cqlsh> describe tables ;
Keyspace castest
----------------
prod
insert data
cqlsh> INSERT INTO castest.prod (prodid, count) VALUES ('1', 20);
select data
cqlsh> select * from castest.prod ;
prodid | count
--------+-------
4 | 30
3 | 40
2 | 10
1 | 20
(4 rows)
update data
cqlsh> update castest.prod set count=55 where prodid='3'
delete data
cqlsh> delete from castest.prod where prodid='3' ;
參考資料
docker-cassandra
Deploy Spark with Cassandra cluster configur cassandra cluster with docker