Guia de tecnologias

Instalar o Apache Cassandra no CentOS 7

4 min read Banco de Dados Atualizado 21 Oct 2025
Instalar Apache Cassandra no CentOS 7
Instalar Apache Cassandra no CentOS 7

O que é o Cassandra

Apache Cassandra é um sistema de banco de dados NoSQL distribuído e open source. Armazena grandes volumes de dados em clusters descentralizados com alta disponibilidade e sem ponto único de falha. Definição rápida: Cassandra é um banco orientado a colunas, tolerante a falhas e escalável horizontalmente.

Variantes de busca (intenção primária e relacionadas)

  • instalar apache cassandra centos 7
  • instalar cassandra centos
  • cassandra 3.11 centos 7
  • como instalar cassandra no linux
  • configurar cassandra e cqlsh

Pré-requisitos e checklist antes de começar

  • Acesso root ou sudo no servidor CentOS 7
  • Conexão de rede estável e repositórios atualizados
  • 4 GB+ de RAM recomendado para nós de produção
  • Verificar SELinux e firewall (ajustar conforme necessário)
  • Espaço em disco suficiente e relógio do sistema sincronizado

Importante: Em ambientes de produção, teste em um nó isolado antes de aplicar em cluster.

Passo 1 - Instalar o Java

Atualize os pacotes e repositórios primeiro.

yum -y update

No tutorial original usamos o Oracle JDK 8u131. Para baixar e instalar o RPM do Oracle JDK, execute:

wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm"

Se não tiver wget instalado, instale-o com:

yum -y install wget

Instale o RPM do Oracle JDK:

yum -y localinstall jdk-8u131-linux-x64.rpm

Verifique a versão do Java:

java -version

Saída esperada:

[root@liptan-pc ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

Confirme a variável de ambiente JAVA_HOME:

echo $JAVA_HOME

Se estiver vazia, adicione ao perfil do usuário. Editaremos o .bash_profile com nano:

nano ~/.bash_profile

Adicione no final do arquivo:

export JAVA_HOME=/usr/java/jdk1.8.0_131/
export JRE_HOME=/usr/java/jdk1.8.0_131/jre

Atualize o ambiente:

source ~/.bash_profile

Verifique novamente:

[root@liptan-pc ~]# echo $JAVA_HOME
/usr/java/jdk1.8.0_131/

Nota sobre alternativas: Para muitos casos, o OpenJDK é uma alternativa adequada e mais simples de instalar via repositório:

yum -y install java-1.8.0-openjdk-devel

Use OpenJDK especialmente em produção quando licenciamento do Oracle JDK for uma preocupação.

Passo 2 - Instalar o Cassandra

Adicione o repositório do Apache Cassandra criando um arquivo de repositório:

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

Cole o conteúdo abaixo no arquivo:

[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

Instale o pacote Cassandra:

yum -y install cassandra

Recarregue os daemons do systemd:

systemctl daemon-reload

Inicie o serviço Cassandra:

systemctl start cassandra

Habilite para iniciar automaticamente no boot:

systemctl enable cassandra

Verifique o status do nó com nodetool:

nodetool status

Exemplo de saída quando o nó está UP:

[root@ip-172-31-7-136 ~]# nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address    Load       Tokens       Owns (effective)  Host ID                               Rack
UN  127.0.0.1  136.29 KiB  256          100.0%            b3d26649-9e10-4bee-9b3c-8e81c4394b2e  rack1

Solução rápida para erro de conexão nodetool

Se o nodetool gerar erro como:

nodetool: Failed to connect to '127.0.0.1:7199' - ConnectException: 'Connection refused (Connection refused)'.

Edite o arquivo de ambiente do Cassandra e configure o hostname RMI:

nano /etc/cassandra/default.conf/cassandra-env.sh

Encontre a linha:

# JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname="

Descomente e defina para o IP localhost ou hostname apropriado:

JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=127.0.0.1"

Reinicie o Cassandra:

systemctl restart cassandra

Verifique logs se continuar com problemas:

journalctl -u cassandra -xe

Também verifique portas e firewall:

ss -ltnp | grep 9042
firewall-cmd --permanent --add-port=9042/tcp
firewall-cmd --permanent --add-port=7199/tcp
firewall-cmd --reload

Usando a cqlsh e exemplo básico de CQL

Cassandra inclui a shell cqlsh para executar queries CQL.

cqlsh

Saída esperada:

[root@liptan-pc ~]# cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.0 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.

Exemplo simples para criar um keyspace e uma tabela:

CREATE KEYSPACE IF NOT EXISTS exemplo WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 1};
USE exemplo;
CREATE TABLE IF NOT EXISTS usuarios (id uuid PRIMARY KEY, nome text, email text);
INSERT INTO usuarios (id, nome, email) VALUES (uuid(), 'Alice', 'alice@exemplo.com');
SELECT * FROM usuarios;

Critérios de aceitação para instalação bem-sucedida

  • Cassandra responde em nodetool status com pelo menos um nó UP
  • cqlsh conecta-se ao endereço 127.0.0.1:9042
  • Serviço cassandra está ativo no systemctl

Boas práticas e segurança

  • Bind de interface: ajuste seeds, listen_address e rpc_address em /etc/cassandra/default.conf/cassandra.yaml
  • Autenticação: habilite autenticação interna (authenticator: PasswordAuthenticator) para produção
  • Criptografia: habilite SSL/TLS para comunicação entre nós e clientes quando necessário
  • Usuários e permissões: crie usuários com permissões mínimas
  • Monitore: configure métricas e backups regulares

Exemplo de comandos firewall para portas comuns:

firewall-cmd --permanent --add-port=7000/tcp
firewall-cmd --permanent --add-port=7001/tcp
firewall-cmd --permanent --add-port=7199/tcp
firewall-cmd --permanent --add-port=9042/tcp
firewall-cmd --reload

Diagnóstico e recuperação rápida

  • Verifique status do serviço:
systemctl status cassandra
  • Logs do Cassandra:
journalctl -u cassandra -b
tail -n 200 /var/log/cassandra/system.log
  • Se um nó não responder, isole problemas de rede, sincronize relógio (ntpd/chrony) e verifique configuração de seeds.

Plano de rollback simples

  • Pare o serviço Cassandra:
systemctl stop cassandra
  • Reverter alterações recentes em cassandra.yaml e cassandra-env.sh
  • Restaurar backup de dados se necessário (procedimento depende do método de backup utilizado)
  • Reiniciar o serviço e validar nodetool status

Checklist por função

  • Administrador de sistema: atualizar SO, configurar firewall, instalar Java, systemd
  • DBA/engenheiro de dados: configurar keyspaces, políticas de replicação, backups
  • DevOps: automação da instalação, monitoramento e alertas

Quando este procedimento falha

  • Se nodetool não conectar após ajustar RMI, verifique SELinux e permissões dos arquivos de configuração
  • Se cqlsh não conectar, confirme se native_transport está habilitado em cassandra.yaml e porta 9042 está aberta

Alternativas e migração

  • Considere usar pacotes do fornecedor ou imagens Docker oficiais para ambientes conteinerizados
  • Para novas implantações, verifique imagens do Cassandra no Docker Hub e orquestração Kubernetes

Conclusão

Apache Cassandra deve estar instalado e funcionando no seu servidor CentOS 7 após seguir estes passos. Para ambientes de produção, aplique as recomendações de segurança, monitoração e teste de failover antes de aceitar tráfego real.

Resumo final

  • Instale Java (Oracle JDK ou OpenJDK) e defina JAVA_HOME
  • Adicione repositório do Cassandra e instale o pacote
  • Inicie e habilite o serviço, verifique com nodetool e cqlsh
  • Aplique hardening e monitoração para produção
Autor
Edição

Materiais semelhantes

Instalar e usar Podman no Debian 11
Containers

Instalar e usar Podman no Debian 11

Apt‑pinning no Debian: guia prático
Administração de sistemas

Apt‑pinning no Debian: guia prático

Injete FSR 4 com OptiScaler em qualquer jogo
Tecnologia

Injete FSR 4 com OptiScaler em qualquer jogo

DansGuardian e Squid com NTLM no Debian Etch
Infraestrutura

DansGuardian e Squid com NTLM no Debian Etch

Corrigir erro de instalação no Android
Android

Corrigir erro de instalação no Android

KNetAttach: Pastas de Rede remota no KDE
KDE

KNetAttach: Pastas de Rede remota no KDE