Apache Cassandra adalah sistem manajemen basis data NoSQL sumber terbuka dan gratis yang dirancang untuk menangani sejumlah besar data di banyak server komoditas, menyediakan ketersediaan tinggi tanpa satu titik kegagalan. Apache Cassandra awalnya dikembangkan oleh Facebook dan kemudian diakuisisi oleh Apache Foundation.
Apache Cassandra cocok untuk data yang terus berubah dalam jumlah besar dan tumbuh secara eksponensial.
Cassandra Dibandingkan dengan RDBMS
Cassandra memiliki analogi yang mirip dengan konsep dalam database relasional:
Keyspace
– Mirip dengan Database/skema di RDBMSTable
– Mirip dengan tabel di RDBMSRow
– Mirip dengan Baris di RDBMSColumn
– Mirip dengan Kolom di RDBMSPrimary key
– Mirip dengan Kunci utama di RDBMS
Prasyarat
Untuk mengikuti panduan ini, Anda perlu:
- Server Centos 8
- Akses root ke server atau pengguna dengan akses sudo
- Akses internet untuk mengunduh paket
Berikut ini adalah langkah-langkah yang akan kita ikuti untuk menginstal Cassandra
- Pastikan sistem kami mutakhir
- Instal Java di sistem
- Instal Apache Cassandra di sistem
- Instal dan konfigurasikan Apache Cassandra Client (cqlsh)
- Konfigurasi Apache Cassandra
Langkah 1 Pastikan sistem kami mutakhir
Pastikan paket Centos 8 yang terinstal di server sudah terbaru. Anda dapat melakukannya dengan menjalankan perintah berikut:
sudo dnf -y update
Langkah 2 Instal Java di sistem
Apache Cassandra mengharuskan Anda memiliki Java 8 di sistem Anda untuk menjalankannya. Konfirmasikan bahwa Java telah diinstal dengan mengetikkan perintah ini:
java -version
Jika Anda melihat keluaran ini:
# java -version
-bash: java: command not found
Berarti java belum terinstall. Mari kita instal dengan perintah ini:
sudo dnf install -y java-1.8.0-openjdk
Setelah instalasi selesai, konfirmasikan dengan ini :
# java -version
openjdk version "1.8.0_302"
OpenJDK Runtime Environment (build 1.8.0_302-b08)
OpenJDK 64-Bit Server VM (build 25.302-b08, mixed mode)
Sekarang Java 8 telah terinstal di sistem kita, mari kita instal Cassandra.
Langkah 3. Instal Apache Cassandra di sistem
Apache Cassandra tidak tersedia di repositori Centos 8 default. Mari membuat repo yang menunjuk ke Cassandra Repos:
Buat /etc/yum.repos.d/cassandra.repo
ini file dengan konten yang diperlukan menggunakan perintah ini:
cat > /etc/yum.repos.d/cassandra.repo <<EOF
[cassandra]
name=Apache Cassandra
baseurl=https://downloads.apache.org/cassandra/redhat/40x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://downloads.apache.org/cassandra/KEYS
EOF
Sekarang kita telah menambahkan repo, mari kita instal cassandra:
sudo dnf install -y cassandra
Konfirmasikan bahwa Cassandra telah diinstal menggunakan perintah ini:
# rpm -qi cassandra
Name : cassandra
Version : 4.0.0
Release : 1
Architecture: noarch
Install Date: Tue 31 Aug 2021 08:59:00 AM UTC
Group : Development/Libraries
Size : 54941890
License : Apache Software License 2.0
Signature : RSA/SHA512, Thu 22 Jul 2021 10:22:35 PM UTC, Key ID 5e85b9ae0b84c041
Source RPM : cassandra-4.0.0-1.src.rpm
Build Date : Thu 22 Jul 2021 10:22:10 PM UTC
Build Host : 0b542adba94d
Relocations : (not relocatable)
URL : http://cassandra.apache.org/
Summary : Cassandra is a highly scalable, eventually consistent, distributed, structured key-value store.
Description :
Cassandra is a distributed (peer-to-peer) system for the management and storage of structured data.
Setelah perintah itu diinstal, Biner cassandra akan dibuat di /usr/sbin/cassandra
. Karena Centos 8 mengelola layanan menggunakan systemd, mari buat file systemd di /etc/systemd/system/cassandra.service
dengan konten yang diperlukan untuk mengelola layanan cassandra
sudo cat > /etc/systemd/system/cassandra.service <<EOF
[Unit]
Description=Apache Cassandra 4.0
After=network.target
[Service]
Type=simple
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
EOF
Setelah file dibuat, Anda dapat menggunakan systemd untuk mengelola layanan:
Jalankan perintah ini untuk memastikan layanan systemd baru kami terdaftar:
sudo systemctl daemon-reload
Untuk memulai layanan:
sudo systemctl start cassandra
Konfirmasikan bahwa layanan sedang berjalan. Harap pastikan Anda melihat bahwa Active: active (running)
dalam perintah status berikut:
# sudo systemctl status cassandra
● cassandra.service - Apache Cassandra
Loaded: loaded (/etc/systemd/system/cassandra.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2021-08-31 15:50:07 UTC; 8s ago
Main PID: 100752 (java)
Tasks: 54 (limit: 23800)
Memory: 1.1G
CGroup: /system.slice/cassandra.service
└─100752 java -ea -da:net.openhft... -XX:+UseThreadPriorities -XX:+HeapDumpOnOutOfMemoryError -Xss256k -XX:+AlwaysPreTouch -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+ResizeTLAB -XX:+UseNUMA -XX:+PerfD>
Aug 31 15:50:13 ipa-server.citizix.light cassandra[100752]: INFO [main] 2021-08-31 15:50:13,284 NativeTransportService.java:68 - Netty using native Epoll event loop
Aug 31 15:50:13 ipa-server.citizix.light cassandra[100752]: INFO [CompactionExecutor:1] 2021-08-31 15:50:13,326 CompactionTask.java:150 - Compacting (20ffe200-0a73-11ec-a273-f980f7c7aa0a) [/var/lib/cassandra>
Aug 31 15:50:13 ipa-server.citizix.light cassandra[100752]: INFO [main] 2021-08-31 15:50:13,329 PipelineConfigurator.java:124 - Using Netty Version: [netty-buffer=netty-buffer-4.1.58.Final.10b03e6, netty-cod>
Aug 31 15:50:13 ipa-server.citizix.light cassandra[100752]: INFO [main] 2021-08-31 15:50:13,329 PipelineConfigurator.java:125 - Starting listening for CQL clients on localhost/127.0.0.1:9042 (unencrypted)...
Aug 31 15:50:13 ipa-server.citizix.light cassandra[100752]: INFO [main] 2021-08-31 15:50:13,334 CassandraDaemon.java:780 - Startup complete
Aktifkan layanan cassandra untuk selalu berjalan saat boot:
sudo systemctl enable cassandra
Gunakan nodetool status
perintah untuk mengkonfirmasi status status node saat ini:
# 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 166.07 KiB 16 100.0% 2b8341f0-2638-46bb-a0e0-e20b86f96d0a rack1
Sekarang layanan sudah aktif dan berjalan, mari instal klien:
Langkah 4. Instal dan konfigurasikan Apache Cassandra Client (cqlsh)
Sekarang layanan Apache Cassandra telah diinstal dan dikonfigurasi, kita perlu menghubungkannya.
Alat klien yang digunakan untuk mengakses Cassandra (cqlsh
) adalah klien python. Jadi sebelum menginstalnya kita perlu mengatur lingkungan untuk python:
Instal python3 dan python pip
sudo dnf install -y python39 python39-pip
Konfirmasi instalasi dan Python dan pip:
# python3 -V
Python 3.9.2
# pip3 -V
pip 20.2.4 from /usr/lib/python3.9/site-packages/pip (python 3.9)
Menggunakan pip, instal cqlsh:
sudo pip3 install cqlsh
Sekarang kita dapat menggunakan cqlsh untuk terhubung ke cassandra. Karena Cassandra diinstal secara lokal, kami tidak perlu menentukan host apa pun:
# cqlsh
Connected to Test Cluster at 127.0.0.1:9042
[cqlsh 6.0.0 | Cassandra 4.0.0 | CQL spec 3.4.5 | Native protocol v5]
Use HELP for help.
cqlsh>
Sekarang klien sudah diatur, mari konfigurasikan Cassandra
Langkah 4. Konfigurasi Apache Cassandra
Mari konfigurasikan Apache Cassandra. File konfigurasi utama terletak di sini /etc/cassandra/default.conf/cassandra.yaml
Konfigurasi penting untuk diubah:
cluster_name
– nama cluster Andaseeds
berisi daftar alamat IP benih klaster Anda, dipisahkan komalisten_address
berisi alamat IP node Anda, inilah yang memungkinkan node lain berkomunikasi dengan node ini
Selain itu, Anda juga dapat menambahkan env variabble JVM_OPTS
menambahkan argumen baris perintah JVM tambahan. Ini akan diteruskan ke layanan cassandra saat memulai.
Secara default, nama cluster Cassandra adalah 'Test Cluster'. Anda dapat mengubahnya ke nama cluster pilihan Anda dengan masuk menggunakan cqlsh
dan jalankan perintah di bawah ini.
UPDATE system.local
SET cluster_name = 'Citizix Cluster'
WHERE KEY = 'local';
Setelah itu update file konfigurasi /etc/cassandra/default.conf/cassandra.yaml
dengan nama baru:
sudo vim /etc/cassandra/default.conf/cassandra.yaml
Kemudian perbarui baris ini:
cluster_name: 'Citizix Cluster'
Simpan dan keluar.
Mari bersihkan cache sistem menggunakan ini:
nodetool flush system
Kemudian restart layanan cassandra
sudo systemctl restart cassandra
Masuk lagi untuk mengonfirmasi nama cluster seperti yang ditunjukkan.
Kesimpulan
Kami berhasil menginstal dan mengkonfigurasi cassanda dalam panduan di atas. Harap perhatikan hal berikut:
- Cassandra menyimpan lognya di direktori ini
/var/log/cassandra/
dengan file log utama terletak di/var/log/cassandra/system.log
- Karena kami membuat layanan systemd, Anda juga dapat memeriksa
stdout
danstderr
log menggunakan perintah ini:sudo journalctl -fu cassandra
- Ini
/var/lib/cassandra
ditetapkan sebagai direktori data default. Anda dapat memperbaruinya di file konfigurasi - File konfigurasi Cassandra disimpan di direktori ini
/etc/cassandra/
termasuk file konfigurasi default/etc/cassandra/default.conf/cassandra.yaml
- Untuk mengatur service cassandra yang kita buat:
# Start the service sudo systemctl start cassandra # Check the service status sudo systemctl status cassandra # Stop the service sudo systemctl stop cassandra # Enable the service sudo systemctl enable cassandra # Restart the service sudo systemctl restart cassandra
Silakan periksa juga halaman Dokumentasi Cassandra di sini untuk info lebih lanjut.