GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer la réplication Cassandra sur Ubuntu 16.04

Si vous avez des données qui ne conviennent pas à une base de données relationnelle, il y a de fortes chances que vous recherchiez une solution NoSQL. Les options NoSQL sont diverses, Aerospike, MongoDB, Redis et bien d'autres tentent de résoudre le problème du Big Data de différentes manières. Dans cet article, nous nous concentrerons sur la réplication avec cassandra. Cette base de données tire en fait le nom de la mythologie grecque, Cassandra était la voyante qui prédisait toujours correctement l'avenir, mais tout le monde ne la croyait pas. Ainsi, les créateurs de cette base de données prédisent que NoSQL supplantera à l'avenir les bases de données relationnelles, mais ils ne s'attendent pas à ce que les gens du SGBDR les croient.

Exigences

Pour suivre cet article, vous devez avoir 3 nœuds configurés un par un à l'aide de notre précédent guide de configuration de Cassandra. Vous devriez avoir les trois nœuds opérationnels et trois fenêtres de terminal avec une session ssh dans chacune. Après cela, nous commençons à connecter les nœuds Cassandra en un seul cluster.

Construire un cluster

Connecté en tant qu'utilisateur Cassandra, vous devez modifier la configuration de Cassandra dans chacun des trois nœuds. Le fichier s'appelle cassandra.yaml

nano ~/conf/cassandra.yaml

Cela doit être configuré sur les 3 serveurs. La ligne de graines peut être entrée dans un serveur puis copiée, mais les adresses IP de chaque serveur doivent être entrées authentiques.

cluster_name: 'Test Cluster'

seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: "your-server-ip,your-server-ip-2,your-server-ip-3"

listen_address: your-server-ip

rpc_address: your-server-ip

Pour configurer entpoint snitch, collez ce oneliner sur les trois nœuds :

sed -i 's/endpoint_snitch: SimpleSnitch/endpoint_snitch: GossipingPropertyFileSnitch/g' ~/conf/cassandra.yaml

Et utilisez cette commande pour ajouter la ligne d'amorçage à la fin du fichier.

echo 'auto_bootstrap: false' >> ~/conf/cassandra.yaml

Le mouchard que nous avons configuré a un nom de centre de données incompatible, dc1 au lieu de datacenter1, alors corrigeons cela sur les trois nœuds :

sed -i 's/dc=dc1/dc=datacenter1/g' ~/conf/cassandra-rackdc.properties

Redémarrez les trois nœuds si nécessaire, et après cela, le statut de sh bin/nodetool devrait vous donner quelque chose comme ceci :

La prochaine chose que nous devons faire est de nous connecter à la console de l'un des nœuds à l'autre nœud. Nous devons taper l'adresse du serveur et le port 9042 après cqlsh comme ceci :

cqlsh ip.addr.of.node 9042

La connexion à l'hôte local avec cqlsh uniquement ne fonctionnera pas.

Configuration de la réplication

Si vous vous demandez pourquoi nous avons modifié la configuration par défaut du snitch, je vais maintenant vous expliquer. Il existe généralement deux stratégies de réplication avec Cassandra. SimpleStrategy et NetworkTopologyStrategy. Le premier utilise le mouchard par défaut, le second utilise le mouchard que nous avons défini. Nous avons besoin de cette stratégie avancée si nous voulons avoir une mise à l'échelle facile du cluster. Avec cette stratégie, vous pouvez ajouter plus de nœuds dans un autre centre de données et étendre le cluster à travers le monde.

Donc, dans la console cqlsh, nous devons taper ceci :

CREATE KEYSPACE linoxide WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1' : 3};

Il créera un nouvel espace de clés nommé linoxide, avec un jeu de réplication avec NetworkTopologyStrategy et créera 3 répliques dans datacenter1.

Ok, voyons alors ce que nous avons créé. La commande est en gras, le reste est affiché.

SELECT * FROM system_schema.keyspaces;
 keyspace_name | durable_writes | replication
--------------------+----------------+---------------------------------------------------------------------------------------
linoxide | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'datacenter1': '3'}
system_auth | True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '1'}
system_schema | True | {'class': 'org.apache.cassandra.locator.LocalStrategy'}
system_distributed | True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '3'}
system | True | {'class': 'org.apache.cassandra.locator.LocalStrategy'}
system_traces | True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '2'}

Quittons le cqlsh et émettons à nouveau la commande nodetool, pour voir les changements dans le cluster.

nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 45.33.77.49 250.7 KiB 256 100.0% 34689c1e-939c-4bd3-8774-ac4534880744 rack1
UN 45.56.109.42 188.02 KiB 256 100.0% 7542e062-d6d3-473a-b79c-4f5e11547c1f rack1
UN 45.33.69.15 236.58 KiB 256 100.0% 2f10690c-1e6e-4297-bda6-c3fb36279495 rack1

Notez que chaque nœud dispose désormais de 100 % des données, contre 66 % auparavant. Cela est dû au facteur de réplication 3 que nous avons défini, nous avons maintenant une copie des données sur chaque nœud.

Conclusion

Donc là, nous avons configuré le cluster Cassandra avec réplication. À partir de là, vous pouvez ajouter plus de nœuds, de racks et de centres de données, vous pouvez importer une quantité arbitraire de données et modifier le facteur de réplication dans tout ou partie des centres de données. Pour savoir comment procéder, vous pouvez vous référer à la documentation officielle de Cassandra. J'espère que ce guide vous a aidé à plonger dans l'avenir de la technologie des bases de données et que vous avez décidé de croire Cassandra. Merci d'avoir lu et bonne journée.


Ubuntu
  1. Comment installer Cassandra sur Ubuntu 18.04

  2. Comment configurer HAProxy dans Ubuntu 16.04

  3. Comment configurer le pare-feu UFW sur Ubuntu 18.04

  4. Comment configurer Elasticsearch sur Ubuntu 18.04 et 16.04 LTS

  5. Comment configurer la réplication maître-esclave MariaDB sur Ubuntu 18.04

Comment configurer le serveur Git sur Ubuntu 20.04

Comment configurer le serveur Rsyslog sur Ubuntu

Comment configurer le serveur DHCP sur Ubuntu

Comment configurer la liaison réseau dans Ubuntu 20.04

Comment installer Apache Cassandra sur Ubuntu 14.04

Comment configurer le pare-feu UFW sur Ubuntu 20.04