Apache Cassandra est un système de gestion de base de données NoSQL hautes performances open source sans point de défaillance unique. Apache Cassandra utilise un modèle de cluster à la place utilise le modèle de table vu dans MySQL/PostgreSQL. Cassandra convient aux applications qui ne peuvent pas se permettre de perdre des données. Les données sont automatiquement répliquées sur plusieurs nœuds pour la tolérance aux pannes. Les nœuds défaillants peuvent être remplacés automatiquement sans temps d'arrêt.
Apache Cassandra est le meilleur choix pour vous si vous recherchez l'évolutivité, la haute disponibilité et les hautes performances.
Dans ce tutoriel, nous allons vous montrer comment installer Apache Cassandra sur CentOS 8.
Exigences
- Un serveur exécutant CentOS 8 avec au moins 2 Go de RAM.
- Un mot de passe root est configuré sur votre système.
Mise en route
Avant de commencer, il est recommandé de mettre à jour votre serveur avec la dernière version stable. Vous pouvez mettre à jour votre serveur avec la commande suivante :
dnf update
Une fois votre serveur mis à jour, redémarrez-le pour appliquer les modifications.
Installer Java
Apache Cassandra nécessite OpenJDK 8 et Python2 pour être installé sur le système. Vous pouvez installer OpenJDK 8 et Python2 à l'aide de la commande suivante :
dnf install java-1.8.0-openjdk-devel python2
Une fois les deux packages installés, vous pouvez vérifier la version Java à l'aide de la commande suivante :
java -version
Vous devriez voir le résultat suivant :
openjdk version "1.8.0_232" OpenJDK Runtime Environment (build 1.8.0_232-b09) OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
Installer Apache Cassandre
Par défaut, Apache Cassandra n'est pas disponible dans le référentiel par défaut de CentOS 8. Vous devrez donc créer un dépôt pour cela. Vous pouvez créer un nouveau fichier de dépôt /etc/yum.repos.d/cassandra.repo comme indiqué ci-dessous :
nano /etc/yum.repos.d/cassandra.repo
Ajoutez les lignes suivantes :
[cassandra] name = DataStax Repo for Apache Cassandra baseurl = http://rpm.datastax.com/community enabled = 1 gpgcheck = 0
Enregistrez et fermez le fichier puis installez Apache Cassandra avec la commande suivante :
dnf install dsc20
Une fois l'installation terminée, vous pouvez passer à l'étape suivante
Créer un fichier d'unité Systemd pour Cassandra
Par défaut, le package Apache Cassandra n'est pas en mesure de générer un fichier de service pour lui-même. Vous devrez donc créer un fichier de service systemd pour gérer le service Cassandra. Vous pouvez le créer avec la commande suivante :
nano /etc/systemd/system/cassandra.service
Ajoutez les lignes suivantes :
[Unit] Description=Apache Cassandra After=network.target [Service] PIDFile=/var/run/cassandra/cassandra.pid User=cassandra Group=cassandra ExecStart=/usr/sbin/cassandra -f -p /var/run/cassandra/cassandra.pid Restart=always [Install] WantedBy=multi-user.target
Enregistrez et fermez le fichier. Ensuite, rechargez le démon systemd avec la commande suivante :
systemctl daemon-reload
Ensuite, démarrez le service Cassandra et activez-le après le redémarrage du système avec la commande suivante :
systemctl start cassandra
systemctl enable cassandra
Vous pouvez également vérifier l'état du service Cassandra avec la commande suivante :
systemctl status cassandra
Vous devriez voir le résultat suivant :
? cassandra.service - Apache Loaded: loaded (/etc/systemd/system/cassandra.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2019-12-07 01:25:26 EST; 1min 51s ago Main PID: 1888 (java) Tasks: 53 (limit: 25044) Memory: 272.7M CGroup: /system.slice/cassandra.service ??1888 java -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar -XX:+CMSClassUnloadingEnabled -XX:+UseThreadPriorities -XX:Threa> Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,054 Writing [email protected](10104/101040 serialized/live bytes, 259 ops) Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,118 Completed flushing /var/lib/cassandra/data/system/local/system-local-jb-4-Data.db > Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,124 Compacting [SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-> Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,169 Node localhost/127.0.0.1 state jump to normal Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,294 Compacted 4 sstables to [/var/lib/cassandra/data/system/local/system-local-jb-5,].> Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,322 Starting listening for CQL clients on localhost/127.0.0.1:9042... Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,376 Using TFramedTransport with a max frame size of 15728640 bytes. Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,378 Binding thrift service to localhost/127.0.0.1:9160 Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,391 Using synchronous/threadpool thrift server on localhost : 9160 Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,422 Listening for thrift clients...
Tester l'installation d'Apache Cassandra
Apache Cassandra est maintenant installé et en cours d'exécution sur votre serveur. Vous pouvez vérifier s'il est en cours d'exécution ou non avec la commande suivante :
nodetool status
Vous devriez voir la commande suivante :
Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 127.0.0.1 46.11 KB 256 100.0% 2a680007-8c30-4bde-9a3f-9fa212b96d11 rack1
Configurer Apache Cassandre
Par défaut, Cassandra est configurée pour accepter la connexion de l'hôte local uniquement.
Vous pouvez également vous connecter à Cassandra via le langage de requête Cassandra. Pour accéder au shell CQL, exécutez la commande suivante :
cqlsh
Vous devriez voir le résultat suivant :
Connected to Test Cluster at localhost:9160. [cqlsh 4.1.1 | Cassandra 2.0.17 | CQL spec 3.1.1 | Thrift protocol 19.39.0] Use HELP for help. cqlsh>
Dans la sortie ci-dessus, vous devriez voir que le cluster Cassandra est nommé "Test Cluster". Vous pouvez également modifier ce nom de cluster par défaut.
Pour ce faire, connectez-vous au shell CQL avec la commande suivante :
cqlsh
Ensuite, exécutez la commande suivante pour changer le nom du cluster en "HowtoForge Cluster" comme indiqué ci-dessous :
cqlsh> UPDATE system.local SET cluster_name = 'HowtoForge Cluster' WHERE KEY = 'local';
Ensuite, quittez le shell avec la commande suivante :
cqlsh>exit;
Ensuite, vous devrez également modifier le fichier de configuration cassandra.yaml et définir votre nouveau nom de cluster :
nano /etc/cassandra/default.conf/cassandra.yaml
Modifiez la ligne suivante :
cluster_name: 'HowtoForge Cluster'
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, effacez le cache système avec la commande suivante :
nodetool flush system
Enfin, redémarrez le service Apache Cassandra pour appliquer la nouvelle configuration :
systemctl restart cassandra
Maintenant, connectez-vous au shell CQL avec la commande suivante :
cqlsh
Vous devriez voir que le nom du cluster est maintenant changé en "HowtoForge Cluster":
Connected to HowtoForge Cluster at localhost:9160. [cqlsh 4.1.1 | Cassandra 2.0.17 | CQL spec 3.1.1 | Thrift protocol 19.39.0] Use HELP for help. cqlsh>
Conclusion
Toutes nos félicitations! vous avez installé et configuré avec succès Apache Cassandra sur CentOS 8. N'hésitez pas à me demander si vous avez des questions.