Cassandra Architecture Açıklaması: Kapsamlı Bir Eğitim
Yayınlanan: 2021-03-10Facebook'taki başlangıcından bu yana Cassandra, en popüler Apache projelerinden biri haline geldi. Yaygın olarak kullanılan açık kaynaklı, yüksek performanslı ve dağıtılmış bir veritabanıdır ve yazılım mühendislerinin, veri bilimcilerin ve web geliştiricilerinin hayatlarını kolaylaştırır.
Bu sağlam veritabanı çözümünün kullanıcıları arasında IBM, Facebook, Reddit, eBay ve Twitter gibi kuruluşlar yer alır.
Ancak, Cassandra'yı tanımak için mimarisini bilmelisiniz ve Apache Cassandra mimarisini anlamak biraz zor olabilir.
Bu nedenle, Cassandra mimarisi hakkında aşağıdaki giriş kılavuzunu oluşturduk. Cassandra mimarisinin tüm gerekli kavramlarına aşina olmanızı sağlayacaktır:
İçindekiler
Cassandra Mimarisinin Temelleri
Apache Cassandra mimarisinin ana veya bağımlı düğümleri yoktur. Bunun yerine, düğümlerin bir halka içinde mantıksal olarak dağıtıldığı halka benzeri bir mimariye sahiptir. Mimari, verilerin tüm düğümler arasında otomatik olarak dağıtılmasına izin verir. HDFS gibi, Cassandra'daki veriler artıklık için düğümler arasında çoğaltılır ve bellekte depolanır. Kümedeki düğümler arasında veri dağıtmak için anahtarların karma değerlerini kullanır.
Cassandra mimarisi, sistemin tek bir arıza noktasından bağımsız olarak çalışmasına izin verir. Bu, bir kümede yüz düğüm varsa ve bunlardan biri başarısız olursa kümenin çalışmaya devam edeceği anlamına gelir. Öte yandan, Hadoop ile, bir anode'un başarısızlığı tüm sistemi başarısızlığa uğratacaktı.
Cassandra mimarisi, bir kümenin binlerce düğüme sahip olabilmesi için yüksek ölçeklenebilirlik sunar. Ayrıca, işlemlerini kesintiye uğratmadan bir kümeye yeni bir düğüm ekleyebilirsiniz.
Yukarıda tartıştığımız özelliklerin yanı sıra, Apache Cassandra mimarisi aynı zamanda birden fazla veri merkezini destekler ve veri merkezleri arasında veri replikasyonu sağlar.
Topoloji ve Tasarım
Cassandra mimarisi, dağıtılmış bir sistem mimarisine dayanmaktadır. Cassandra'nın en basit versiyonu tek bir makinede çalışabilir ve temel testlerle iyi çalışabilir. Bir Cassandra örneğine düğüm denir.
Cassandra, bir kümenin bileşeni olarak birden fazla düğüm ekleyebileceğiniz yatay ölçeklenebilirlik sunar. Her düğümün diğer düğümlere bağlı olduğu eşler arası mimariyle çalışır. Her Cassandra düğümü, tüm veritabanı işlemlerini ve sunucu istemci isteklerini bir ana düğüm olmadan gerçekleştirir.
Bu eşler arası dağıtılmış mimari, tek bir arıza noktasının tüm sistemin arızalanmasına neden olmamasını sağlar. Cassandra'daki kümeler, çeşitli işlevler için birbirleriyle iletişim kurabilir. Aşağıdaki kavramlar bu tür bir iletişim için hayati öneme sahiptir:
Dedikodu
Dedikodu, düğümlerinin eşler arası iletişim için kullandığı bir Cassandra protokolüdür. Bir düğüme diğer düğümlerin durumları hakkında bilgi verir. Her saniye, bir düğüm en fazla üç diğer düğümle dedikodu gerçekleştirir ve her dedikodu mesajı, iletişimi verimli tutmak için belirli formatları ve sürüm numaralarını takip eder.
tohumlar
Cassandra'daki her düğüm, diğer düğümlerin listesi olan bir tohum listesi yapılandırır. Çekirdek düğümün, bir kümeye ilk katıldığında bir düğümü önyükleme yapmaktan başka bir amacı yoktur. Önyüklemeden sonra, bir düğüm yeniden başlatıldığında bir tohum gerektirmez. Cassandra veri merkezi başına iki veya üç çekirdek düğüm kullanmak ve tohum listesini tek tip tutmak en iyisidir.
Veritabanı Yapısı
Cassandra'da veriler, her tablonun satırlar ve sütunlar halinde düzenlendiği tablolarda depolanır. Ayrıca, Cassandra'daki tablolar, müşteri verileriyle ilgili tabloların tümü bir anahtar alanda gruplanabilirken, ticari işlemlerle ilgili tablolar başka bir anahtar alanında saklanabileceği gibi anahtar alanlarda gruplanmıştır.
Her tablonun, kümeleme sütunlarına ve bölüm anahtarına bölünmüş bir birincil anahtarı vardır. Kümeleme sütunlarının isteğe bağlı olduğunu unutmayın. Cassandra, verileri indekslemek için bölüm anahtarını kullanır. Ortak bir bölüm anahtarına sahip tüm satırlar, veri bölümleme için temel birim olan bir veri bölümü oluşturur.
Cassandra'da bölümleme
Cassandra'da bir bölümleyici, bölüm anahtarlarını belirteçlere dönüştürür. Cassandra'da Murmur3Partitioner'ın varsayılan olduğu birden çok bölümleyici seçeneği vardır. Her simgeye -2^63 ile +2^63-1 arasında bir tamsayı değeri atanır ve bu aralığın adı simge aralığıdır.
Her Cassandra bu aralığın bir parçasına sahiptir ve esas olarak aralıkla ilgili verilere sahiptir. Verileri düğümler arasında tam olarak konumlandırmak için bir belirteç kullanırız.
Sahiplik sistemini şu kavramla anlayabilirsiniz: Bir kümenin yalnızca bir düğümü varsa, o düğüm tüm belirteç aralığına sahip olur. Daha fazla düğüm eklenmesiyle, belirteç aralığı sahipliği buna göre bölünür.
Sanal Düğümler
Cassandra, Vnode olarak da bilinen sanal düğümleri kullanarak belirteç hesaplama ve atama zorluklarını basitleştirir.
Belirteçleri atamak için bir kümeyi çok sayıda sanal düğüme böler ve her fiziksel düğüm eşit miktarda Vnode alır. Bir düğümün sahip olduğu varsayılan Vnode sayısı 256'dır. Aynısını num_tokens özelliğini kullanarak da ayarlayabilirsiniz. Bir kümeye yeni bir düğüm eklediğinizde, belirteç ayırma algoritması, Vnode'ları kullanarak gerekli belirteçleri tahsis eder.
çoğaltma
Cassandra, her anahtar alanında bulunan verileri bir çoğaltma faktörü ile çoğaltır. Verilerin bir birincil kopyası, belirteç sahibi düğümde kalırken, geri kalanı Cassandra tarafından çoğaltma yerleştirme stratejisi aracılığıyla belirli düğümlere yerleştirilir. Tüm replikaların çoğu veritabanı işlemi için eşit öneme sahip olduğunu unutmayın.
Cassandra'da kopya yerleştirmeyi etkileyen iki ayar, snitch ve çoğaltma stratejisidir. Snitch, bir düğümün ait olduğu veri merkezini ve rafı belirler. İşleri verimli tutmak için topoloji hakkında Cassandra'yı bilgilendirmekten sorumludurlar.
Çoğaltma stratejisi, anahtar alanı düzeyinde ayarlanır ve bunlardan ikisi vardır: NetworkTopologyStrategy ve basit strateji. Birincisi, bir raf ve veri merkezinin farkında iken ikincisi değildir.
CAP Teoremi
Her dağıtılmış sistem, CAP teoremine dayalı olarak çalışır. Bu teoreme göre, herhangi bir dağıtılmış sistem, Tutarlılık, Kullanılabilirlik ve Bölme toleransı olmak üzere üç özellikten herhangi ikisini düzgün bir şekilde sunabilir.
Cassandra'da kullanılabilirlik ve tutarlılık arasında seçim yapabilirsiniz. Bu, verilerin düşük kullanılabilirlikle yüksek düzeyde tutarlı olabileceği veya düşük tutarlılıkla yüksek düzeyde kullanılabilir olabileceği anlamına gelir.
Belirli sayıda alındı talep etme kavramına ayarlanabilir tutarlılık denir ve bunu bireysel sorgu düzeyinde uygulayabilirsiniz.
Yazma Süreci
Bu işlemde veriler bir disk üzerindeki bir yorum günlüğüne yazılır ve ardından hash değerine göre sorumlu bir düğüme gönderilir.
Bundan sonra, düğümler verileri bellekteki bir “sstable” a yazıldığı memtable adlı bir bellek içi tabloya yazar. Ardından, gerçek tabloya güncellenir.
Sorumlu düğüm herhangi bir nedenle kapalıysa, veriler başka bir düğüme yazılır.
Cassandra Mimarisi Hakkında Daha Fazla Bilgi Edinin
Apache Cassandra mimarisini anlamak, bu çözümün nasıl çalıştığını anlamanıza yardımcı olacaktır. Şimdiye kadar, Cassandra'nın rekabette neden öne çıktığını ve neden bu kadar popüler olduğunu da biliyorsunuz.
Veritabanları hakkında daha fazla bilgi edinmek istiyorsanız, aşağıdaki kaynaklara göz atabilirsiniz:
Veri Bilimi için SQL: Neden SQL, Yararlar ve Komutlar Listesi
En Yaygın 20 SQL Mülakat Sorusu ve Yanıtı [Yeni Başlayanlar İçin]
Sertifikalı SQL Ücretsiz Çevrimiçi Kursu [2021]
Öte yandan, kişiselleştirilmiş bir öğrenme deneyimi arıyorsanız, bir veri bilimi kursu almanızı öneririz. upGrad'da, Veri Biliminde PG Diploması ve Veri Biliminde Bilim Ustası sunuyoruz . Bu kurslar size bir veri bilimi uzmanı olmak için gerekli tüm becerileri öğretecektir.
Çözüm
Büyük Veri Programı hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller için tasarlanmış ve 7+ vaka çalışması ve proje sağlayan, 14 programlama dilini ve aracını, pratik elleri kapsayan Büyük Veride Yazılım Geliştirme Uzmanlığı programında PG Diplomamıza göz atın. atölyelerde, en iyi firmalarla 400 saatten fazla titiz öğrenim ve işe yerleştirme yardımı.
upGrad'daki diğer Yazılım Mühendisliği Kurslarımıza göz atın.