Apache Cassandra est une base de données NoSQL open source. L'une de ses principales caractéristiques est sa nature décentralisée qui offre une tolérance aux pannes unique. La réplication de nos données dans les centres de données signifie que notre production ne souffrira pas de la perte de l'un de nos sites, ce dont rêvent tous les administrateurs système (ou vraiment heureux d'avoir une telle configuration).
Dans ce didacticiel, nous allons installer Cassandra sur Red Hat Enterprise Linux 8 en ajoutant le référentiel Cassandra, installer le logiciel et configurer tout le reste nécessaire pour que notre service soit opérationnel et facile à gérer.
Dans ce didacticiel, vous apprendrez :
- Comment ajouter un référentiel Cassandra
- Comment installer les packages nécessaires
- Comment réparer le fichier d'unité systemd
- Comment tester Cassandra avec cqlsh
Interroger les tables système dans Cassandra sur RHEL 8
Configuration logicielle requise et conventions utilisées
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | Red Hat Enterprise Linux 8 |
Logiciel | Apache Cassandre 3.11 |
Autre | Accès privilégié à votre système Linux en tant que root ou via le sudo commande. |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Comment installer Cassandra sur Redhat 8 instructions étape par étape
Red Hat Enterprise Linux utilise un empaquetage basé sur rpm, et Apache Cassandra fournit un référentiel rpm. Bien que toutes les dépendances ne soient pas incluses, les problèmes à résoudre ne sont pas très compliqués. Tout ce dont nous avons besoin est Java 8 (OpenJDK ou Oracle JDK) installé au préalable.
- Nous allons installer Cassandra à partir du référentiel Apache officiel. Pour pouvoir faire cela, nous créons un fichier texte
/etc/yum.repos.d/cassandra.repo
avec le contenu suivant :[cassandra] name=Apache Cassandra baseurl=https://www.apache.org/dist/cassandra/redhat/311x/ gpgcheck=1 repo_gpgcheck=1 gpgkey=https://www.apache.org/dist/cassandra/KEYS
- Avec cette définition de référentiel en place, nous pouvons installer Cassandra avec
dnf
:# dnf install cassandra
L'installation demandera d'accepter les clés des développeurs. Comme nous leur faisons confiance pour ne pas publier quelque chose de compliqué, nous accepterons les clés pour procéder à l'installation.
- Le package installé inclut le script d'initialisation pour SysV et
systemd
est capable de générer un fichier de service pour lui-même, mais cela ne fonctionne pas bien. Pour nous épargner un peu d'essai par erreur, nous créons un nouveau fichier de service simple/etc/systemd/system/cassandra.service
avec le contenu 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
systemd
doivent être rechargés pour être au courant de la nouvelle définition de service :# systemctl daemon-reload
- Nous pouvons maintenant gérer notre service avec systemd. Nous pouvons démarrer, arrêter et obtenir le statut de Cassandra :
# systemctl start|stop|status cassandra
Son état d'exécution devrait fournir quelque chose de similaire à la sortie ci-dessous avec le fichier d'unité créé ci-dessus :
# systemctl status cassandra cassandra.service - Apache Cassandra Loaded: loaded (/etc/systemd/system/cassandra.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2019-01-08 18:39:32 CET; 24s ago Main PID: 6615 (java) Tasks: 58 (limit: 12544) Memory: 1.1G CGroup: /system.slice/cassandra.service 6615 java -Xloggc:/var/log/cassandra/gc.log -ea [...]
- En option, nous pouvons activer le démarrage automatique au démarrage :
# systemctl enable cassandra
- Pour exécuter quelques exemples de requêtes afin de tester le fonctionnement du système de gestion de base de données, nous utiliserons
cqlsh
pour accéder au shell CQL. Cet outil est livré avec l'installation, cependantpython
cet outil ne dépend pas. Nous devrons l'installer avecdnf
:# dnf install python2
- Pour exécuter un exemple de requête sur Cassandra, nous pouvons entrer dans le shell CQL :
# cqlsh Connected to Test Cluster at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.11.3 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help. cqlsh>
- Comme les données utilisateur ne sont pas encore insérées dans la base de données, nous allons interroger certaines données des tables système pour vérifier que notre installation fonctionne correctement :
cqlsh> SELECT keyspace_name, table_name FROM system_schema.tables where keyspace_name = 'system_auth'; keyspace_name | table_name ---------------+-------------------------------- system_auth | resource_role_permissons_index system_auth | role_members system_auth | role_permissions system_auth | roles (4 rows)