1. Pendahuluan
Kasandra adalah sistem manajemen basis data terdistribusi sumber terbuka dengan penyimpanan kolom yang luas dan basis data NoSQL yang dapat menangani sejumlah besar data di banyak server komoditas tanpa satu titik kegagalan. Itu dibuat oleh Apache Software Foundation dan ditulis dalam Java. Pada artikel ini, kita akan melalui proses langkah demi langkah untuk menginstal Cassandra di CentOS 7 Linux.
2. Prasyarat
Semua perintah yang diberikan di bawah ini harus dijalankan sebagai root
atau sudo
pengguna.
2.1. Instal Python 2.7
Pada CentOS 7, Python 2.7 sudah diinstal sebelumnya. Jika hilang karena suatu alasan, Anda dapat menggunakan perintah berikut untuk menginstalnya:
# yum -y install python
# python --version Python 2.7.5
2.2. Instal Java
Gunakan perintah di bawah ini untuk menginstal versi terbaru Java 8 dan memverifikasi instalasi.
# yum install java-1.8.0-openjdk-devel
# java -version
Contoh keluaran:
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)
3. Cara menginstal Cassandra
Pertama, mari kita tambahkan repositori Cassandra. Untuk melakukannya, buat file bernama cassandra.repo
di bawah /etc/yum.repos.d/
direktori:
# vi /etc/yum.repos.d/cassandra.repo
Tambahkan baris berikut di dalamnya:
[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
Tekan ESC kunci dan ketik :wq
untuk menyimpan file dan menutupnya.
Verifikasi apakah repositori Cassandra ditambahkan. Perintah di bawah ini akan memastikan repositori yang diinstal dan diaktifkan:
# yum repolist
Setelah menambahkan repositori, jalankan perintah berikut untuk menginstal Cassandra di sistem CentOS Anda:
# yum -y install cassandra
Aktifkan dan mulai layanan Cassandra:
# systemctl enable cassandra
cassandra.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig cassandra on
# systemctl start Cassandra
Pastikan status Cassandra:
# systemctl status cassandra
Gunakan perintah di bawah ini untuk mendapatkan detail cluster seperti kondisi, beban, dan ID-nya:
# nodetool status
Contoh keluaran:
Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 127.0.0.1 69.08 KiB 16 100.0% bf2df7a9-54bc-41c9-8c6c-0b9322d10e71 rack1
Pada keluarannya,
- PBB - Naik &Normal
- Alamat - Alamat IP Node
- Muat - Setelah mengecualikan semua konten di subdirektori snapshot, jumlah data sistem file di bawah direktori data Cassandra. Setiap 90 detik sekali Ini akan diperbarui.
- Token - Jumlah token yang telah ditetapkan ke node.
- Memiliki - Berapa banyak data yang dimiliki node; sebuah node dapat memiliki 33% dari ring tetapi menampilkan 100% jika faktor replikasinya adalah 3.
- ID Host - ID Jaringan Host
- Rak - Rak Node di tempatnya.
4. Cqlsh – CLI untuk Cassandra
cqlsh adalah antarmuka baris perintah untuk memanfaatkan CQL untuk terhubung dengan Cassandra (Cassandra Query Language). Itu disertakan dalam setiap paket Cassandra dan dapat ditemukan di samping cassandra yang dapat dieksekusi di bin/
direktori. Driver protokol asli Python digunakan untuk mengimplementasikan cqlsh, yang terhubung ke satu node.
Untuk meluncurkan Cqlsh, jalankan:
# cqlsh
Contoh keluaran:
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. cqlsh>
5. Contoh perintah CQL
5.1. Buat Ruang Kunci
Di Cassandra, ruang kunci berfungsi sebagai wadah data, mirip dengan basis data dalam sistem manajemen basis data relasional (RDMBS)
cqlsh> CREATE KEYSPACE IF NOT EXISTS OsTechNix WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3 }; cqlsh>
Periksa ruang kunci dalam sistem menggunakan perintah di bawah ini.
cqlsh> SELECT * FROM system_schema.keyspaces;
Untuk menampilkan semua ruang kunci, jalankan:
cqlsh> desc keyspaces;
Semua ruang kunci di cluster akan terdaftar:
ostechnix system_auth system_schema system_views system system_distributed system_traces system_virtual_schema
5.2. Buat tabel dan masukkan data sampel
Anda dapat menggunakan CREATE TABLE
pernyataan yang mendefinisikan tipe data untuk setiap kolom seperti yang biasa kita lakukan di RDBMS. Data disimpan dalam tabel CQL dengan baris kolom, seperti definisi SQL.
Anda harus menentukan 'kunci utama' dan bidang data lainnya untuk membuat tabel. Ikuti contoh di bawah ini untuk pembuatan tabel.
cqlsh> CREATE TABLE ostechnix.sample_table ( id UUID PRIMARY KEY, name text, birthday timestamp, nationality text, weight text, height text );
cqlsh>
Gunakan INSERT
pernyataan untuk memasukkan data sederhana ke dalam tabel ostechnix.sample_table
yang kita buat di atas. Dalam contoh di bawah ini, dua record ditambahkan ke dalam tabel.
cqlsh> INSERT INTO ostechnix.sample_table (id, name, nationality) VALUES (5b6962dd-3f90-4c93-8f61-eabfa4a803e2, 'KARTHICK', 'Indian');
cqlsh> INSERT INTO ostechnix.sample_table (id, name, nationality, weight) VALUES (5b6962dd-3f90-4c93-8f61-eabfa4a804e3, 'MOHAN', 'Indian', '85');
5.3. Membuat kueri tabel
Gunakan pernyataan SELECT untuk mengembalikan satu atau beberapa baris dari sebuah tabel.
cqlsh> SELECT * FROM ostechnix.sample_table;
Di sini, *
mengembalikan semua data dari tabel.
cqlsh> SELECT * FROM ostechnix.sample_table WHERE weight = '85';
Contoh keluaran:
InvalidRequest: Error from server: code=2200 [Invalid query] message="Cannot execute this query as it might involve data filtering and thus may have unpredictable performance. If you want to execute this query despite the performance unpredictability, use ALLOW FILTERING" cqlsh>
Cassandra tidak akan menjalankan kueri yang tidak menentukan nilai untuk semua kolom dari kunci utama di 'where
', dan akan mengeluarkan peringatan kesalahan di atas untuk menggunakan 'ALLOW FILTERING'
.
Alasan kesalahan ini adalah bahwa Cassandra tidak akan dapat mengidentifikasi node yang berisi hasil yang diperlukan jika kunci partisi lengkap tidak disertakan dalam WHERE
ayat. Akibatnya, Cassandra harus memindai seluruh kumpulan data di setiap node untuk memastikannya telah mengidentifikasi data yang relevan.
cqlsh> SELECT * FROM ostechnix.sample_table WHERE weight = '85' ALLOW FILTERING;
6. Ringkasan
Pada artikel ini, kita telah melalui prosedur instalasi Cassandra dan beberapa contoh perintah CQL. Kami akan membahas lebih dalam tentang Operasi Cassandra di artikel mendatang.