Apache Cassandra est un système de gestion de base de données distribué NoSQL open source. Cassandra peut être mise à l'échelle horizontalement en ajoutant plus de nœuds sur lesquels les données sont répliquées automatiquement. Les nœuds peuvent être ajoutés ou supprimés sans aucun temps d'arrêt. Les nœuds peuvent être organisés logiquement en cluster ou en anneau et configurés sur plusieurs centres de données afin d'améliorer la vitesse et la fiabilité des applications hautes performances.
Dans ce tutoriel, nous allons apprendre à installer Apache Cassandra sur les systèmes d'exploitation AlmaLinux et Rocky Linux 8. Les commandes pour les deux systèmes d'exploitation seront identiques, sauf indication contraire.
Prérequis
-
Un serveur exécutant AlmaLinux ou Rocky Linux avec un minimum de 2 Go de RAM.
-
Un utilisateur non sudo avec des privilèges root.
-
Tout est mis à jour.
$ sudo dnf update
Étape 1 - Installer Java
Apache Cassandra nécessite Java 8 pour fonctionner. La dernière version de Cassandra inclut une prise en charge expérimentale de Java 11, mais pour notre tutoriel, nous nous en tiendrons à Java 8.
$ sudo dnf install java-1.8.0-openjdk java-1.8.0-openjdk-devel
Confirmez l'installation de Java.
$ java -version openjdk version "1.8.0_312" OpenJDK Runtime Environment (build 1.8.0_312-b07) OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
Étape 2 - Installer Apache Cassandra
La première étape consiste à ajouter le dépôt officiel de Cassandra.
Exécutez la commande suivante pour créer le fichier de référentiel /etc/yum.repos.d/cassandra.repo
et entrez les détails.
$ sudo tee /etc/yum.repos.d/cassandra.repo <<EOF > [cassandra] > name=Apache Cassandra > baseurl=https://www.apache.org/dist/cassandra/redhat/40x/ > gpgcheck=1 > repo_gpgcheck=1 > gpgkey=https://www.apache.org/dist/cassandra/KEYS > EOF
Maintenant que le fichier référentiel est créé, installez Cassandra.
$ sudo dnf install cassandra -y
Étape 3 - Installer Cqlsh
Nous utiliserons le shell CQL (cqlsh ) outil pour interagir avec Cassandra. L'outil est compatible avec Python 2.7 ou Python 3.6+. Pour notre tutoriel, nous utiliserons Python 3.8. Installez Python 3.8.
$ sudo dnf install python38
Définissez Python 3.8 comme version Python par défaut.
$ sudo update-alternatives --config python There are 3 programs which provide 'python'. Selection Command ----------------------------------------------- *+ 1 /usr/libexec/no-python 2 /usr/bin/python3 3 /usr/bin/python3.8 Enter to keep the current selection[+], or type selection number: 3
Plusieurs options vous seront présentées. Nous choisirons le numéro 3 pour définir Python 3.8 comme version par défaut dans notre cas.
Confirmez l'installation de Python.
$ python --version Python 3.8.8
Après avoir utilisé les update-alternatives
utilitaire, vous n'avez pas besoin d'utiliser le python3
commande.
Installez cqlsh en utilisant le gestionnaire de packages pip Python.
$ pip3 install --user cqlsh
Confirmez le cqlsh installer.
$ cqlsh --version cqlsh 6.0.0
Étape 4 - Créer un fichier d'unité Systemd pour Cassandra
Créez et ouvrez le /etc/systemd/system/cassandra.service
pour l'édition.
$ sudo nano /etc/systemd/system/cassandra.service
Collez-y le code suivant.
[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 le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.
Rechargez le démon de service.
$ sudo systemctl daemon-reload
Activez et démarrez le service Cassandra.
$ sudo systemctl enable cassandra --now
Vérifiez l'état du service.
$ sudo systemctl status cassandra ? cassandra.service - Apache Cassandra Loaded: loaded (/etc/systemd/system/cassandra.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2021-12-30 11:07:43 UTC; 12s ago Main PID: 4679 (java) Tasks: 48 (limit: 23696) Memory: 1.3G CGroup: /system.slice/cassandra.service ??4679 /usr/bin/java -ea -da:net.openhft... -XX:+UseThreadPriorities -XX:+HeapDumpOnOutOfMemoryError -Xss256>
Vous pouvez également vérifier l'état à l'aide de nodetool
commande.
$ 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 69.09 KiB 16 100.0% 2fe7ccae-2af9-4841-9bff-bffa29f10dc5 rack1
Étape 5 - Configurer Cassandra
L'emplacement par défaut des fichiers de configuration pour Cassandra est /etc/cassandra
. L'emplacement par défaut des répertoires de journaux et de données est /var/log/cassandra
et /var/lib/cassandra
.
Les paramètres de niveau JVM tels que la taille du tas peuvent être définis via le /etc/cassandra/conf/cassandra-env.sh
dossier. Vous pouvez passer des arguments de ligne de commande JVM supplémentaires au JVM_OPTS
variable. Les arguments sont passés à Cassandra au démarrage.
5.1 Activer l'authentification de l'utilisateur
Pour activer l'authentification de l'utilisateur, faites d'abord une sauvegarde de /etc/cassandra/conf/cassandra.yaml
fichier.
$ sudo cp /etc/cassandra/conf/cassandra.yaml /etc/cassandra/conf/cassandra.yaml.backup
Ouvrez le cassandra.yaml
fichier à éditer.
$ sudo nano /etc/cassandra/conf/cassandra.yaml
Localisez les paramètres suivants dans ce fichier.
authenticator: AllowAllAuthenticator authorizer: AllowAllAuthorizer roles_validity_in_ms: 2000 permissions_validity_in_ms: 2000
Modifiez les valeurs des paramètres comme indiqué ci-dessous.
. . . authenticator: org.apache.cassandra.auth.PasswordAuthenticator authorizer: org.apache.cassandra.auth.CassandraAuthorizer roles_validity_in_ms: 0 permissions_validity_in_ms: 0 . . .
Vous pouvez configurer d'autres paramètres en fonction de vos besoins. S'ils sont commentés, décommentez-les.
Une fois terminé, enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.
Redémarrez Cassandra pour activer les paramètres modifiés.
$ sudo systemctl restart cassandra
5.1.1 - Ajouter un administrateur superutilisateur
Maintenant que nous avons activé l'authentification, nous devons créer un utilisateur. Pour ce faire, nous utiliserons l'utilitaire shell Cassandra Command. Connectez-vous avec les identifiants de l'utilisateur par défaut cassandra
.
$ cqlsh -u cassandra -p cassandra
Créez un nouveau superutilisateur. Remplacer [username]
et [yourpassword]
avec vos identifiants.
[email protected]> CREATE ROLE [username] WITH PASSWORD = '[yourpassword]' AND SUPERUSER = true AND LOGIN = true;
Déconnectez-vous.
[email protected]> exit
Reconnectez-vous avec le nouveau compte superutilisateur.
$ cqlsh -u username -p yourpassword
Supprimez les autorisations élevées de la valeur par défaut cassandra
compte.
[email protected]> ALTER ROLE cassandra WITH PASSWORD = 'cassandra' AND SUPERUSER = false AND LOGIN = false; [email protected]> REVOKE ALL PERMISSIONS ON ALL KEYSPACES FROM cassandra;
Accordez toutes les autorisations au compte superutilisateur.
[email protected]> GRANT ALL PERMISSIONS ON ALL KEYSPACES TO '[username]';
Déconnectez-vous.
[email protected]> exit
5.2 - Modifier le fichier de configuration de la console
Si vous souhaitez personnaliser le Cassandra Shell, vous pouvez le faire en modifiant le cqlshrc
dossier. L'emplacement par défaut du fichier est dans le ~/.cassandra
annuaire. Si vous souhaitez le charger à partir d'un répertoire différent, vous pouvez passer l'argument --cqlshrc /customdirectory
au cqlsh
outil en cours d'exécution.
Vous pouvez trouver un exemple de fichier sur /etc/cassandra/conf/cqlshrc.sample
contenant tous les paramètres que vous pouvez configurer concernant le Cassandra Shell.
Copiez et renommez le fichier d'exemple en ~/.cassandra
répertoire.
$ sudo cp /etc/cassandra/conf/cqlshrc.sample ~/.cassandra/cqlshrc
Mettre à jour le cqlshrc
fichier avec les autorisations requises.
$ sudo chmod 600 ~/.cassandra/cqlshrc $ sudo chown $USER:$USER ~/.cassandra/cqlshrc
Ouvrez le fichier pour le modifier.
$ nano ~/.cassandra/cqlshrc
Nous allons configurer le shell pour qu'il se connecte automatiquement avec les informations d'identification du superutilisateur. Trouvez la section suivante et remplissez-la avec votre nom d'utilisateur et votre mot de passe.
.... [authentication] ;; If Cassandra has auth enabled, fill out these options username = [superuser] password = [password] ....
Modifiez tous les autres paramètres que vous souhaitez modifier. Certains paramètres sont commentés à l'aide de ;;
. Décommentez-les en supprimant les doubles points-virgules, puis effectuez la modification.
Une fois terminé, enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.
Connectez-vous au shell Cassandra avec vos nouvelles modifications.
$ cqlsh Connected to Test Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. [email protected]>
5.3 - Renommer le cluster
Enfin, nous allons renommer le nom du cluster de Test Cluster au nom que vous avez choisi.
Connectez-vous au cqlsh
borne.
$ cqlsh
Remplacez le [clustername]
avec votre nouveau nom de cluster dans la commande ci-dessous.
[email protected]> UPDATE system.local SET cluster_name = '[new_name]' WHERE KEY = 'local';
Quitter le shell
[email protected]> exit
Ouvrez le fichier /etc/cassandra/conf/cassandra.yaml
pour l'édition.
$ sudo nano /etc/cassandra/conf/cassandra.yaml
Remplacer la valeur de la variable cluster_name
avec le nom de votre choix.
... # The name of the cluster. This is mainly used to prevent machines in # one logical cluster from joining another. cluster_name: '[new_name]' ...
Une fois terminé, enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.
Videz le cache système de Cassandra.
$ nodetool flush system
Redémarrez Cassandra.
$ sudo systemctl restart cassandra
Connectez-vous au shell pour voir le nouveau nom.
$ cqlsh Connected to HowtoForge Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. [email protected]>
Conclusion
Dans ce didacticiel, vous avez appris à installer Apache Cassandra sur un serveur AlmaLinux ou Rocky Linux. Vous avez également appris à ajouter une authentification utilisateur et à effectuer certaines configurations de base. Pour en savoir plus, consultez la documentation officielle de Cassandra. Si vous avez des questions, postez-les dans les commentaires ci-dessous.