Apache Cassandra adalah sistem manajemen basis data terdistribusi NoSQL sumber terbuka. Cassandra dapat diskalakan secara horizontal dengan menambahkan lebih banyak node di mana data direplikasi secara otomatis. Node dapat ditambahkan atau dihapus tanpa downtime. Node dapat diatur secara logis sebagai kluster atau cincin dan disiapkan di beberapa pusat data untuk meningkatkan kecepatan dan keandalan aplikasi berperforma tinggi.
Dalam tutorial ini, kita akan belajar cara menginstal Apache Cassandra di OS AlmaLinux dan Rocky Linux 8. Perintah untuk kedua sistem Operasi akan sama kecuali ditentukan lain.
Prasyarat
-
Server yang menjalankan AlmaLinux atau Rocky Linux dengan RAM minimal 2GB.
-
Pengguna non-sudo dengan hak akses root.
-
Semuanya diperbarui.
$ sudo dnf update
Langkah 1 - Instal Java
Apache Cassandra membutuhkan Java 8 untuk berfungsi. Versi terbaru Cassandra menyertakan dukungan eksperimental untuk Java 11, tetapi untuk tutorial kami, kami akan tetap menggunakan Java 8.
$ sudo dnf install java-1.8.0-openjdk java-1.8.0-openjdk-devel
Konfirmasikan penginstalan 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)
Langkah 2 - Instal Apache Cassandra
Langkah pertama adalah menambahkan repositori resmi Cassandra.
Jalankan perintah berikut untuk membuat file repositori /etc/yum.repos.d/cassandra.repo
dan masukkan detailnya.
$ 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
Sekarang setelah file repo dibuat, instal, Cassandra.
$ sudo dnf install cassandra -y
Langkah 3 - Instal Cqlsh
Kami akan menggunakan CQL Shell (cqlsh ) alat untuk berinteraksi dengan Cassandra. Alat ini kompatibel dengan Python 2.7 atau Python 3.6+. Untuk tutorial kita, kita akan menggunakan Python 3.8. Instal Python 3.8.
$ sudo dnf install python38
Tetapkan Python 3.8 sebagai versi Python default.
$ 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
Anda akan disajikan dengan beberapa pilihan. Kami akan memilih nomor 3 untuk menetapkan Python 3.8 sebagai versi default dalam kasus kami.
Konfirmasi instalasi Python.
$ python --version Python 3.8.8
Setelah menggunakan update-alternatives
utilitas, Anda tidak perlu menggunakan python3
perintah.
Instal cqlsh menggunakan pengelola paket pip Python.
$ pip3 install --user cqlsh
Konfirmasi cqlsh instal.
$ cqlsh --version cqlsh 6.0.0
Langkah 4 - Buat file Unit Systemd untuk Cassandra
Buat dan buka /etc/systemd/system/cassandra.service
untuk diedit.
$ sudo nano /etc/systemd/system/cassandra.service
Tempelkan kode berikut di dalamnya.
[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
Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.
Muat ulang daemon layanan.
$ sudo systemctl daemon-reload
Aktifkan dan mulai layanan Cassandra.
$ sudo systemctl enable cassandra --now
Periksa status layanan.
$ 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>
Anda juga dapat memverifikasi status menggunakan nodetool
perintah.
$ 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
Langkah 5 - Konfigurasi Cassandra
Lokasi default file konfigurasi untuk Cassandra adalah di /etc/cassandra
. Lokasi default untuk direktori log dan data adalah /var/log/cassandra
dan /var/lib/cassandra
.
Pengaturan level JVM seperti ukuran heap dapat diatur melalui /etc/cassandra/conf/cassandra-env.sh
mengajukan. Anda dapat meneruskan argumen baris perintah JVM tambahan ke JVM_OPTS
variabel. Argumen diteruskan ke Cassandra saat dimulai.
5.1 Aktifkan Otentikasi Pengguna
Untuk mengaktifkan otentikasi pengguna, pertama-tama, buat cadangan /etc/cassandra/conf/cassandra.yaml
berkas.
$ sudo cp /etc/cassandra/conf/cassandra.yaml /etc/cassandra/conf/cassandra.yaml.backup
Buka cassandra.yaml
file untuk diedit.
$ sudo nano /etc/cassandra/conf/cassandra.yaml
Temukan parameter berikut dalam file ini.
authenticator: AllowAllAuthenticator authorizer: AllowAllAuthorizer roles_validity_in_ms: 2000 permissions_validity_in_ms: 2000
Ubah nilai parameter seperti yang diberikan di bawah ini.
. . . authenticator: org.apache.cassandra.auth.PasswordAuthenticator authorizer: org.apache.cassandra.auth.CassandraAuthorizer roles_validity_in_ms: 0 permissions_validity_in_ms: 0 . . .
Anda dapat mengonfigurasi pengaturan lain berdasarkan kebutuhan Anda. Jika dikomentari, batalkan komentarnya.
Setelah selesai, simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.
Mulai ulang Cassandra untuk mengaktifkan pengaturan yang diubah.
$ sudo systemctl restart cassandra
5.1.1 - Tambahkan Pengguna Super Administrator
Sekarang kita telah mengaktifkan otentikasi, kita perlu membuat pengguna. Untuk melakukan itu, kita akan menggunakan utilitas shell Cassandra Command. Masuk dengan kredensial untuk pengguna default cassandra
.
$ cqlsh -u cassandra -p cassandra
Buat pengguna super baru. Ganti [username]
dan [yourpassword]
dengan kredensial Anda.
[email protected]> CREATE ROLE [username] WITH PASSWORD = '[yourpassword]' AND SUPERUSER = true AND LOGIN = true;
Keluar.
[email protected]> exit
Masuk kembali dengan akun pengguna super baru.
$ cqlsh -u username -p yourpassword
Hapus izin yang ditinggikan dari cassandra
default akun.
[email protected]> ALTER ROLE cassandra WITH PASSWORD = 'cassandra' AND SUPERUSER = false AND LOGIN = false; [email protected]> REVOKE ALL PERMISSIONS ON ALL KEYSPACES FROM cassandra;
Berikan semua izin ke akun pengguna super.
[email protected]> GRANT ALL PERMISSIONS ON ALL KEYSPACES TO '[username]';
Keluar.
[email protected]> exit
5.2 - Edit File Konfigurasi Konsol
Jika Anda ingin menyesuaikan Cassandra Shell, Anda dapat melakukannya dengan mengedit cqlshrc
mengajukan. Lokasi default untuk file ada di ~/.cassandra
direktori. Jika Anda ingin memuatnya dari direktori lain, Anda dapat meneruskan argumen --cqlshrc /customdirectory
ke cqlsh
alat saat berjalan.
Anda dapat menemukan file sampel di /etc/cassandra/conf/cqlshrc.sample
berisi semua pengaturan yang dapat Anda konfigurasikan terkait Cassandra Shell.
Salin dan ganti nama file contoh menjadi ~/.cassandra
direktori.
$ sudo cp /etc/cassandra/conf/cqlshrc.sample ~/.cassandra/cqlshrc
Perbarui cqlshrc
file dengan izin yang diperlukan.
$ sudo chmod 600 ~/.cassandra/cqlshrc $ sudo chown $USER:$USER ~/.cassandra/cqlshrc
Buka file untuk diedit.
$ nano ~/.cassandra/cqlshrc
Kami akan mengonfigurasi shell untuk masuk secara otomatis dengan kredensial pengguna super. Temukan bagian berikut dan isi dengan nama pengguna dan kata sandi Anda.
.... [authentication] ;; If Cassandra has auth enabled, fill out these options username = [superuser] password = [password] ....
Edit pengaturan lain yang ingin Anda ubah. Beberapa pengaturan dikomentari menggunakan ;;
. Batalkan komentar dengan menghapus titik koma ganda, lalu buat perubahannya.
Setelah selesai, simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.
Masuk ke cangkang Cassandra dengan perubahan baru Anda.
$ 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 - Ganti nama Cluster
Terakhir, kami akan mengganti nama cluster dari Test Cluster dengan nama pilihan Anda.
Masuk ke cqlsh
terminal.
$ cqlsh
Ganti [clustername]
dengan nama cluster baru Anda pada perintah di bawah ini.
[email protected]> UPDATE system.local SET cluster_name = '[new_name]' WHERE KEY = 'local';
Keluar dari shell
[email protected]> exit
Buka file /etc/cassandra/conf/cassandra.yaml
untuk diedit.
$ sudo nano /etc/cassandra/conf/cassandra.yaml
Ganti nilai variabel cluster_name
dengan nama pilihan Anda.
... # The name of the cluster. This is mainly used to prevent machines in # one logical cluster from joining another. cluster_name: '[new_name]' ...
Setelah selesai, simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.
Kosongkan cache sistem Cassandra.
$ nodetool flush system
Mulai ulang Cassandra.
$ sudo systemctl restart cassandra
Masuk ke shell untuk melihat nama baru.
$ 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]>
Kesimpulan
Dalam tutorial ini, Anda mempelajari cara menginstal Apache Cassandra di server AlmaLinux atau Rocky Linux. Anda juga mempelajari cara menambahkan otentikasi pengguna dan melakukan beberapa konfigurasi dasar. Untuk mempelajari lebih lanjut, kunjungi dokumentasi resmi Cassandra. Jika Anda memiliki pertanyaan, kirimkan di komentar di bawah.