Takip et

Ubuntu VPS Üzerinde Cassandra ile Çok Düğümlü Bir Küme Nasıl Yapılandırılır?

Ubuntu VPS Üzerinde Cassandra ile Çok Düğümlü Bir Küme Nasıl Yapılandırılır? Apache Cassandra, büyük ölçekli ve yüksek erişilebilir

Ubuntu VPS Üzerinde Cassandra ile Çok Düğümlü Bir Küme Nasıl Yapılandırılır?

Apache Cassandra, büyük ölçekli ve yüksek erişilebilirlikli veri depolama gereksinimleri olan uygulamalar için tasarlanmış, açık kaynaklı, dağıtık bir NoSQL veritabanı sistemidir. Geleneksel ilişkisel veritabanlarının aksine, Cassandra doğrusal olarak ölçeklenebilir, yani daha fazla sunucu ekleyerek kapasitesini ve performansını artırabilir. Aynı zamanda hata toleranslı bir yapıya sahiptir; bir veya daha fazla düğümün (node) arızalanması durumunda bile veri erişilebilirliğini sürdürebilir. Bu özellikler, Cassandra’yı büyük veri, gerçek zamanlı analizler, IoT ve diğer yoğun veri işleme senaryoları için ideal bir seçenek haline getirir.

Bir Cassandra kümesini tek bir sunucuda çalıştırmak mümkündür, ancak gerçek dünya senaryolarında Cassandra’nın tüm potansiyelinden yararlanmak için çok düğümlü bir yapılandırma gereklidir. Çok düğümlü bir küme, verileri birden fazla sunucuya dağıtarak hem depolama kapasitesini hem de işlem gücünü artırır, aynı zamanda veri yedekliliği sağlayarak sistemin genel güvenilirliğini yükseltir. Bu makalede, Ubuntu tabanlı Sanal Özel Sunucular (VPS) üzerinde Apache Cassandra’nın çok düğümlü bir kümesini adım adım nasıl yapılandıracağınızı detaylı bir şekilde ele alacağız. Bu rehber, hem yeni başlayanlar hem de mevcut sistemlerini genişletmek isteyenler için kapsamlı bir kaynak olmayı hedeflemektedir.

Önkoşullar

Bir Cassandra kümesi yapılandırmasına başlamadan önce, bazı temel önkoşulları karşılamanız gerekmektedir. Bu önkoşullar, kurulum sürecini sorunsuz hale getirecek ve olası problemleri en aza indirecektir.

VPS Örnekleri

Çok düğümlü bir küme için en az üç adet Ubuntu 20.04 veya 22.04 LTS (Uzun Süreli Destek) sürümüne sahip VPS örneğine ihtiyacınız olacaktır. Cassandra’nın dağıtık mimarisini ve hata toleransını tam olarak deneyimlemek için üç düğüm ideal bir başlangıç noktasıdır. Her bir VPS’in en az 2 vCPU, 8 GB RAM ve SSD depolama alanına sahip olması önerilir. Daha büyük veri setleri veya daha yoğun iş yükleri için daha güçlü kaynaklar gerekebilir.

SSH Erişimi ve Sudo Yetkileri

Her bir VPS’e SSH (Secure Shell) üzerinden erişiminiz olmalı ve kurulum ile yapılandırma komutlarını çalıştırmak için sudo (root yetkileri) ayrıcalıklarına sahip bir kullanıcı hesabınız bulunmalıdır.

Temel Linux Bilgisi

Temel Linux komut satırı bilgisi (dosya sistemi navigasyonu, dosya düzenleme, servis yönetimi vb.) bu rehberi takip etmek için faydalı olacaktır.

Ağ Yapılandırması ve Güvenlik Duvarı

Düğümler arası iletişimi sağlamak için VPS’lerinizin birbirleriyle ağ üzerinden iletişim kurabildiğinden emin olun. Ayrıca, güvenlik duvarı (UFW gibi) yapılandırmasını doğru bir şekilde yapmanız gerekecektir. Cassandra’nın kullandığı portları açmak, kümenin düzgün çalışması için kritik öneme sahiptir.

Java Geliştirme Kiti (JDK)

Cassandra Java ile yazılmıştır ve çalışmak için bir Java Sanal Makinesi (JVM) gerektirir. Apache Cassandra’nın belirli bir sürümü için uygun OpenJDK sürümünü kurmanız gerekecektir (genellikle OpenJDK 11 veya 17).

Adım 1: Ubuntu VPS Örneklerini Hazırlama

Her bir Ubuntu VPS örneğini Cassandra kurulumu için hazırlamak, kümenin istikrarlı ve verimli çalışması için temel bir adımdır. Bu adımlar her düğümde ayrı ayrı uygulanmalıdır.

Sistem Güncelleme

İlk olarak, her sunucudaki paket listesini ve yüklü paketleri en son sürümlerine güncelleyin:

sudo apt update
sudo apt upgrade -y

Ana Bilgisayar Adlarını Ayarlama

Her düğüm için benzersiz ve anlamlı bir ana bilgisayar adı (hostname) belirlemek, küme yönetimi ve hata ayıklaması için önemlidir. Örneğin, cassandra-node1, cassandra-node2, cassandra-node3 gibi isimler kullanabilirsiniz.

# cassandra-node1 için
sudo hostnamectl set-hostname cassandra-node1

Diğer düğümler için de cassandra-node2 ve cassandra-node3 olarak ayarlayın.

/etc/hosts dosyasını düzenleyerek her düğümün IP adresini ve ana bilgisayar adını eklemek, düğümler arası iletişimi kolaylaştırır ve olası DNS sorunlarını önler. Bu, özellikle özel ağlarda veya DNS çözümlemesi olmayan ortamlarda önemlidir. Her düğümde /etc/hosts dosyasını açın ve tüm düğümlerin IP adreslerini ve ana bilgisayar adlarını ekleyin:

sudo nano /etc/hosts

Dosyaya şunları ekleyin (IP adreslerini kendi VPS’lerinizin adresleriyle değiştirin):

127.0.0.1       localhost
192.168.1.101   cassandra-node1
192.168.1.102   cassandra-node2
192.168.1.103   cassandra-node3

The following lines are desirable for IPv6 capable hosts

::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters

Değişiklikleri kaydedin ve dosyayı kapatın.

Güvenlik Duvarı Yapılandırması (UFW)

Ubuntu’da varsayılan güvenlik duvarı olan UFW (Uncomplicated Firewall) ile Cassandra’nın ihtiyaç duyduğu portları açmanız gerekir. Bu, kümenin güvenliğini sağlarken düğümlerin birbirleriyle ve istemcilerle iletişim kurmasına olanak tanır.

sudo ufw allow OpenSSH # SSH erişimine izin ver
sudo ufw allow 7000/tcp # Küme içi iletişim (inter-node communication)
sudo ufw allow 7001/tcp # Küme içi SSL iletişim (inter-node SSL communication)
sudo ufw allow 7199/tcp # JMX (Java Management Extensions) için, monitoring amaçlı
sudo ufw allow 9042/tcp # CQL (Cassandra Query Language) istemci bağlantıları
sudo ufw allow 9160/tcp # Thrift istemci bağlantıları (eski istemciler için, modern uygulamalar CQL kullanır)
sudo ufw enable # Güvenlik duvarını etkinleştir
sudo ufw status # Güvenlik duvarı durumunu kontrol et

sudo ufw enable komutunu çalıştırdığınızda, mevcut SSH bağlantınızın kesilebileceği konusunda bir uyarı alabilirsiniz. Onaylamak için y yazıp Enter tuşuna basın.

Java Geliştirme Kiti (JDK) Kurulumu

Cassandra’nın gerektirdiği Java sürümünü (genellikle OpenJDK 11 veya 17) her düğüme kurun. Cassandra 4.x sürümleri için OpenJDK 11 yaygın olarak kullanılır.

sudo apt install openjdk-11-jdk -y

Kurulumu doğrulayın:

java -version

Çıktı, yüklü Java sürümünü göstermelidir.

Swap Alanını Devre Dışı Bırakma

Cassandra, yüksek performanslı disk I/O işlemleri gerektiren bir sistemdir ve işletim sistemi tarafından kullanılan swap alanı, performans düşüşlerine neden olabilir. Bu nedenle, Cassandra düğümlerinde swap’ı devre dışı bırakmak önerilir.

sudo swapoff -a # Geçici olarak swap'ı devre dışı bırak

Bu değişikliği kalıcı hale getirmek için /etc/fstab dosyasını düzenlemeniz gerekir. Swap satırını yorum satırı haline getirin veya silin:

sudo nano /etc/fstab

Swap bölümünü gösteren satırın başına # ekleyin (örneğin, /swapfile none swap sw 0 0 gibi bir satır).

Adım 2: Apache Cassandra Kurulumu

VPS örnekleri hazırlandıktan sonra, Apache Cassandra’yı her bir düğüme kurma işlemine geçebiliriz. Bu adımlar da her düğümde ayrı ayrı uygulanmalıdır.

Cassandra Deposu Ekleme

Apache Cassandra, Ubuntu’nun varsayılan depolarında bulunmaz. Cassandra’nın kendi APT deposunu eklemeniz gerekir.

1. GPG Anahtarını İçe Aktarma: Cassandra paketlerinin doğruluğunu sağlamak için Apache’nin GPG anahtarını içe aktarın:

curl -L https://downloads.apache.org/cassandra/KEYS | sudo apt-key add -

2. Cassandra Deposunu Ekleme: sources.list.d dizinine Cassandra deposunu ekleyin. Cassandra’nın 4.x sürümünü kurmak için aşağıdaki komutu kullanın. Belirli bir minor sürüm (örneğin 4.0 veya 4.1) için 40x yerine 40 veya 41 yazabilirsiniz. Bu örnekte 40x genel bir ifade olarak kullanılmıştır, genellikle en son 4.x sürümünü ifade eder.

sudo sh -c 'echo "deb http://www.apache.org/dist/cassandra/debian 40x main" > /etc/apt/sources.list.d/cassandra.list'

Eğer Cassandra 4.1.x kurmak istiyorsanız:

sudo sh -c 'echo "deb http://www.apache.org/dist/cassandra/debian 41x main" > /etc/apt/sources.list.d/cassandra.list'

Paket Listesini Güncelleme

Yeni eklenen depoyu sisteminize tanıtmak için paket listesini güncelleyin:

sudo apt update

Cassandra Kurulumu

Şimdi Apache Cassandra’yı yükleyebilirsiniz:

sudo apt install cassandra -y

Bu komut, Cassandra’yı ve bağımlılıklarını kuracaktır. Kurulum tamamlandığında, Cassandra servisi otomatik olarak başlayabilir. Ancak, çok düğümlü bir küme yapılandırması yapacağımız için, servisi şimdilik durdurup yapılandırma dosyasını düzenleyeceğiz.

sudo systemctl stop cassandra
sudo systemctl disable cassandra # Şimdilik otomatik başlamasını engelle

Kurulumu Doğrulama (İsteğe Bağlı)

Cassandra henüz yapılandırılmadığı için nodetool komutu tam bilgi vermeyebilir, ancak Cassandra’nın yüklendiğini ve çalıştırılabilir olduğunu kontrol edebilirsiniz:

nodetool status

Bu komut, Cassandra servisi çalışmıyorsa hata verecektir veya tek bir düğüm olarak görünürse UN (Up/Normal) durumunda olacaktır.

Adım 3: Çok Düğümlü Küme İçin Cassandra Yapılandırması

Cassandra’nın kalbi, cassandra.yaml yapılandırma dosyasıdır. Bu dosya, Cassandra’nın nasıl çalıştığını, verileri nerede depoladığını ve diğer düğümlerle nasıl iletişim kurduğunu tanımlar. Her düğümde bu dosyayı düzenleyerek kümenin bir parçası haline gelmelerini sağlayacağız. Yapılandırma dosyası genellikle /etc/cassandra/cassandra.yaml konumundadır.

sudo nano /etc/cassandra/cassandra.yaml

Aşağıdaki anahtar parametreleri her düğümde kendi değerleriyle güncelleyin:

1. cluster_name: Kümenizin adını belirler. Tüm düğümlerde aynı olmalıdır.

cluster_name: 'MyCassandraCluster'

2. num_tokens: Bir düğümün veri halkasında sahip olduğu sanal düğüm (vnode) sayısını belirler. Varsayılan 256 çoğu senaryo için iyi bir başlangıç noktasıdır.

num_tokens: 256

3. listen_address: Cassandra düğümünün diğer Cassandra düğümlerinden gelen dahili (inter-node) iletişimleri dinleyeceği IP adresidir. Her düğüm için kendi özel IP adresini kullanın.

# cassandra-node1 için
    listen_address: 192.168.1.101

    # cassandra-node2 için
    # listen_address: 192.168.1.102

    # cassandra-node3 için
    # listen_address: 192.168.1.103

Bu değeri 0.0.0.0 olarak ayarlamak, tüm ağ arayüzlerinden gelen bağlantıları dinlemesini sağlar, ancak belirli bir IP adresi belirtmek daha güvenlidir.

4. rpc_address: İstemci bağlantılarının (CQLsh, uygulama sürücüleri vb.) bu düğüme bağlanacağı IP adresidir. Genellikle listen_address ile aynıdır veya 0.0.0.0 olarak ayarlanabilir. 0.0.0.0 olarak ayarlandığında, istemcilerin herhangi bir ağ arayüzü üzerinden bağlanmasına izin verir.

# cassandra-node1 için
    rpc_address: 192.168.1.101

    # Diğer düğümler için de kendi IP adreslerini kullanın.

Eğer rpc_address 0.0.0.0 olarak ayarlanırsa, broadcast_rpc_address değerini de düğümün dışarıdan erişilebilir IP adresine ayarlamanız gerekebilir.

5. seeds: Kümedeki çekirdek düğümlerin (seed nodes) IP adreslerinin virgülle ayrılmış listesidir. Cassandra düğümleri, kümedeki diğer düğümleri keşfetmek için çekirdek düğümleri kullanır. Tüm düğümlerin çekirdek düğüm olması gerekmez, ancak en az iki çekirdek düğüm, yüksek erişilebilirlik için önerilir. Bu örnekte, cassandra-node1 ve cassandra-node2‘yi çekirdek düğüm olarak belirleyelim. Bu değer, tüm düğümlerde aynı olmalıdır.

seeds: "192.168.1.101,192.168.1.102"

6. data_file_directories, commitlog_directory, saved_caches_directory: Bu dizinler, Cassandra’nın verilerini, commit loglarını ve önbelleklerini depoladığı yerlerdir. Varsayılan değerler genellikle yeterlidir, ancak performansı artırmak veya depolama alanını yönetmek için bunları farklı disklere veya dizinlere taşıyabilirsiniz. Varsayılanları genellikle /var/lib/cassandra/data, /var/lib/cassandra/commitlog ve /var/lib/cassandra/saved_caches şeklindedir.

data_file_directories:
        - /var/lib/cassandra/data
    commitlog_directory: /var/lib/cassandra/commitlog
    saved_caches_directory: /var/lib/cassandra/saved_caches

7. endpoint_snitch: Cassandra’nın düğümlerin ağ topolojisini nasıl yorumladığını belirler. Basit bir küme için SimpleSnitch kullanılabilir, ancak çok düğümlü ve özellikle birden fazla veri merkezine yayılan kümeler için GossipingPropertyFileSnitch veya RackInferringSnitch gibi daha gelişmiş snitch’ler önerilir. GossipingPropertyFileSnitch, /etc/cassandra/cassandra-rackdc.properties dosyasından veri merkezi ve rack bilgilerini okur.

endpoint_snitch: GossipingPropertyFileSnitch

Eğer GossipingPropertyFileSnitch kullanıyorsanız, her düğümde /etc/cassandra/cassandra-rackdc.properties dosyasını da düzenlemeniz gerekir. Bu dosya, her düğümün hangi veri merkezine ve rack’e ait olduğunu tanımlar.

sudo nano /etc/cassandra/cassandra-rackdc.properties

Örneğin, tüm düğümlerin tek bir veri merkezinde olduğunu varsayalım (örneğin datacenter1) ve farklı rack’lere dağıldığını düşünelim (örneğin rack1, rack2, rack3).

cassandra-node1 için:

dc=datacenter1
    rack=rack1

cassandra-node2 için:

dc=datacenter1
    rack=rack2

cassandra-node3 için:

dc=datacenter1
    rack=rack3

Bu yapılandırma, Cassandra’nın verileri coğrafi ve mantıksal olarak nasıl dağıtacağını anlamasına yardımcı olur.

Tüm bu değişiklikleri her düğümde uyguladıktan sonra, cassandra.yaml dosyasını kaydedin ve kapatın.

Adım 4: Kümeyi Başlatma ve Doğrulama

Yapılandırma tamamlandıktan sonra, Cassandra düğümlerini başlatabilir ve kümenin düzgün bir şekilde çalıştığını doğrulayabiliriz.

Düğümleri Başlatma Sırası

Çekirdek düğümleri (seed nodes) önce başlatmak iyi bir uygulamadır, çünkü diğer düğümler küme hakkında bilgi almak için onlara güvenir.

1. Çekirdek Düğümleri Başlatma (cassandra-node1 ve cassandra-node2):
Her iki çekirdek düğümde de Cassandra servisini başlatın ve sistem başlangıcında otomatik olarak başlamasını sağlayın:

sudo systemctl start cassandra
    sudo systemctl enable cassandra

2. Diğer Düğümleri Başlatma (cassandra-node3):
Çekirdek düğümler başladıktan ve kısa bir süre sonra (yaklaşık 30 saniye ile 1 dakika) diğer düğümleri başlatın:

sudo systemctl start cassandra
    sudo systemctl enable cassandra

Küme Durumunu Doğrulama

Herhangi bir düğümde nodetool status komutunu kullanarak kümenin durumunu kontrol edebilirsiniz:

nodetool status

Beklenen çıktıya benzer bir şey görmelisiniz:

Datacenter: datacenter1
=======================
Status=Up/Normal
| State=Normal
|/ Load       Tokens    Owns (effective) Host ID                               Rack
--  ---------- --------  ---------------- ------------------------------------  --------
UN  192.168.1.101 100.00%   34.3%            xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rack1
UN  192.168.1.102 100.00%   33.2%            xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rack2
UN  192.168.1.103 100.00%   32.5%            xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rack3

* Status=Up/Normal: Düğümün çalışır durumda ve normal olduğunu gösterir. DN (Down/Normal) veya UJ (Up/Joining) gibi durumlar sorun olduğunu gösterir.
* Load: Düğümdeki veri miktarını gösterir.
* Owns: Düğümün veri halkasının yüzde kaçına sahip olduğunu gösterir.
* Host ID: Her düğüm için benzersiz bir tanımlayıcıdır.
* Rack: /etc/cassandra/cassandra-rackdc.properties dosyasında tanımlanan rack bilgisidir.

Eğer tüm düğümler UN durumundaysa, kümeniz başarıyla yapılandırılmış ve çalışıyor demektir.

Sorun Giderme

* Düğümler görünmüyor veya DN durumunda:
* sudo systemctl status cassandra komutuyla Cassandra servisinin durumunu kontrol edin.
* /var/log/cassandra/system.log dosyasını kontrol ederek hata mesajları arayın.
* Güvenlik duvarı (UFW) ayarlarını ve portların açık olup olmadığını kontrol edin.
* cassandra.yaml dosyasındaki listen_address, rpc_address ve seeds değerlerinin doğru olduğundan emin olun.
* /etc/hosts dosyasındaki IP-hostname eşleşmelerini kontrol edin.
* Java Hataları: Java kurulumunuzu ve sürümünü tekrar kontrol edin.
* Ağ Bağlantısı Sorunları: Düğümlerin ping komutuyla birbirlerine erişebildiğinden emin olun.

Adım 5: Cassandra Kümesini Test Etme

Küme başarıyla kurulup doğrulandıktan sonra, veri ekleyip sorgulayarak işlevselliğini test edebiliriz. Cassandra ile etkileşim kurmak için CQL (Cassandra Query Language) kabuğu olan cqlsh kullanılır.

Herhangi bir Cassandra düğümüne bağlanmak için cqlsh komutunu kullanın. Eğer rpc_address 0.0.0.0 olarak ayarlanmışsa, sadece cqlsh yazmanız yeterli olabilir. Aksi takdirde, bir düğümün IP adresini belirtmeniz gerekir:

cqlsh 192.168.1.101

cqlsh prompt’una düştüğünüzde, aşağıdaki adımları uygulayarak kümenizi test edebilirsiniz:

1. Keyspace Oluşturma: Keyspace, Cassandra’daki en üst düzey veri organizasyon birimidir ve verilerin nasıl çoğaltılacağını (replication) tanımlar.

CREATE KEYSPACE mykeyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3};

* SimpleStrategy: Tek bir veri merkezi için kullanılır.
* replication_factor: Verilerin kaç düğümde kopyalanacağını belirler. 3 değeri, her verinin kümedeki üç farklı düğümde depolanacağı anlamına gelir. Bu, bir veya iki düğümün arızalanması durumunda bile verilerin erişilebilir kalmasını sağlar. Gerçek dünya senaryolarında, birden fazla veri merkezi varsa NetworkTopologyStrategy kullanmak daha uygundur.

2. Keyspace’i Kullanma: Oluşturduğunuz keyspace’i kullanmak için:

USE mykeyspace;

3. Tablo Oluşturma: SQL’deki tablolara benzer şekilde, Cassandra’da da tablolar oluşturulur.

CREATE TABLE users (
        id UUID PRIMARY KEY,
        name text,
        email text,
        age int
    );

* UUID PRIMARY KEY: Her satır için benzersiz bir kimlik sağlar. UUID, Cassandra’da sıkça kullanılan birincil anahtar türüdür.

4. Veri Ekleme: Tabloya veri ekleyin:

INSERT INTO users (id, name, email, age) VALUES (uuid(), 'Alice', 'alice@example.com', 30);
    INSERT INTO users (id, name, email, age) VALUES (uuid(), 'Bob', 'bob@example.com', 25);

5. Veri Sorgulama: Eklediğiniz verileri sorgulayın:

SELECT * FROM users;

Çıktı, eklediğiniz kullanıcıları göstermelidir.

6. Veri Dağıtımını Doğrulama:
* Bir düğüme bağlanıp veri ekleyin.
* Ardından, farklı bir düğüme bağlanın ve aynı veriyi sorgulayın. Verinin çoğaltma faktörü nedeniyle diğer düğümlerde de görünmesi gerekir.
* Bir düğümü durdurun (sudo systemctl stop cassandra).
* Diğer düğümlerden veri sorgulamaya devam edin. Verilerin hala erişilebilir olması gerekir.
* Durdurduğunuz düğümü tekrar başlatın (sudo systemctl start cassandra). Kısa bir süre sonra, düğüm küme ile senkronize olacak ve nodetool status çıktısında tekrar UN olarak görünecektir.

Bu testler, kümenizin temel işlevselliğini, veri çoğaltmasını ve hata toleransını doğrular.

En İyi Uygulamalar ve İleri Düzey Konular

Cassandra kümenizi üretim ortamına taşımadan önce veya performansı optimize etmek için göz önünde bulundurmanız gereken bazı en iyi uygulamalar ve ileri düzey konular bulunmaktadır:

Çoğaltma Stratejisi ve Faktörü

* NetworkTopologyStrategy: Birden fazla veri merkezi veya rack içeren kümeler için önerilir. Bu strateji, verileri farklı veri merkezlerine ve rack’lere yayarak coğrafi hata toleransı sağlar.
* Çoğaltma Faktörü (Replication Factor – RF): Kümedeki düğüm sayısına ve istenen veri dayanıklılığına göre belirlenmelidir. RF=3 genellikle iyi bir denge sağlar, ancak daha yüksek değerler daha fazla dayanıklılık ve daha fazla depolama alanı anlamına gelir.

Snitch Yapılandırması

* GossipingPropertyFileSnitch veya RackInferringSnitch gibi snitch’ler, Cassandra’nın düğümlerin fiziksel konumunu anlamasına yardımcı olur. Bu, okuma ve yazma işlemlerinde ağ trafiğini optimize eder ve veri çoğaltma stratejilerini daha verimli hale getirir.

İzleme (Monitoring)

* Cassandra kümenizin sağlığını ve performansını sürekli izlemek kritik öneme sahiptir. Prometheus ve Grafana gibi araçlar, JMX metriklerini toplayarak ve görselleştirerek düğüm sağlığı, I/O, bellek kullanımı ve gecikme süreleri hakkında değerli bilgiler sağlar.
* nodetool komutları (örneğin nodetool cfstats, nodetool tpstats) anlık durum izlemesi için faydalıdır.

Güvenlik

* Kimlik Doğrulama (Authentication) ve Yetkilendirme (Authorization): Üretim ortamlarında, kullanıcıların kimliklerini doğrulamasını ve yalnızca yetkili işlemleri yapmasını sağlamak için kimlik doğrulama ve yetkilendirme mekanizmalarını etkinleştirin. Cassandra, dahili kimlik doğrulama (PasswordAuthenticator) veya LDAP gibi harici sistemlerle entegrasyonu destekler.
* SSL/TLS Şifrelemesi: Düğümler arası iletişimi ve istemci-düğüm iletişimini güvence altına almak için SSL/TLS şifrelemesini yapılandırın.

Yedekleme ve Geri Yükleme

* Veri kaybını önlemek için düzenli yedekleme stratejileri uygulayın. Cassandra, anlık görüntü (snapshot) tabanlı yedeklemeyi destekler. Yedeklemeleri küme dışındaki güvenli bir depolama alanına (örneğin S3) aktarın.

Donanım Boyutlandırması

* CPU: Yüksek eşzamanlılık ve yoğun sorgular için yeterli CPU çekirdeği gereklidir.
* RAM: Cassandra, bellek yoğun bir uygulamadır. Özellikle önbellekler için bol miktarda RAM önemlidir (genellikle 8GB minimum, 32GB+ önerilir).
* Disk I/O: SSD’ler, Cassandra’nın rastgele okuma ve yazma performansını önemli ölçüde artırır. commitlog ve data_file_directories için ayrı diskler kullanmak performansı daha da optimize edebilir.
* Ağ: Düğümler arası yüksek bant genişliği ve düşük gecikmeli ağ bağlantısı, küme performansı için hayati öneme sahiptir.

Cassandra Sürüm Yönetimi

* Apache Cassandra topluluğu tarafından yayınlanan güncellemeleri ve güvenlik yamalarını takip edin. Yeni sürümler genellikle performans iyileştirmeleri ve yeni özellikler içerir. Yükseltme işlemlerini dikkatlice planlayın ve test edin.

Veri Modelleme

* Cassandra’nın en önemli performans faktörlerinden biri doğru veri modellemesidir. Cassandra, sorgu odaklı bir veritabanıdır, bu nedenle verilerinizi sorgularınıza göre tasarlamanız gerekir. İlişkisel veritabanlarındaki normalizasyon prensiplerinden farklı olarak, Cassandra’da denormalizasyon ve veri tekrarı yaygındır.

Sonuç

Bu makalede, Ubuntu VPS üzerinde çok düğümlü bir Apache Cassandra kümesini yapılandırmak için gereken adımları ayrıntılı bir şekilde ele aldık. Her düğümün hazırlanmasından (sistem güncelleme, hostname ayarı, güvenlik duvarı, Java kurulumu, swap kapatma), Cassandra’nın kurulumuna ve cassandra.yaml dosyasının kritik parametrelerle yapılandırılmasına kadar tüm süreci adım adım inceledik. Ayrıca, kümenin başlatılması, durumunun doğrulanması ve cqlsh ile temel veri işlemleri yaparak işlevselliğinin test edilmesi konularına değindik.

Çok düğümlü bir Cassandra kümesi, büyük veri setlerini yönetmek, yüksek erişilebilirlik sağlamak ve doğrusal ölçeklenebilirlik elde etmek isteyen organizasyonlar için güçlü bir çözümdür. Doğru yapılandırma ve en iyi uygulamaların takibi ile Cassandra, kritik uygulamalarınız için sağlam ve performanslı bir veri altyapısı sağlayabilir. Bu rehber, kümenizi kurmak için sağlam bir temel oluştururken, üretim ortamları için ileri düzey konuları ve optimizasyonları da göz önünde bulundurmanız gerektiğini unutmayın. Cassandra’nın gücünden tam olarak yararlanmak için sürekli izleme, güvenlik ve veri modelleme pratiklerine dikkat etmek önemlidir.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.