Como configurar Cassandra Cluster em vários nós

⚡ Resumo Inteligente

Cassandra Cluster Um cluster agrupa vários nós para que os dados sejam distribuídos e nenhuma máquina única armazene tudo. Esta página explica os componentes do cluster, o particionador e o anel de token, os pré-requisitos, as configurações que unem os nós e como verificar o resultado.

  • 🧩 Cluster Estrutura: Os nós formam centros de dados, e os centros de dados formam um cluster que se comporta como um único banco de dados.
  • 🎯 Função de Particionador: Um hash da chave de partição gera um token, e o token decide qual nó armazena a linha.
  • ???? Nós de semente: As sementes são os pontos de contato com os quais um novo nó se comunica inicialmente; elas não são mestras.
  • ⚙️ Configurações de chave: Os parâmetros cluster_name, seeds, listen_address e rpc_address devem ser definidos de forma consistente no arquivo cassandra.yaml.
  • 🚀 Ordem de inicialização: Comece pelos nós iniciais, um de cada vez, e depois conecte os nós restantes.
  • Verificação: O comando `nodetool status` deve listar todos os nós como UN com uma distribuição de propriedade aproximadamente igual.

instalação Cassandra Cluster em vários nós

O que é a Cassandra Cluster?

A Cassandra cluster é uma das conchas do todo Cassandra base de dados. o Cassandra Um cluster contém diversas camadas diferentes de unidades de armazenamento, e cada camada contém as outras.

Grande organização como AmazonEmpresas como Facebook, etc., têm uma enorme quantidade de dados para gerenciar. Portanto, essas organizações não podem armazenar essa enorme quantidade de dados em uma única máquina. É aí que elas usam bancos de dados como... Cassandra com arquitetura distribuída.

Essas organizações armazenam essa enorme quantidade de dados em múltiplos nós. Esses nós se comunicam entre si. Para isso, Cassandra cluster é estabelecido.

  • Cluster É basicamente um grupo de nós, permitindo que os nós se comuniquem entre si facilmente.
  • O nó coordenador é o nó que recebe uma solicitação do cliente e se comunica com as réplicas em nome desse cliente. Qualquer nó pode atuar como coordenador para qualquer solicitação.

Particionador

Um particionador determina como os dados devem ser distribuídos no cluster. O particionador usa uma função hash para distribuir dados no cluster. É necessária uma chave de partição para calcular o hash. Esse hash é chamado token digital único, . Os dados são distribuídos com base neste token.

O particionador padrão é o Murmur3Partitioner, que produz tokens distribuídos uniformemente em um intervalo fixo. Cada nó possui um ou mais intervalos desse intervalo, e o conjunto de intervalos forma o particionador. token ringComo a atribuição é feita por hash e não por valor, adicionar um nó move apenas os intervalos que ele abrange, em vez de reorganizar todo o conjunto de dados.

Pré-requisitos para Cassandra Cluster

Existem os seguintes requisitos para configuração do cluster.

  1. Você deve ter várias máquinas, físicas ou virtuais, atuando como nós.
  2. Os nós devem ser capazes de se comunicar entre si na rede. As portas 7000 (para tráfego entre nós), 7001 (se o TLS estiver habilitado) e 9042 (para conexões de clientes) devem estar abertas entre eles.
  3. O Linux deve ser instalado em cada nó. É a plataforma. Cassandra É testado e suportado em.
  4. Apache Cassandra Deve ser instalado em todos os nós, na mesma versão. Versões diferentes não podem concluir um acordo de esquema.
  5. Um apoiado JDK Deve ser instalado em cada máquina, com a variável de ambiente JAVA_HOME configurada.
  6. Os relógios devem ser sincronizados com o NTP. Cassandra Resolve conflitos de escrita por meio do carimbo de data/hora, de modo que a deriva do relógio produza resultados incorretos silenciosamente.

O último requisito é o que mais frequentemente é ignorado e causa problemas de dados em vez de falhas na inicialização.

.

Como Instalar Cassandra Cluster no Linux

Cassandra O instalador deve ser instalado em cada máquina antes que qualquer uma delas possa ingressar em um cluster. As capturas de tela abaixo são do instalador gráfico do DataStax Enterprise, que era o método mais comum quando este guia foi escrito. Esse instalador não é mais distribuído para uso da comunidade, portanto, a abordagem atual é apresentada primeiro e o assistente é fornecido a seguir como referência.

Método atual: instalar o Apache Cassandra Instale o pacote ou o arquivo tar.gz binário em cada nó de forma idêntica e, em seguida, verifique se cada um inicia sozinho antes de tentar conectá-los.

tar -xzf apache-cassandra-x.y.z-bin.tar.gz -C /opt/
export CASSANDRA_HOME=/opt/apache-cassandra-x.y.z
$CASSANDRA_HOME/bin/cassandra -f

Após um único nó iniciar corretamente, pare-o, limpe seu diretório de dados e prossiga para a seção de configuração do cluster abaixo.

Passo 1) execute o Cassandra Configuração da edição empresarial. Linux No terminal, execute o instalador. A seguinte página será exibida.

Instale Cassandra Cluster no Linux

Esta página não fornece nenhuma informação necessária. Ele apenas fornece informações sobre o Cassandra versão. Então passe esta página e pressione o botão próximo.

Passo 2) Aceite o contrato de licença. Após clicar no botão "Próximo", a seguinte página será exibida.

Instale Cassandra Cluster no Linux

Esta página fornece informações sobre os pacotes e subpacotes no Cassandra que será instalado. Abaixo, será solicitada a licença. Marque a caixa de seleção "Aceito o contrato" e clique no botão "Avançar".

Passo 3) Instale o Builder e clique em Avançar. Após clicar em Avançar, você verá a seguinte página.

Instale Cassandra Cluster no Linux

Esta página pergunta sobre as opções de instalação.

  1. Em primeiro lugar, irá pedir o diretório de instalação. Por padrão, ele é instalado no diretório inicial.
  2. Em seguida, pergunta sobre o tipo de instalação, selecione Instalação Simples.
  3. Em seguida, ele pergunta sobre o sistema de atualização, marque 'não'.
  4. Em seguida, é solicitada a interface padrão. Existem duas opções: instalar no localhost ou selecionar um endereço IP. Selecione o endereço IP para a instalação.
  5. Pressione o próximo botão.

Passo 4) Configure o nó e clique em Avançar. Após clicar no botão Avançar, a seguinte página será exibida.

Instale Cassandra Cluster no Linux

Esta página pergunta sobre a configuração do nó.

  1. Primeiro, selecione o tipo de nó 'Cassandra Nó'.
  2. Em seguida, em Nome do Anel, dê o nome do seu cluster. Cluster o nome deve ser o mesmo para todos os nós no mesmo cluster.
  3. Em seguida, selecione a semente. A semente é o nó com o qual os outros nós que não são sementes entram em contato ao iniciar.
  4. Depois de fornecer essas informações, pressione o botão próximo.

Passo 5) Instale o agente de monitoramento. Após clicar no botão "Avançar", a seguinte página será exibida. Esta página solicita o endereço IP onde o agente deve ser instalado.

  1. O agente é necessário para o console de monitoramento, onde todos os nós podem ser observados em um único local.
  2. Após fornecer essas informações, pressione o botão próximo.

Instale Cassandra Cluster no Linux

Passo 6) Pressione "Avançar" para iniciar a instalação. Após pressionar o botão "Avançar", a seguinte página será exibida.

Instale Cassandra Cluster no Linux

Agora a configuração está pronta para ser instalada. Pressione o botão seguinte.

Passo 7) Aguarde o processo de instalação. Após clicar no botão "Avançar", a seguinte página será exibida.

Instale Cassandra Cluster no Linux

A instalação será iniciada.

Passo 8) Clique no botão Concluir. Após a instalação, a seguinte página será exibida. Nessa mesma página, você verá a marca de seleção da opção que aparece por padrão.

Instale Cassandra Cluster no Linux

Configurando o cassandra.yaml para unir nós

A instalação por si só não cria um cluster. Os nós só se encontram quando quatro configurações no arquivo cassandra.yaml coincidem, e é nesse arquivo que a maioria das configurações de cluster falha.

cluster_name: 'Guru99 Cluster'
seed_provider:
  - class_name: org.apache.cassandra.locator.SimpleSeedProvider
    parameters:
      - seeds: "192.168.1.10,192.168.1.11"
listen_address: 192.168.1.10
rpc_address: 0.0.0.0
broadcast_rpc_address: 192.168.1.10
endpoint_snitch: GossipingPropertyFileSnitch
  • nome_do_cluster Deve haver correspondência em todos os nós. Uma incompatibilidade é a causa mais comum de um nó se recusar a participar.
  • SEEDS Lista os pontos de contato com os quais um nó inicial se comunica. Dois ou três nós iniciais por centro de dados são suficientes; tornar cada nó um nó inicial impede o bootstrap automático.ping.
  • endereço_de_escuta é o endereço que outros nós usam para alcançar este. Deve ser um endereço roteável real, nunca localhost.
  • ponto de extremidade_dedo conta Cassandra Layout do rack e do centro de dados. GossipingO PropertyFileSnitch é a opção mais comum, com os valores definidos em cassandra-rackdc.properties.

Alterar o nome do snitch ou do cluster depois que os dados já existirem requer etapas adicionais, portanto, ambas as decisões devem ser tomadas antes da inicialização do primeiro nó.

Comece Cassandra Node

Depois de instalar Cassandra Em cada nó, inicie os servidores e siga os passos abaixo. A ordem é importante: inicie primeiro os nós de inicialização (seed nodes), um de cada vez, aguardando que cada um reporte estar ativo antes de iniciar o próximo. Iniciar vários nós simultaneamente pode causar conflitos de intervalo de tokens.

Passo 1) Vou ao Cassandra Diretório de instalação e inicie o servidor.

bin/cassandra -f

Comece Cassandra Node

Ao executar este comando, o Cassandra O servidor será iniciado. Aqui está a captura de tela onde o Cassandra O servidor está iniciando.

Comece Cassandra Node

Após aproximadamente um minuto, o servidor estará online. Inicie cada servidor de nó um por um. Depois de iniciar todos os servidores de nó, seu Cassandra cluster está pronto para uso.

Passo 2) Verifique se todos os nós se juntaram, consultando o anel a partir de qualquer um deles.

nodetool status
nodetool describecluster

Cada nó deve aparecer com o status UN, o que significa "Ativo" e "Normal", e a coluna "Owns" deve mostrar porcentagens aproximadamente iguais. Uma única versão do esquema na saída do describecluster confirma que todos os nós concordam com o esquema.

A maioria das falhas ocorre em três sintomas. Um nó que nunca aparece geralmente tem um nome de cluster incompatível ou a porta 7000 bloqueada. Um nó travado em UJ, ao se juntar, ainda está transmitindo dados e simplesmente precisa de tempo em um cluster grande. A propriedade extremamente desigual aponta para uma configuração incorreta do snitch, onde os nós foram colocados no rack ou data center errado.

Com o anel íntegro, as configurações de replicação para cada espaço de chaves determinam como os dados se distribuem por ele, conforme descrito em Cassandra espaço de chave tutorial e o Cassandra arquitetura demolir.

Perguntas Frequentes

Três, correspondendo ao fator de replicação padrão de três. Isso permite que as operações de leitura e gravação do QUORUM continuem enquanto um nó estiver inativo para manutenção ou devido a uma falha.

Não. Os nós seed servem apenas como pontos de contato durante a inicialização e a comunicação entre redes. Eles armazenam dados como qualquer outro nó, e a perda de um deles não afeta o cluster em execução.

Instale a mesma versão, aponte-a para os nós de inicialização existentes e inicie-a. Ela inicializa automaticamente transmitindo seus intervalos de tokens. Execute o comando `nodetool cleanup` nos outros nós em seguida.

Considerando o volume de dados, o fator de replicação e as metas de throughput, a IA gera uma quantidade inicial razoável de nós. Valide-a com um teste de carga, pois a sobrecarga de compactação e reparo varia de acordo com a carga de trabalho.

Sim. Fornecer o arquivo system.log juntamente com o cassandra.yaml geralmente revela a causa rapidamente, na maioria das vezes uma incompatibilidade no nome do cluster, uma porta bloqueada ou o listen_address definido como localhost.

Resuma esta postagem com: