Neste artigo, vamos discutir como instalar o Cassandra usando o método de clonagem do repositório GitHub e também abordaremos a instalação via Docker.
Instalação Binária
[hadoop@datax cassandra]$ git clone https://github.com/apache/cassandra.git
Cloning into 'cassandra'...
[hadoop@datax ~]$ sudo cat /etc/profile
export CASSANDRA_HOME=/data/cassandra/apache-cassandra-4.0.0
export PATH=$PATH:$CASSANDRA_HOME/bin
[hadoop@datax ~]$ cassandra -f
Error opening zip file or JAR manifest missing : /data/cassandra/lib/jamm-0.3.2.jar
Error occurred during initialization of VM
agent library failed to init: instrument
Modificação do Diretório de Configuração
data_file_directories:
- /var/lib/cassandra/data
commitlog_directory: /var/lib/cassandra/commitlog
cdc_enabled: false
disk_failure_policy: stop
commit_failure_policy: stop
prepared_statements_cache_size_mb:
key_cache_size_in_mb:
key_cache_save_period: 14400
row_cache_size_in_mb: 0
row_cache_save_period: 0
counter_cache_size_in_mb:
counter_cache_save_period: 7200
saved_caches_directory: /var/lib/cassandra/saved_caches
Inicialização do Cassandra
[hadoop@datax ~]$ ./cassandra #Inicia o Cassandra
Conexão com o CQLSH
[hadoop@datax ~]$ cqlsh
Connected to Test Cluster at 127.0.0.1:9042
[cqlsh 6.0.0 | Cassandra 4.0.0 | CQL spec 3.4.5 | Native protocol v5]
Use HELP for help.
cqlsh>
Verificação da Versão do Cassandra
cqlsh> show VERSION
[cqlsh 6.0.0 | Cassandra 4.0.0 | CQL spec 3.4.5 | Native protocol v5]
cqlsh>
Encerramento do Processo
[hadoop@datax bin]$ ./stop-server
echo "Por favor, leia o script stop-server antes de usá-lo"
user=`whoami`
pgrep -u $user -f cassandra | xargs kill -9
Instalação via Docker
- Pull a imagem do Cassandra do Docker Hub:
docker pull cassandra:latest
- Crie uma rede para o Cassandra:
docker network create cassandra
- Inicie um contêiner do Cassandra:
docker run --rm -d --name cassandra --hostname cassandra --network cassandra cassandra
- Criar arquivo data.cql:
CREATE KEYSPACE IF NOT EXISTS store WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : '1' };
CREATE TABLE IF NOT EXISTS store.shopping_cart (
userid text PRIMARY KEY,
item_count int,
last_update_timestamp timestamp
);
INSERT INTO store.shopping_cart
(userid, item_count, last_update_timestamp)
VALUES ('9876', 2, toTimeStamp(now()));
INSERT INTO store.shopping_cart
(userid, item_count, last_update_timestamp)
VALUES ('1234', 5, toTimeStamp(now()));
- Carregar dados usando CQLSH:
docker run --rm --network cassandra -v "$(pwd)/data.cql:/scripts/data.cql" -e CQLSH_HOST=cassandra -e CQLSH_PORT=9042 -e CQLVERSION=3.4.5 nuvo/docker-cqlsh
- Interativo com CQLSH:
docker run --rm -it --network cassandra nuvo/docker-cqlsh cqlsh cassandra 9042 --cqlversion='3.4.5'
- Selecionar dados:
SELECT * FROM store.shopping_cart;
- Inserir mais dados:
INSERT INTO store.shopping_cart (userid, item_count) VALUES ('4567', 20);
- Limpeza:
docker kill cassandra
docker network rm cassandra