Pplware

Apache Cassandra: Tecnologia NoSQL de alta disponibilidade

O Apache Cassandra é um Sistema de gestão de bases de dados NoSQL desenvolvido para garantir rápida escalabilidade e alta disponibilidade dos dados. Hoje ensinamos como devem instalar e configurar o Apache Cassandra em duas máquinas.

O Apache Cassandra foi criado inicialmente pelo Facebook, como open source, em 2008. Atualmente o projeto é baseado na tecnologia emergente NoSQL e pertence à Fundação Apache.

Principais características do Apache Cassandra

Tutorial para a implementação de um cluster Cassandra com dois nodes

Cenário – Duas Máquina Virtuais com Ubuntu 14.04 no mesmo segmento de rede.

A implementação é igual para os dois nós, sendo diferente apenas nos ficheiros de configuração do Cassandra de cada um. Para instalar o Apache Cassandra devem seguir os seguintes passos:

Passo 1 – Adicionar o repositório do Java e atualizar os repositórios do sistema

sudo add-apt-repository ppa:webupd8team/java sudo apt-get update
sudo apt-get update

Passo 2 – Instalar o Java 8

sudo apt-get install oracle-java8-set-default

Passo 3 – Adicionar o repositório do Cassandra 3.6 e respetiva chave

echo "deb http://www.apache.org/dist/cassandra/debian 36x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
curl https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add – sudo apt-get update

Caso encontrem este erro:

GPG error: http://www.apache.org 36x InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY A278B781FE4B2BDA

Adicionem a seguinte chave pública e façam novamente update aos repositórios

sudo apt-key adv --keyserver pool.sks-keyservers.net --recv-key A278B781FE4B2BDA
sudo apt-get update

Passo4 – Instalar o Apache Cassandra

sudo apt-get install cassandra

Após a instalação o Cassandra  já deverá estar em execução no sistema. Pode-se verificar através do seguinte comando:

sudo service cassandra status

Apagar os “datasets” default de forma a evitar potenciais erros depois da configuração inicial

sudo rm -rf /var/lib/cassandra/data/system/*

Configurar os nós do cluster: os ficheiros de configuração encontram-se no diretório /etc/cassandra, podem editar o ficheiro cassandra.yaml com um editor de texto ao vosso critério

sudo nano /etc/cassandra/cassandra.yaml

Vamos então alterar os seguintes campos:

seeds: Contém os endereços IP dos nós do nosso cluster;

listen_address: Endereço IP que os outros nodes vão usar para se ligar a este nó;

rpc_address: Endereço IP para se ligarem ao Cassandra Shell através de outro nó;

endpoint_snitch: É usado para localizar os nodes e tratar dos pedidos de encaminhamento entre nodes, para uma implementação só de um cluster o default SimpleSnitch é suficiente mas o recomendado para produção é o GossipingPropertyFileSnitch onde o rack e datacenter estão definidos no ficheiro cassandra-rackdc.properties e propagados para outros nodes via gossip, os outros tipos estão explícitos no ficheiro de configuração e podem ser utilizados consoante o cenário em questão;

auto_bootstrap: Não está presente na configuração por default mas irá ser adicionado manualmente no fim da configuração para false que é o recomendado para novos clusters sem dados;

Logo a configuração para esta implementação será a seguinte:

Nó 1

-seeds: “172.16.10.119,172.16.10.120”

listen_address: 172.16.10.119

rpc_address: 172.16.10.119

endpoint_snitch: GossipingPropertyFileSnitch

auto_bootstrap: false

Nó 2

-seeds: “172.16.10.119,172.16.10.120”

listen_address: 172.16.10.120

rpc_address: 172.16.10.120

endpoint_snitch: GossipingPropertyFileSnitch

auto_bootstrap: false

Após as configurações estarem concluídas, vamos testar se o cluster já está a funcionar como previsto:

sudo service cassandra start

Podem verificar o estado do serviço com os nós usando o comando: sudo nodetool status

Se já conseguem ver os dois nodes no cluster, a configuração está concluída e estão prontos a começar a construir a vossas bases de dados no Cassandra Shell (CQLSH).

Num próximo tutorial vamos ensinar a usar o Cassandra, criando uma estrutura de dados. Estejam atentos.

Exit mobile version