{"id":37208,"date":"2025-12-28T22:41:02","date_gmt":"2025-12-28T19:41:02","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37208"},"modified":"2025-12-28T22:41:02","modified_gmt":"2025-12-28T19:41:02","slug":"cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/","title":{"rendered":"Cassandra Kurulumu ve Ubuntu 22.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc Bir K\u00fcme \u00c7al\u0131\u015ft\u0131rma"},"content":{"rendered":"<p><body><\/p>\n<h2>Cassandra Kurulumu ve Ubuntu 22.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc Bir K\u00fcme \u00c7al\u0131\u015ft\u0131rma<\/h2>\n<p>Da\u011f\u0131t\u0131k sistemlerin ve b\u00fcy\u00fck veri \u00e7\u00f6z\u00fcmlerinin y\u00fckseli\u015fiyle birlikte, y\u00fcksek performansl\u0131, \u00f6l\u00e7eklenebilir ve hataya dayan\u0131kl\u0131 veritaban\u0131 sistemlerine olan ihtiya\u00e7 artm\u0131\u015ft\u0131r. Apache Cassandra, bu ihtiya\u00e7lar\u0131 kar\u015f\u0131lamak \u00fczere tasarlanm\u0131\u015f, a\u00e7\u0131k kaynakl\u0131, da\u011f\u0131t\u0131k bir NoSQL veritaban\u0131d\u0131r. Petabaytlarca veriyi i\u015fleyebilir ve binlerce d\u00fc\u011f\u00fcmden olu\u015fan k\u00fcmelerde bile s\u00fcrekli y\u00fcksek kullan\u0131labilirlik sunar. Bu teknik makalede, Ubuntu 22.04 i\u015fletim sistemi \u00fczerinde Apache Cassandra&#8217;n\u0131n nas\u0131l kurulaca\u011f\u0131n\u0131 ve \u00e7ok d\u00fc\u011f\u00fcml\u00fc bir k\u00fcmenin nas\u0131l yap\u0131land\u0131r\u0131l\u0131p \u00e7al\u0131\u015ft\u0131r\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<h3>Giri\u015f: Apache Cassandra&#8217;ya Genel Bak\u0131\u015f<\/h3>\n<p>Apache Cassandra, Facebook taraf\u0131ndan geli\u015ftirilen ve daha sonra Apache Yaz\u0131l\u0131m Vakf\u0131&#8217;na ba\u011f\u0131\u015flanan, s\u00fctun tabanl\u0131 bir NoSQL veritaban\u0131d\u0131r. Temel \u00f6zellikleri \u015funlard\u0131r:<\/p>\n<p>*   <strong>Da\u011f\u0131t\u0131k Mimari:<\/strong> Veriler, k\u00fcmedeki t\u00fcm d\u00fc\u011f\u00fcmlere otomatik olarak da\u011f\u0131t\u0131l\u0131r. Bu, tek bir hata noktas\u0131n\u0131 ortadan kald\u0131r\u0131r ve sistemin hataya dayan\u0131kl\u0131l\u0131\u011f\u0131n\u0131 art\u0131r\u0131r.<br \/>\n*   <strong>Y\u00fcksek \u00d6l\u00e7eklenebilirlik:<\/strong> \u0130htiya\u00e7 duyuldu\u011funda k\u00fcmeye yeni d\u00fc\u011f\u00fcmler ekleyerek kapasite ve performans\u0131 do\u011frusal olarak art\u0131rabilir.<br \/>\n*   <strong>Y\u00fcksek Kullan\u0131labilirlik ve Hataya Dayan\u0131kl\u0131l\u0131k:<\/strong> Veri kopyalar\u0131 (replikalar) birden fazla d\u00fc\u011f\u00fcmde tutulur. Bir d\u00fc\u011f\u00fcm \u00e7evrimd\u0131\u015f\u0131 olsa bile, veriye di\u011fer kopyalardan eri\u015filebilir.<br \/>\n*   <strong>Esnek Veri Modeli:<\/strong> \u015eemas\u0131z veya esnek \u015femal\u0131 bir veri modeline sahiptir, bu da geli\u015ftiricilere daha fazla \u00f6zg\u00fcrl\u00fck tan\u0131r.<br \/>\n*   <strong>AP (Availability &#038; Partition Tolerance) Odakl\u0131:<\/strong> CAP teoremi ba\u011flam\u0131nda, Cassandra genellikle y\u00fcksek kullan\u0131labilirlik ve b\u00f6l\u00fcm tolerans\u0131n\u0131 \u00f6nceliklendirirken, tutarl\u0131l\u0131\u011f\u0131 yap\u0131land\u0131r\u0131labilir bir seviyede sunar.<\/p>\n<p>Cassandra&#8217;n\u0131n \u00e7ok d\u00fc\u011f\u00fcml\u00fc bir k\u00fcme olarak \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131, ger\u00e7ek d\u00fcnya uygulamalar\u0131 i\u00e7in kritik \u00f6neme sahiptir. Tek bir d\u00fc\u011f\u00fcm, geli\u015ftirme ve test ortamlar\u0131 i\u00e7in yeterli olabilirken, \u00fcretim ortamlar\u0131nda veri kayb\u0131n\u0131 \u00f6nlemek, performans\u0131 art\u0131rmak ve kesintisiz hizmet sunmak i\u00e7in birden fazla d\u00fc\u011f\u00fcmden olu\u015fan bir k\u00fcme \u015fartt\u0131r. Bu makalede, en az \u00fc\u00e7 d\u00fc\u011f\u00fcml\u00fc bir k\u00fcme yap\u0131land\u0131rmas\u0131na odaklanaca\u011f\u0131z.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>Cassandra k\u00fcmesini kurmaya ba\u015flamadan \u00f6nce, a\u015fa\u011f\u0131daki \u00f6n gereksinimlerin kar\u015f\u0131land\u0131\u011f\u0131ndan emin olmal\u0131s\u0131n\u0131z:<\/p>\n<p>1.  <strong>Birden Fazla Ubuntu 22.04 Sunucusu:<\/strong> En az \u00fc\u00e7 adet ayr\u0131 Ubuntu 22.04 sunucusuna (sanal makine veya fiziksel sunucu) ihtiyac\u0131n\u0131z olacak. Her bir sunucu i\u00e7in benzersiz bir IP adresi ve ana bilgisayar ad\u0131 (hostname) belirlemek \u00f6nemlidir. \u00d6rne\u011fin:<br \/>\n    *   <code>cassandra-node1<\/code>: 192.168.1.101<br \/>\n    *   <code>cassandra-node2<\/code>: 192.168.1.102<br \/>\n    *   <code>cassandra-node3<\/code>: 192.168.1.103<br \/>\n2.  <strong>Sistem Kaynaklar\u0131:<\/strong> Her bir d\u00fc\u011f\u00fcm i\u00e7in minimum 8 GB RAM, 2-4 CPU \u00e7ekirde\u011fi ve yeterli disk alan\u0131 (tercihen SSD) \u00f6nerilir. \u00dcretim ortamlar\u0131 i\u00e7in bu de\u011ferler daha y\u00fcksek olmal\u0131d\u0131r.<br \/>\n3.  <strong>SSH Eri\u015fimi:<\/strong> T\u00fcm d\u00fc\u011f\u00fcmlere SSH arac\u0131l\u0131\u011f\u0131yla eri\u015febilmeniz ve <code>sudo<\/code> ayr\u0131cal\u0131klar\u0131na sahip olman\u0131z gerekmektedir.<br \/>\n4.  <strong>A\u011f Yap\u0131land\u0131rmas\u0131:<\/strong><br \/>\n    *   T\u00fcm d\u00fc\u011f\u00fcmlerin birbirleriyle a\u011f \u00fczerinden ileti\u015fim kurabildi\u011finden emin olun.<br \/>\n    *   G\u00fcvenlik duvar\u0131 (firewall) kurallar\u0131, Cassandra&#8217;n\u0131n kulland\u0131\u011f\u0131 portlara izin vermelidir (bkz. G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131 b\u00f6l\u00fcm\u00fc).<br \/>\n    *   Ana bilgisayar adlar\u0131n\u0131n (hostname) do\u011fru bir \u015fekilde \u00e7\u00f6z\u00fcmlenmesi i\u00e7in <code>\/etc\/hosts<\/code> dosyas\u0131n\u0131 yap\u0131land\u0131rabilir veya bir DNS sunucusu kullanabilirsiniz.<\/p>\n<pre><code class=\"language-bash\"># Her d\u00fc\u011f\u00fcmde \/etc\/hosts dosyas\u0131n\u0131 d\u00fczenleyin\n        sudo nano \/etc\/hosts<\/code><\/pre>\n<p>        A\u015fa\u011f\u0131daki sat\u0131rlar\u0131 her d\u00fc\u011f\u00fcme ekleyin (IP adreslerini kendi yap\u0131n\u0131za g\u00f6re g\u00fcncelleyin):<\/p>\n<pre><code class=\"language-\">192.168.1.101 cassandra-node1\n        192.168.1.102 cassandra-node2\n        192.168.1.103 cassandra-node3<\/code><\/pre>\n<p>5.  <strong>Java Geli\u015ftirme Kiti (JDK):<\/strong> Cassandra, Java sanal makinesi (JVM) \u00fczerinde \u00e7al\u0131\u015f\u0131r. Cassandra 4.x serisi i\u00e7in OpenJDK 11 \u00f6nerilir.<\/p>\n<h3>Java Kurulumu<\/h3>\n<p>Her Cassandra d\u00fc\u011f\u00fcm\u00fcnde Java 11&#8217;i kurman\u0131z gerekmektedir. A\u015fa\u011f\u0131daki ad\u0131mlar\u0131 t\u00fcm sunucularda tekrarlay\u0131n:<\/p>\n<p>1.  <strong>Sistem Paketlerini G\u00fcncelleyin:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo apt update\n    sudo apt upgrade -y<\/code><\/pre>\n<p>2.  <strong>OpenJDK 11&#8217;i Kurun:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo apt install openjdk-11-jdk -y<\/code><\/pre>\n<p>3.  <strong>Java Kurulumunu Do\u011frulay\u0131n:<\/strong><\/p>\n<pre><code class=\"language-bash\">java -version<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131, OpenJDK 11&#8217;in kurulu oldu\u011funu g\u00f6stermelidir:<\/p>\n<pre><code class=\"language-\">openjdk version \"11.0.x\" 202x-xx-xx\n    OpenJDK Runtime Environment (build 11.0.x+x-Ubuntu-xxxx.x)\n    OpenJDK 64-Bit Server VM (build 11.0.x+x-Ubuntu-xxxx.x, mixed mode, sharing)<\/code><\/pre>\n<p>4.  <strong><code>JAVA_HOME<\/code> Ortam De\u011fi\u015fkenini Ayarlay\u0131n (\u00d6nerilir):<\/strong><br \/>\n    Bu ad\u0131m zorunlu olmasa da, baz\u0131 uygulamalar ve betikler i\u00e7in <code>JAVA_HOME<\/code> de\u011fi\u015fkeninin ayarlanmas\u0131 iyi bir uygulamad\u0131r.<\/p>\n<pre><code class=\"language-bash\">echo \"JAVA_HOME=$(update-java-alternatives --query-installed | grep \"java-1.11.0\" | awk '{print $NF}')\" | sudo tee -a \/etc\/environment\n    source \/etc\/environment\n    echo $JAVA_HOME<\/code><\/pre>\n<p>    Bu komut, sistem genelinde <code>JAVA_HOME<\/code> de\u011fi\u015fkenini ayarlar.<\/p>\n<h3>Cassandra Kurulumu<\/h3>\n<p>Java kurulduktan sonra, her d\u00fc\u011f\u00fcme Cassandra&#8217;y\u0131 kurabiliriz. Cassandra&#8217;y\u0131 APT deposundan kurmak, g\u00fcncellemeleri y\u00f6netmeyi kolayla\u015ft\u0131r\u0131r. Bu ad\u0131mlar\u0131 da t\u00fcm d\u00fc\u011f\u00fcmlerde tekrarlay\u0131n.<\/p>\n<h4>Cassandra Paket Deposu Ekleme<\/h4>\n<p>1.  <strong>Apache Cassandra GPG Anahtar\u0131n\u0131 \u0130\u00e7e Aktar\u0131n:<\/strong><\/p>\n<pre><code class=\"language-bash\">wget -q -O - https:\/\/www.apache.org\/dist\/cassandra\/KEYS | sudo apt-key add -<\/code><\/pre>\n<p>    E\u011fer <code>apt-key<\/code> komutu kullan\u0131mdan kald\u0131r\u0131ld\u0131\u011f\u0131na dair bir uyar\u0131 verirse, modern y\u00f6ntemi kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo wget -O \/usr\/share\/keyrings\/cassandra.asc https:\/\/www.apache.org\/dist\/cassandra\/KEYS<\/code><\/pre>\n<p>2.  <strong>Cassandra APT Deposunu Kaynak Listesine Ekleyin:<\/strong><br \/>\n    Cassandra 4.x serisini kurmak i\u00e7in a\u015fa\u011f\u0131daki depoyu ekleyin. (Mevcut en son stabil s\u00fcr\u00fcm\u00fc kontrol etmek i\u00e7in Apache Cassandra web sitesini ziyaret edebilirsiniz.)<\/p>\n<pre><code class=\"language-bash\">echo \"deb [signed-by=\/usr\/share\/keyrings\/cassandra.asc] http:\/\/www.apache.org\/dist\/cassandra\/debian 40x main\" | sudo tee -a \/etc\/apt\/sources.list.d\/cassandra.list<\/code><\/pre>\n<p>    <strong>Not:<\/strong> <code>40x<\/code> yerine, kurmak istedi\u011finiz Cassandra s\u00fcr\u00fcm\u00fcn\u00fcn ana numaras\u0131n\u0131 yaz\u0131n. \u00d6rne\u011fin, Cassandra 4.0.x i\u00e7in <code>40x<\/code>, Cassandra 4.1.x i\u00e7in <code>41x<\/code> kullan\u0131n. Bu makalenin yaz\u0131ld\u0131\u011f\u0131 tarih itibar\u0131yla 4.1.x serisi en g\u00fcncel stabil s\u00fcr\u00fcmlerden biridir, bu nedenle <code>41x<\/code> kullanmak iyi bir se\u00e7im olacakt\u0131r.<\/p>\n<pre><code class=\"language-bash\">echo \"deb [signed-by=\/usr\/share\/keyrings\/cassandra.asc] http:\/\/www.apache.org\/dist\/cassandra\/debian 41x main\" | sudo tee -a \/etc\/apt\/sources.list.d\/cassandra.list<\/code><\/pre>\n<p>3.  <strong>Paket Listesini G\u00fcncelleyin:<\/strong><br \/>\n    Yeni depoyu tan\u0131mas\u0131 i\u00e7in sistemin paket listesini g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-bash\">sudo apt update<\/code><\/pre>\n<h4>Cassandra Y\u00fckleme<\/h4>\n<p>1.  <strong>Cassandra Paketini Kurun:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo apt install cassandra -y<\/code><\/pre>\n<p>    Bu komut, Cassandra&#8217;y\u0131 ve t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 kuracakt\u0131r. Kurulumdan sonra Cassandra servisi otomatik olarak ba\u015flayabilir.<br \/>\n2.  <strong>Cassandra Servis Durumunu Kontrol Edin:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl status cassandra<\/code><\/pre>\n<p>    Servis <code>active (running)<\/code> durumda olmal\u0131d\u0131r. E\u011fer de\u011filse, <code>sudo systemctl start cassandra<\/code> komutuyla ba\u015flatabilirsiniz.<br \/>\n3.  <strong>Ba\u015flang\u0131\u00e7ta Otomatik Ba\u015flamay\u0131 Etkinle\u015ftirin:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl enable cassandra<\/code><\/pre>\n<h3>\u00c7ok D\u00fc\u011f\u00fcml\u00fc K\u00fcme Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Cassandra&#8217;y\u0131 t\u00fcm d\u00fc\u011f\u00fcmlere kurduktan sonra, onlar\u0131 bir k\u00fcme olarak \u00e7al\u0131\u015facak \u015fekilde yap\u0131land\u0131rmam\u0131z gerekir. Bu, her d\u00fc\u011f\u00fcm\u00fcn <code>cassandra.yaml<\/code> yap\u0131land\u0131rma dosyas\u0131n\u0131 d\u00fczenlemeyi i\u00e7erir. Bu dosya <code>\/etc\/cassandra\/cassandra.yaml<\/code> konumunda bulunur.<\/p>\n<p><strong>\u00d6nemli:<\/strong> Yap\u0131land\u0131rma de\u011fi\u015fikliklerini uygulamadan \u00f6nce her d\u00fc\u011f\u00fcmde Cassandra servisini durdurun:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop cassandra<\/code><\/pre>\n<h4>Genel Yap\u0131land\u0131rma Ad\u0131mlar\u0131 (T\u00fcm D\u00fc\u011f\u00fcmler)<\/h4>\n<p>Her d\u00fc\u011f\u00fcmde <code>sudo nano \/etc\/cassandra\/cassandra.yaml<\/code> komutuyla yap\u0131land\u0131rma dosyas\u0131n\u0131 a\u00e7\u0131n ve a\u015fa\u011f\u0131daki parametreleri d\u00fczenleyin:<\/p>\n<p>1.  <strong><code>cluster_name<\/code>:<\/strong> K\u00fcmenizin ad\u0131n\u0131 belirler. T\u00fcm d\u00fc\u011f\u00fcmler i\u00e7in ayn\u0131 olmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-yaml\">cluster_name: 'MyCassandraCluster'<\/code><\/pre>\n<p>2.  <strong><code>num_tokens<\/code>:<\/strong> Cassandra&#8217;n\u0131n veriyi k\u00fcme genelinde nas\u0131l da\u011f\u0131tt\u0131\u011f\u0131n\u0131 belirleyen sanal d\u00fc\u011f\u00fcm say\u0131s\u0131n\u0131 tan\u0131mlar. Varsay\u0131lan de\u011fer (256) \u00e7o\u011fu durum i\u00e7in iyidir. De\u011fi\u015ftirmeniz gerekmedik\u00e7e varsay\u0131lan\u0131 b\u0131rak\u0131n.<br \/>\n3.  <strong><code>data_file_directories<\/code>, <code>commitlog_directory<\/code>, <code>saved_caches_directory<\/code>:<\/strong> Bu parametreler, Cassandra&#8217;n\u0131n veriyi, i\u015flem g\u00fcnl\u00fcklerini ve \u00f6nbellek dosyalar\u0131n\u0131 nerede saklayaca\u011f\u0131n\u0131 belirler. Varsay\u0131lan yollar genellikle <code>\/var\/lib\/cassandra\/data<\/code>, <code>\/var\/lib\/cassandra\/commitlog<\/code> ve <code>\/var\/lib\/cassandra\/saved_caches<\/code> \u015feklindedir. Performans veya disk y\u00f6netimi nedenleriyle bunlar\u0131 de\u011fi\u015ftirebilirsiniz (\u00f6rne\u011fin, ayr\u0131 disklerde tutmak). \u015eimdilik varsay\u0131lanlar\u0131 kullanaca\u011f\u0131z.<br \/>\n4.  <strong><code>listen_address<\/code>:<\/strong> Bu d\u00fc\u011f\u00fcm\u00fcn di\u011fer Cassandra d\u00fc\u011f\u00fcmleriyle ileti\u015fim kurmak i\u00e7in kullanaca\u011f\u0131 IP adresidir. Her d\u00fc\u011f\u00fcm i\u00e7in kendi IP adresi olmal\u0131d\u0131r.<br \/>\n    *   <strong>D\u00fc\u011f\u00fcm 1 (192.168.1.101):<\/strong><\/p>\n<pre><code class=\"language-yaml\">listen_address: 192.168.1.101<\/code><\/pre>\n<p>    *   <strong>D\u00fc\u011f\u00fcm 2 (192.168.1.102):<\/strong><\/p>\n<pre><code class=\"language-yaml\">listen_address: 192.168.1.102<\/code><\/pre>\n<p>    *   <strong>D\u00fc\u011f\u00fcm 3 (192.168.1.103):<\/strong><\/p>\n<pre><code class=\"language-yaml\">listen_address: 192.168.1.103<\/code><\/pre>\n<p>    *   E\u011fer bir <code>broadcast_address<\/code> belirtilmezse, <code>listen_address<\/code> ayn\u0131 zamanda di\u011fer d\u00fc\u011f\u00fcmlere tan\u0131t\u0131lacak adrestir.<br \/>\n5.  <strong><code>rpc_address<\/code>:<\/strong> Bu d\u00fc\u011f\u00fcm\u00fcn istemci uygulamalar\u0131yla (\u00f6rne\u011fin <code>cqlsh<\/code>) ileti\u015fim kurmak i\u00e7in kullanaca\u011f\u0131 IP adresidir. Genellikle <code>listen_address<\/code> ile ayn\u0131d\u0131r. <code>0.0.0.0<\/code> olarak ayarlamak, t\u00fcm a\u011f aray\u00fczlerinden gelen ba\u011flant\u0131lar\u0131 dinlemesini sa\u011flar, ancak g\u00fcvenlik a\u00e7\u0131s\u0131ndan belirli bir IP&#8217;ye ayarlamak daha iyidir.<br \/>\n    *   <strong>D\u00fc\u011f\u00fcm 1 (192.168.1.101):<\/strong><\/p>\n<pre><code class=\"language-yaml\">rpc_address: 192.168.1.101<\/code><\/pre>\n<p>    *   <strong>D\u00fc\u011f\u00fcm 2 (192.168.1.102):<\/strong><\/p>\n<pre><code class=\"language-yaml\">rpc_address: 192.168.1.102<\/code><\/pre>\n<p>    *   <strong>D\u00fc\u011f\u00fcm 3 (192.168.1.103):<\/strong><\/p>\n<pre><code class=\"language-yaml\">rpc_address: 192.168.1.103<\/code><\/pre>\n<p>6.  <strong><code>broadcast_address<\/code> ve <code>broadcast_rpc_address<\/code>:<\/strong><br \/>\n    *   E\u011fer d\u00fc\u011f\u00fcmleriniz bir NAT arkas\u0131ndaysa veya <code>listen_address<\/code>&#8216;ten farkl\u0131 bir IP adresi \u00fczerinden di\u011fer d\u00fc\u011f\u00fcmlere tan\u0131t\u0131lmas\u0131 gerekiyorsa <code>broadcast_address<\/code>&#8216;i ayarlay\u0131n. \u00c7o\u011fu senaryoda <code>listen_address<\/code> ile ayn\u0131d\u0131r ve a\u00e7\u0131k\u00e7a ayarlaman\u0131za gerek kalmaz.<br \/>\n    *   Benzer \u015fekilde, istemcilerin farkl\u0131 bir IP \u00fczerinden ba\u011flanmas\u0131 gerekiyorsa <code>broadcast_rpc_address<\/code>&#8216;i ayarlay\u0131n. Aksi takdirde, <code>rpc_address<\/code> kullan\u0131l\u0131r.<br \/>\n    *   Basit bir k\u00fcme kurulumunda, bunlar\u0131 genellikle ayarlaman\u0131za gerek yoktur, Cassandra varsay\u0131lan olarak <code>listen_address<\/code> ve <code>rpc_address<\/code> de\u011ferlerini kullan\u0131r.<br \/>\n7.  <strong><code>seeds<\/code>:<\/strong> Bu, k\u00fcmedeki &#8220;tohum&#8221; d\u00fc\u011f\u00fcmlerin bir listesidir. Tohum d\u00fc\u011f\u00fcmler, yeni kat\u0131lan d\u00fc\u011f\u00fcmlerin k\u00fcme hakk\u0131nda bilgi edinmek i\u00e7in ilk ba\u015fvurdu\u011fu d\u00fc\u011f\u00fcmlerdir. <strong>T\u00fcm d\u00fc\u011f\u00fcmlerin <code>seeds<\/code> listesi ayn\u0131 olmal\u0131d\u0131r.<\/strong> Genellikle k\u00fcmedeki 2-3 d\u00fc\u011f\u00fcm\u00fc tohum olarak se\u00e7mek iyi bir uygulamad\u0131r. T\u00fcm d\u00fc\u011f\u00fcmlerin tohum olmas\u0131 gerekmez, hatta \u00f6nerilmez.<br \/>\n    \u00d6rnek olarak, <code>cassandra-node1<\/code> ve <code>cassandra-node2<\/code>&#8216;yi tohum d\u00fc\u011f\u00fcmleri olarak se\u00e7elim:<\/p>\n<pre><code class=\"language-yaml\">seeds: \"192.168.1.101,192.168.1.102\"<\/code><\/pre>\n<p>    Bu sat\u0131r\u0131 t\u00fcm d\u00fc\u011f\u00fcmlerde ayn\u0131 \u015fekilde ayarlay\u0131n.<br \/>\n8.  <strong><code>endpoint_snitch<\/code>:<\/strong> Cassandra&#8217;n\u0131n d\u00fc\u011f\u00fcmlerin a\u011f topolojisini nas\u0131l alg\u0131lad\u0131\u011f\u0131n\u0131 belirler.<br \/>\n    *   <code>SimpleSnitch<\/code>: En basitidir, t\u00fcm d\u00fc\u011f\u00fcmlerin ayn\u0131 veri merkezinde ve rafta oldu\u011funu varsayar. Test ortamlar\u0131 i\u00e7in uygundur.<br \/>\n    *   <code>GossipingPropertyFileSnitch<\/code>: \u00dcretim ortamlar\u0131 i\u00e7in \u00f6nerilen snitch&#8217;lerden biridir. <code>cassandra-rackdc.properties<\/code> dosyas\u0131n\u0131 kullanarak veri merkezi ve raf bilgilerini belirlemenizi sa\u011flar. Bu, Cassandra&#8217;n\u0131n verileri co\u011frafi olarak ak\u0131ll\u0131ca da\u011f\u0131tmas\u0131na yard\u0131mc\u0131 olur.<br \/>\n    *   <code>RackInferringSnitch<\/code>: D\u00fc\u011f\u00fcmlerin IP adreslerine bakarak raf ve veri merkezi bilgilerini tahmin etmeye \u00e7al\u0131\u015f\u0131r.<br \/>\n    Varsay\u0131lan <code>SimpleSnitch<\/code> yerine <code>GossipingPropertyFileSnitch<\/code> kullanmak daha iyi bir uygulamad\u0131r:<\/p>\n<pre><code class=\"language-yaml\">endpoint_snitch: GossipingPropertyFileSnitch<\/code><\/pre>\n<p>    E\u011fer <code>GossipingPropertyFileSnitch<\/code> kullan\u0131yorsan\u0131z, her d\u00fc\u011f\u00fcmde <code>\/etc\/cassandra\/cassandra-rackdc.properties<\/code> dosyas\u0131n\u0131 da yap\u0131land\u0131rman\u0131z gerekir.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/cassandra\/cassandra-rackdc.properties<\/code><\/pre>\n<p>    Bu dosyaya a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 ekleyin (\u00f6rne\u011fin, t\u00fcm d\u00fc\u011f\u00fcmlerin &#8220;datacenter1&#8221; i\u00e7inde ve &#8220;rack1&#8221; i\u00e7inde oldu\u011funu varsayal\u0131m):<\/p>\n<pre><code class=\"language-properties\">dc=datacenter1\n    rack=rack1<\/code><\/pre>\n<p>    Ger\u00e7ek bir \u00fcretim ortam\u0131nda, farkl\u0131 veri merkezleri veya raflar\u0131n\u0131z varsa, bu de\u011ferleri buna g\u00f6re ayarlaman\u0131z gerekir.<\/p>\n<h4>D\u00fc\u011f\u00fcm 1 Yap\u0131land\u0131rmas\u0131 (\u00d6rnek)<\/h4>\n<p><code>\/etc\/cassandra\/cassandra.yaml<\/code> dosyas\u0131nda (IP: 192.168.1.101):<\/p>\n<pre><code class=\"language-yaml\">cluster_name: 'MyCassandraCluster'\nlisten_address: 192.168.1.101\nrpc_address: 192.168.1.101\n<h2>seed d\u00fc\u011f\u00fcmleri listesi (t\u00fcm d\u00fc\u011f\u00fcmlerde ayn\u0131 olmal\u0131)<\/h2>\nseeds: \"192.168.1.101,192.168.1.102\"\nendpoint_snitch: GossipingPropertyFileSnitch<\/code><\/pre>\n<p><code>\/etc\/cassandra\/cassandra-rackdc.properties<\/code> dosyas\u0131nda (IP: 192.168.1.101):<\/p>\n<pre><code class=\"language-properties\">dc=datacenter1\nrack=rack1<\/code><\/pre>\n<h4>D\u00fc\u011f\u00fcm 2 Yap\u0131land\u0131rmas\u0131 (\u00d6rnek)<\/h4>\n<p><code>\/etc\/cassandra\/cassandra.yaml<\/code> dosyas\u0131nda (IP: 192.168.1.102):<\/p>\n<pre><code class=\"language-yaml\">cluster_name: 'MyCassandraCluster'\nlisten_address: 192.168.1.102\nrpc_address: 192.168.1.102\n<h2>seed d\u00fc\u011f\u00fcmleri listesi (t\u00fcm d\u00fc\u011f\u00fcmlerde ayn\u0131 olmal\u0131)<\/h2>\nseeds: \"192.168.1.101,192.168.1.102\"\nendpoint_snitch: GossipingPropertyFileSnitch<\/code><\/pre>\n<p><code>\/etc\/cassandra\/cassandra-rackdc.properties<\/code> dosyas\u0131nda (IP: 192.168.1.102):<\/p>\n<pre><code class=\"language-properties\">dc=datacenter1\nrack=rack1<\/code><\/pre>\n<h4>D\u00fc\u011f\u00fcm 3 Yap\u0131land\u0131rmas\u0131 (\u00d6rnek)<\/h4>\n<p><code>\/etc\/cassandra\/cassandra.yaml<\/code> dosyas\u0131nda (IP: 192.168.1.103):<\/p>\n<pre><code class=\"language-yaml\">cluster_name: 'MyCassandraCluster'\nlisten_address: 192.168.1.103\nrpc_address: 192.168.1.103\n<h2>seed d\u00fc\u011f\u00fcmleri listesi (t\u00fcm d\u00fc\u011f\u00fcmlerde ayn\u0131 olmal\u0131)<\/h2>\nseeds: \"192.168.1.101,192.168.1.102\"\nendpoint_snitch: GossipingPropertyFileSnitch<\/code><\/pre>\n<p><code>\/etc\/cassandra\/cassandra-rackdc.properties<\/code> dosyas\u0131nda (IP: 192.168.1.103):<\/p>\n<pre><code class=\"language-properties\">dc=datacenter1\nrack=rack1<\/code><\/pre>\n<p>Yap\u0131land\u0131rma dosyalar\u0131n\u0131 kaydettikten sonra her d\u00fc\u011f\u00fcmde Cassandra servisini yeniden ba\u015flatmaya haz\u0131r\u0131z.<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 (Firewall) Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Cassandra d\u00fc\u011f\u00fcmlerinin birbirleriyle ve istemcilerle ileti\u015fim kurabilmesi i\u00e7in gerekli portlar\u0131n g\u00fcvenlik duvar\u0131nda a\u00e7\u0131k olmas\u0131 gerekir. Ubuntu&#8217;da UFW (Uncomplicated Firewall) kullan\u0131yorsan\u0131z, a\u015fa\u011f\u0131daki komutlar\u0131 her d\u00fc\u011f\u00fcmde \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 7000\/tcp  # D\u00fc\u011f\u00fcmler aras\u0131 ileti\u015fim (gossip)\nsudo ufw allow 7001\/tcp  # D\u00fc\u011f\u00fcmler aras\u0131 SSL ileti\u015fim (e\u011fer kullan\u0131l\u0131yorsa)\nsudo ufw allow 7199\/tcp  # JMX portu (nodetool i\u00e7in)\nsudo ufw allow 9042\/tcp  # CQL istemci portu (cqlsh i\u00e7in)\nsudo ufw allow 9160\/tcp  # Thrift istemci portu (eski istemciler i\u00e7in, art\u0131k \u00f6nerilmez)\nsudo ufw enable\nsudo ufw status verbose<\/code><\/pre>\n<p>Bu portlar, Cassandra k\u00fcmesinin d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131 i\u00e7in temel portlard\u0131r.<\/p>\n<h3>K\u00fcmenin Ba\u015flat\u0131lmas\u0131 ve Do\u011frulanmas\u0131<\/h3>\n<p>T\u00fcm yap\u0131land\u0131rmalar tamamland\u0131ktan sonra, d\u00fc\u011f\u00fcmleri ba\u015flatabilir ve k\u00fcme durumunu kontrol edebiliriz.<\/p>\n<h4>D\u00fc\u011f\u00fcmleri Ba\u015flatma S\u0131ras\u0131<\/h4>\n<p>1.  <strong>\u00d6nce Tohum D\u00fc\u011f\u00fcmleri Ba\u015flat\u0131n:<\/strong> <code>seeds<\/code> listesinde belirtti\u011finiz d\u00fc\u011f\u00fcmleri \u00f6nce ba\u015flat\u0131n (\u00f6rne\u011fimizde <code>cassandra-node1<\/code> ve <code>cassandra-node2<\/code>).<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start cassandra<\/code><\/pre>\n<p>2.  <strong>Di\u011fer D\u00fc\u011f\u00fcmleri Ba\u015flat\u0131n:<\/strong> Tohum d\u00fc\u011f\u00fcmleri ba\u015flad\u0131ktan ve bir s\u00fcre sonra di\u011fer d\u00fc\u011f\u00fcmleri ba\u015flat\u0131n (<code>cassandra-node3<\/code>).<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start cassandra<\/code><\/pre>\n<h4>K\u00fcme Durumunu Kontrol Etme<\/h4>\n<p>Herhangi bir d\u00fc\u011f\u00fcmde <code>nodetool status<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak k\u00fcmenin durumunu kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">nodetool status<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131 a\u015fa\u011f\u0131daki gibi g\u00f6r\u00fcnmelidir:<\/p>\n<pre><code class=\"language-\">Datacenter: datacenter1\n=======================\nStatus=Up\/Down\n| State=Normal\/Leaving\/Joining\/Moving\n--  Address         Load       Tokens  Owns (effective)  Host ID                               Rack\nUN  192.168.1.101   123.45 KB  256     100.0%            xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  rack1\nUN  192.168.1.102   123.45 KB  256     100.0%            yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy  rack1\nUN  192.168.1.103   123.45 KB  256     100.0%            zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz  rack1<\/code><\/pre>\n<p>*   <strong><code>Status<\/code> s\u00fctunu:<\/strong> <code>UN<\/code> (Up\/Normal) durumu, d\u00fc\u011f\u00fcm\u00fcn \u00e7al\u0131\u015f\u0131r durumda oldu\u011funu ve k\u00fcmenin normal bir par\u00e7as\u0131 oldu\u011funu g\u00f6sterir. <code>DN<\/code> (Down\/Normal), <code>UL<\/code> (Up\/Leaving) gibi ba\u015fka durumlar da olabilir.<br \/>\n*   <strong><code>Address<\/code> s\u00fctunu:<\/strong> D\u00fc\u011f\u00fcm\u00fcn IP adresini g\u00f6sterir.<br \/>\n*   <strong><code>Load<\/code> s\u00fctunu:<\/strong> D\u00fc\u011f\u00fcmdeki toplam veri y\u00fck\u00fcn\u00fc g\u00f6sterir.<br \/>\n*   <strong><code>Owns (effective)<\/code> s\u00fctunu:<\/strong> D\u00fc\u011f\u00fcm\u00fcn k\u00fcme verisinin ne kadar\u0131n\u0131 tuttu\u011funu g\u00f6sterir. T\u00fcm d\u00fc\u011f\u00fcmlerin yakla\u015f\u0131k olarak e\u015fit bir y\u00fczdeye sahip olmas\u0131 beklenir.<br \/>\n*   <strong><code>Host ID<\/code>:<\/strong> Her d\u00fc\u011f\u00fcm i\u00e7in benzersiz bir tan\u0131mlay\u0131c\u0131d\u0131r.<br \/>\n*   <strong><code>Rack<\/code> ve <code>Datacenter<\/code>:<\/strong> <code>cassandra-rackdc.properties<\/code> dosyas\u0131nda belirtti\u011finiz de\u011ferlerdir.<\/p>\n<p>E\u011fer herhangi bir d\u00fc\u011f\u00fcm <code>UN<\/code> durumunda de\u011filse, a\u015fa\u011f\u0131daki sorun giderme ad\u0131mlar\u0131n\u0131 izleyin:<br \/>\n*   <strong>Cassandra g\u00fcnl\u00fcklerini kontrol edin:<\/strong> <code>\/var\/log\/cassandra\/system.log<\/code> dosyas\u0131n\u0131 inceleyin. Hata mesajlar\u0131 sorunun k\u00f6kenini g\u00f6sterebilir.<br \/>\n*   <strong>A\u011f ba\u011flant\u0131s\u0131n\u0131 kontrol edin:<\/strong> <code>ping<\/code> ve <code>telnet<\/code> komutlar\u0131yla d\u00fc\u011f\u00fcmler aras\u0131 ba\u011flant\u0131y\u0131 ve port eri\u015fimini test edin.<br \/>\n*   <strong>G\u00fcvenlik duvar\u0131n\u0131 kontrol edin:<\/strong> Gerekli portlar\u0131n a\u00e7\u0131k oldu\u011fundan emin olun.<br \/>\n*   <strong><code>cassandra.yaml<\/code> dosyas\u0131n\u0131 tekrar kontrol edin:<\/strong> \u00d6zellikle <code>listen_address<\/code>, <code>rpc_address<\/code>, <code>seeds<\/code> ve <code>cluster_name<\/code> de\u011ferlerinin do\u011fru oldu\u011fundan emin olun.<\/p>\n<h3>Veri Modeli ve Temel \u0130\u015flemler<\/h3>\n<p>K\u00fcme ba\u015far\u0131yla kurulduktan sonra, Cassandra&#8217;ya ba\u011flan\u0131p veri modellemesi yapabilir ve temel CRUD (Create, Read, Update, Delete) i\u015flemlerini ger\u00e7ekle\u015ftirebiliriz. Cassandra&#8217;ya ba\u011flanmak i\u00e7in <code>cqlsh<\/code> (Cassandra Query Language Shell) arac\u0131n\u0131 kullan\u0131r\u0131z.<\/p>\n<p>Herhangi bir d\u00fc\u011f\u00fcmde <code>cqlsh<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">cqlsh 192.168.1.101  # Herhangi bir d\u00fc\u011f\u00fcm\u00fcn IP adresini kullanabilirsiniz<\/code><\/pre>\n<p><code>cqlsh<\/code> istemine ba\u011fland\u0131ktan sonra, CQL (Cassandra Query Language) komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rabilirsiniz.<\/p>\n<h4>Keyspace Olu\u015fturma<\/h4>\n<p>Cassandra&#8217;da veriler <code>keyspace<\/code> ad\u0131 verilen mant\u0131ksal birimlerde grupland\u0131r\u0131l\u0131r. Bir keyspace olu\u015ftururken, verilerin k\u00fcme genelinde nas\u0131l kopyalanaca\u011f\u0131n\u0131 belirleyen bir \u00e7o\u011faltma stratejisi (replication strategy) ve \u00e7o\u011faltma fakt\u00f6r\u00fc (replication factor) belirtmeniz gerekir.<\/p>\n<p>*   <strong><code>SimpleStrategy<\/code>:<\/strong> Tek bir veri merkezi i\u00e7in kullan\u0131l\u0131r. T\u00fcm replikalar ayn\u0131 veri merkezinde bulunur.<br \/>\n*   <strong><code>NetworkTopologyStrategy<\/code>:<\/strong> Birden fazla veri merkezi olan \u00fcretim ortamlar\u0131 i\u00e7in \u00f6nerilir. Her veri merkezi i\u00e7in ayr\u0131 ayr\u0131 \u00e7o\u011faltma fakt\u00f6r\u00fc belirlemenizi sa\u011flar.<\/p>\n<p>\u00d6rnek olarak, <code>SimpleStrategy<\/code> ile bir keyspace olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-cql\">CREATE KEYSPACE myapp_keyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3};<\/code><\/pre>\n<p>Burada <code>replication_factor: 3<\/code>, verinin 3 farkl\u0131 d\u00fc\u011f\u00fcmde kopyalanaca\u011f\u0131 anlam\u0131na gelir. Bu, 2 d\u00fc\u011f\u00fcm\u00fcn ar\u0131zalanmas\u0131 durumunda bile verinin hala eri\u015filebilir olmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>E\u011fer <code>NetworkTopologyStrategy<\/code> kullan\u0131yorsan\u0131z:<\/p>\n<pre><code class=\"language-cql\">CREATE KEYSPACE myapp_keyspace WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1': 3};<\/code><\/pre>\n<p>Burada <code>datacenter1<\/code> i\u00e7in 3 replika belirttik.<\/p>\n<p>Keyspace&#8217;i olu\u015fturduktan sonra, onu kullanmaya ba\u015flayabilirsiniz:<\/p>\n<pre><code class=\"language-cql\">USE myapp_keyspace;<\/code><\/pre>\n<h4>Tablo Olu\u015fturma<\/h4>\n<p>Keyspace i\u00e7inde tablolar olu\u015fturabilirsiniz. Cassandra&#8217;da tablo olu\u015ftururken birincil anahtar (primary key) belirlemek zorunludur. Birincil anahtar, b\u00f6l\u00fcm anahtar\u0131 (partition key) ve k\u00fcmeleme anahtar\u0131ndan (clustering key) olu\u015fur.<\/p>\n<p>*   <strong>B\u00f6l\u00fcm Anahtar\u0131:<\/strong> Verinin hangi d\u00fc\u011f\u00fcmde depolanaca\u011f\u0131n\u0131 belirler. \u0130yi se\u00e7ilmi\u015f bir b\u00f6l\u00fcm anahtar\u0131, veri da\u011f\u0131t\u0131m\u0131n\u0131 optimize eder.<br \/>\n*   <strong>K\u00fcmeleme Anahtar\u0131:<\/strong> Bir b\u00f6l\u00fcm i\u00e7indeki verilerin nas\u0131l s\u0131ralanaca\u011f\u0131n\u0131 belirler.<\/p>\n<p>\u00d6rnek bir kullan\u0131c\u0131 tablosu olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-cql\">CREATE TABLE users (\n    user_id UUID PRIMARY KEY,\n    username text,\n    email text,\n    created_at timestamp\n);<\/code><\/pre>\n<p>Burada <code>user_id<\/code> b\u00f6l\u00fcm anahtar\u0131d\u0131r.<\/p>\n<p>Daha karma\u015f\u0131k bir \u00f6rnek, <code>user_id<\/code> ve <code>post_id<\/code>&#8216;nin birincil anahtar oldu\u011fu bir g\u00f6nderi tablosu:<\/p>\n<pre><code class=\"language-cql\">CREATE TABLE posts (\n    user_id UUID,\n    post_id TIMEUUID,\n    post_content text,\n    created_at timestamp,\n    PRIMARY KEY ((user_id), post_id)\n);<\/code><\/pre>\n<p>Burada <code>user_id<\/code> b\u00f6l\u00fcm anahtar\u0131d\u0131r ve <code>post_id<\/code> k\u00fcmeleme anahtar\u0131d\u0131r. Bu, belirli bir <code>user_id<\/code>&#8216;ye ait t\u00fcm g\u00f6nderilerin ayn\u0131 b\u00f6l\u00fcmde depolanaca\u011f\u0131 ve <code>post_id<\/code>&#8216;ye g\u00f6re s\u0131ralanaca\u011f\u0131 anlam\u0131na gelir.<\/p>\n<h4>Veri Ekleme ve Sorgulama<\/h4>\n<p>Veri eklemek i\u00e7in <code>INSERT<\/code> komutunu kullan\u0131n:<\/p>\n<pre><code class=\"language-cql\">INSERT INTO users (user_id, username, email, created_at) VALUES (uuid(), 'alice', 'alice@example.com', toTimestamp(now()));\nINSERT INTO users (user_id, username, email, created_at) VALUES (uuid(), 'bob', 'bob@example.com', toTimestamp(now()));<\/code><\/pre>\n<p>Veri sorgulamak i\u00e7in <code>SELECT<\/code> komutunu kullan\u0131n:<\/p>\n<pre><code class=\"language-cql\">SELECT * FROM users;\nSELECT * FROM users WHERE user_id = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;<\/code><\/pre>\n<p><strong>\u00d6nemli:<\/strong> Cassandra&#8217;da sorgular genellikle birincil anahtar\u0131n bir k\u0131sm\u0131n\u0131 veya tamam\u0131n\u0131 i\u00e7ermelidir. Rastgele veya birincil anahtar olmayan s\u00fctunlara g\u00f6re sorgulama yapmak, k\u00fcme genelinde performans sorunlar\u0131na yol a\u00e7abilir (full table scan).<\/p>\n<h3>Bak\u0131m ve Y\u00f6netim<\/h3>\n<p>Cassandra k\u00fcmesinin sa\u011fl\u0131kl\u0131 ve performansl\u0131 \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in d\u00fczenli bak\u0131m ve y\u00f6netim faaliyetleri gereklidir.<\/p>\n<h4><code>nodetool<\/code> Komutlar\u0131<\/h4>\n<p><code>nodetool<\/code> arac\u0131, Cassandra d\u00fc\u011f\u00fcmlerini y\u00f6netmek i\u00e7in kullan\u0131lan g\u00fc\u00e7l\u00fc bir komut sat\u0131r\u0131 arac\u0131d\u0131r.<\/p>\n<p>*   <strong><code>nodetool status<\/code>:<\/strong> K\u00fcmenin genel durumunu g\u00f6sterir (daha \u00f6nce bahsedildi).<br \/>\n*   <strong><code>nodetool repair<\/code>:<\/strong> D\u00fc\u011f\u00fcmler aras\u0131ndaki veri tutarl\u0131l\u0131\u011f\u0131n\u0131 sa\u011flar. Cassandra, hataya dayan\u0131kl\u0131 bir sistem olsa da, tutars\u0131zl\u0131klar zamanla ortaya \u00e7\u0131kabilir. <code>repair<\/code> i\u015flemi, bu tutars\u0131zl\u0131klar\u0131 d\u00fczeltir. D\u00fczenli olarak (\u00f6rne\u011fin haftal\u0131k) \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131 \u00f6nerilir.<\/p>\n<pre><code class=\"language-bash\">nodetool repair myapp_keyspace<\/code><\/pre>\n<p>*   <strong><code>nodetool cleanup<\/code>:<\/strong> Bir d\u00fc\u011f\u00fcm\u00fcn art\u0131k tutmamas\u0131 gereken verileri (\u00f6rne\u011fin, bir d\u00fc\u011f\u00fcm k\u00fcmeden ayr\u0131ld\u0131ktan veya \u00e7o\u011faltma fakt\u00f6r\u00fc de\u011fi\u015ftirildikten sonra) temizler.<\/p>\n<pre><code class=\"language-bash\">nodetool cleanup<\/code><\/pre>\n<p>*   <strong><code>nodetool drain<\/code>:<\/strong> Bir d\u00fc\u011f\u00fcm\u00fc kapatmadan \u00f6nce t\u00fcm bellek i\u00e7i verileri diske yazar. Bu, d\u00fc\u011f\u00fcm\u00fcn g\u00fcvenli bir \u015fekilde kapat\u0131lmas\u0131n\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">nodetool drain<\/code><\/pre>\n<p>*   <strong><code>nodetool flush<\/code>:<\/strong> Bellekteki commitlog&#8217;u diske yazar (memtable&#8217;lar\u0131 SSTable&#8217;lara d\u00f6n\u00fc\u015ft\u00fcr\u00fcr).<br \/>\n*   <strong><code>nodetool decommission<\/code>:<\/strong> Bir d\u00fc\u011f\u00fcm\u00fc k\u00fcmeden g\u00fcvenli bir \u015fekilde kald\u0131r\u0131r. Bu i\u015flem, d\u00fc\u011f\u00fcmdeki t\u00fcm verileri di\u011fer d\u00fc\u011f\u00fcmlere ta\u015f\u0131r.<br \/>\n*   <strong><code>nodetool rebuild<\/code>:<\/strong> Yeni eklenen bir d\u00fc\u011f\u00fcm\u00fcn k\u00fcmedeki verileri di\u011fer d\u00fc\u011f\u00fcmlerden kopyalamas\u0131n\u0131 sa\u011flar.<br \/>\n*   <strong><code>nodetool gcstats<\/code>:<\/strong> Java \u00e7\u00f6p toplama (garbage collection) istatistiklerini g\u00f6sterir. Performans sorunlar\u0131n\u0131 te\u015fhis etmek i\u00e7in faydal\u0131d\u0131r.<br \/>\n*   <strong><code>nodetool ring<\/code>:<\/strong> K\u00fcmenin halka topolojisini g\u00f6sterir.<\/p>\n<h4>G\u00fcncelleme ve Yama Uygulama<\/h4>\n<p>Cassandra g\u00fcncellemeleri genellikle &#8220;rolling restart&#8221; y\u00f6ntemiyle yap\u0131l\u0131r. Bu, k\u00fcmenin kesintisiz \u00e7al\u0131\u015fmaya devam ederken d\u00fc\u011f\u00fcmlerin tek tek g\u00fcncellenmesi anlam\u0131na gelir.<br \/>\n1.  Bir d\u00fc\u011f\u00fcm\u00fc durdurun.<br \/>\n2.  Yaz\u0131l\u0131m\u0131 g\u00fcncelleyin (\u00f6rne\u011fin <code>sudo apt update && sudo apt upgrade cassandra -y<\/code>).<br \/>\n3.  D\u00fc\u011f\u00fcm\u00fc ba\u015flat\u0131n.<br \/>\n4.  <code>nodetool status<\/code> ile d\u00fc\u011f\u00fcm\u00fcn <code>UN<\/code> durumuna geldi\u011finden emin olun.<br \/>\n5.  Bir sonraki d\u00fc\u011f\u00fcme ge\u00e7in.<\/p>\n<h4>Yedekleme ve Geri Y\u00fckleme<\/h4>\n<p>Cassandra, anl\u0131k g\u00f6r\u00fcnt\u00fc (snapshot) mekanizmas\u0131 ile yedekleme yap\u0131lmas\u0131na olanak tan\u0131r.<\/p>\n<pre><code class=\"language-bash\">nodetool snapshot -t my_backup_tag myapp_keyspace<\/code><\/pre>\n<p>Bu komut, <code>myapp_keyspace<\/code> i\u00e7in bir anl\u0131k g\u00f6r\u00fcnt\u00fc olu\u015fturur. Anl\u0131k g\u00f6r\u00fcnt\u00fcler, <code>\/var\/lib\/cassandra\/data\/keyspace_name\/table_name\/snapshots\/my_backup_tag<\/code> dizininde saklan\u0131r. Geri y\u00fckleme, bu dosyalar\u0131 uygun dizinlere kopyalayarak ve d\u00fc\u011f\u00fcm\u00fc yeniden ba\u015flatarak yap\u0131l\u0131r.<\/p>\n<h3>Performans \u0130pu\u00e7lar\u0131 ve En \u0130yi Uygulamalar<\/h3>\n<p>Cassandra k\u00fcmesinden en iyi performans\u0131 elde etmek i\u00e7in baz\u0131 en iyi uygulamalar\u0131 takip etmek \u00f6nemlidir:<\/p>\n<p>1.  <strong>Donan\u0131m Se\u00e7imi:<\/strong><br \/>\n    *   <strong>SSD Diskler:<\/strong> Cassandra, rastgele okuma\/yazma i\u015flemleri i\u00e7in yo\u011fun disk G\/\u00c7&#8217;ye ihtiya\u00e7 duyar. SSD&#8217;ler, geleneksel HDD&#8217;lere g\u00f6re \u00f6nemli \u00f6l\u00e7\u00fcde daha iyi performans sunar.<br \/>\n    *   <strong>Yeterli RAM:<\/strong> Memtable&#8217;lar ve \u00f6nbellekler i\u00e7in bol miktarda RAM, disk G\/\u00c7&#8217;sini azalt\u0131r.<br \/>\n    *   <strong>CPU:<\/strong> \u00c7o\u011fu i\u015f y\u00fck\u00fc i\u00e7in 4-8 \u00e7ekirdek yeterli olabilir, ancak yo\u011fun i\u015flem gerektiren i\u015f y\u00fcklerinde daha fazlas\u0131 gerekebilir.<br \/>\n2.  <strong>Java GC Ayarlar\u0131:<\/strong> Cassandra&#8217;n\u0131n <code>jvm.options<\/code> dosyas\u0131nda (genellikle <code>\/etc\/cassandra\/jvm.options<\/code> veya <code>\/etc\/cassandra\/conf\/jvm.options<\/code>) Java \u00c7\u00f6p Toplama (Garbage Collection) ayarlar\u0131n\u0131 optimize etmek, \u00f6zellikle y\u00fcksek y\u00fck alt\u0131nda performans\u0131 art\u0131rabilir. G1GC (Garbage-First Garbage Collector) genellikle \u00f6nerilir.<br \/>\n3.  <strong>Veri Modellemesi:<\/strong> Cassandra&#8217;daki en kritik performans fakt\u00f6rlerinden biridir.<br \/>\n    *   <strong>Sorgu Odakl\u0131 Veri Modellemesi:<\/strong> Uygulaman\u0131z\u0131n yapaca\u011f\u0131 sorgular\u0131 \u00f6nceden belirleyin ve tablolar\u0131n\u0131z\u0131 bu sorgular\u0131 verimli bir \u015fekilde yan\u0131tlayacak \u015fekilde tasarlay\u0131n.<br \/>\n    *   <strong>B\u00f6l\u00fcm Anahtar\u0131 (Partition Key):<\/strong> Verilerin k\u00fcme genelinde e\u015fit \u015fekilde da\u011f\u0131lmas\u0131n\u0131 sa\u011flayacak ve s\u0131cak b\u00f6l\u00fcmleri (hot partitions) \u00f6nleyecek bir b\u00f6l\u00fcm anahtar\u0131 se\u00e7in.<br \/>\n    *   <strong>K\u00fcmeleme Anahtar\u0131 (Clustering Key):<\/strong> Bir b\u00f6l\u00fcm i\u00e7indeki verilerin sorgu gereksinimlerinize g\u00f6re s\u0131ralanmas\u0131n\u0131 sa\u011flay\u0131n.<br \/>\n4.  <strong>\u00c7o\u011faltma Fakt\u00f6r\u00fc (Replication Factor) ve Tutarl\u0131l\u0131k Seviyesi (Consistency Level):<\/strong><br \/>\n    *   <code>replication_factor<\/code> (RF), veri kayb\u0131na kar\u015f\u0131 dayan\u0131kl\u0131l\u0131\u011f\u0131 ve okuma\/yazma performans\u0131n\u0131 etkiler. Genellikle \u00fcretim ortamlar\u0131nda 3 veya daha y\u00fcksek bir RF \u00f6nerilir.<br \/>\n    *   <code>consistency_level<\/code> (CL), bir okuma veya yazma i\u015fleminin ba\u015far\u0131l\u0131 say\u0131lmas\u0131 i\u00e7in ka\u00e7 replikan\u0131n onay vermesi gerekti\u011fini belirler. <code>QUORUM<\/code> (RF\/2 + 1) en yayg\u0131n ve dengeli se\u00e7imdir. CL ve RF&#8217;nin do\u011fru kombinasyonu, veri tutarl\u0131l\u0131\u011f\u0131 ve kullan\u0131labilirlik aras\u0131nda bir denge kurar.<br \/>\n5.  <strong>Snitch Se\u00e7imi:<\/strong> <code>GossipingPropertyFileSnitch<\/code> gibi topolojiye duyarl\u0131 bir snitch kullanmak, Cassandra&#8217;n\u0131n verileri co\u011frafi olarak ak\u0131ll\u0131ca da\u011f\u0131tmas\u0131n\u0131 ve a\u011f trafi\u011fini optimize etmesini sa\u011flar.<br \/>\n6.  <strong>\u0130stemci S\u00fcr\u00fcc\u00fcleri:<\/strong> Cassandra ile etkile\u015fim kurmak i\u00e7in optimize edilmi\u015f istemci s\u00fcr\u00fcc\u00fcleri kullan\u0131n ve ba\u011flant\u0131 havuzu (connection pooling), yeniden deneme politikalar\u0131 (retry policies) gibi \u00f6zellikleri do\u011fru yap\u0131land\u0131r\u0131n.<br \/>\n7.  <strong>\u0130zleme (Monitoring):<\/strong> K\u00fcmenizin sa\u011fl\u0131\u011f\u0131n\u0131 ve performans\u0131n\u0131 izlemek i\u00e7in Prometheus, Grafana, JMX gibi ara\u00e7lar\u0131 kullan\u0131n. CPU, RAM, disk G\/\u00c7, a\u011f trafi\u011fi, Cassandra metrikleri (okuma\/yazma gecikmeleri, \u00e7\u00f6p toplama s\u00fcreleri) gibi temel metrikleri takip edin.<\/p>\n<h3>Sorun Giderme<\/h3>\n<p>Cassandra kurulumu veya k\u00fcme operasyonlar\u0131 s\u0131ras\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcm ipu\u00e7lar\u0131:<\/p>\n<p>*   <strong>D\u00fc\u011f\u00fcm K\u00fcme&#8217;ye Kat\u0131lam\u0131yor:<\/strong><br \/>\n    *   <strong>G\u00fcnl\u00fckleri kontrol edin:<\/strong> <code>\/var\/log\/cassandra\/system.log<\/code> dosyas\u0131n\u0131 inceleyin. <code>WARN<\/code> veya <code>ERROR<\/code> mesajlar\u0131 aray\u0131n.<br \/>\n    *   <strong><code>cassandra.yaml<\/code>:<\/strong> <code>cluster_name<\/code>, <code>listen_address<\/code>, <code>rpc_address<\/code>, <code>seeds<\/code> parametrelerinin do\u011fru ve t\u00fcm d\u00fc\u011f\u00fcmler aras\u0131nda tutarl\u0131 oldu\u011fundan emin olun.<br \/>\n    *   <strong>A\u011f ba\u011flant\u0131s\u0131:<\/strong> D\u00fc\u011f\u00fcmlerin birbirlerinin <code>listen_address<\/code> ve <code>rpc_address<\/code> portlar\u0131na eri\u015febildi\u011finden emin olun (telnet veya netcat ile test edin).<br \/>\n    *   <strong>G\u00fcvenlik duvar\u0131:<\/strong> Gerekli portlar\u0131n a\u00e7\u0131k oldu\u011fundan emin olun.<br \/>\n    *   <strong>Java s\u00fcr\u00fcm\u00fc:<\/strong> Do\u011fru Java s\u00fcr\u00fcm\u00fcn\u00fcn (OpenJDK 11) kurulu oldu\u011fundan ve <code>JAVA_HOME<\/code>&#8216;un do\u011fru ayarland\u0131\u011f\u0131ndan emin olun.<br \/>\n*   <strong><code>nodetool status<\/code> bo\u015f veya sadece tek d\u00fc\u011f\u00fcm\u00fc g\u00f6steriyor:<\/strong><br \/>\n    *   Yukar\u0131daki &#8220;D\u00fc\u011f\u00fcm K\u00fcme&#8217;ye Kat\u0131lam\u0131yor&#8221; sorun giderme ad\u0131mlar\u0131n\u0131 izleyin.<br \/>\n    *   Tohum d\u00fc\u011f\u00fcmlerinin ilk ba\u015flad\u0131\u011f\u0131ndan ve stabil oldu\u011fundan emin olun.<br \/>\n    *   Di\u011fer d\u00fc\u011f\u00fcmlerin tohum d\u00fc\u011f\u00fcmlerine do\u011fru \u015fekilde ba\u011flanabildi\u011finden emin olun.<br \/>\n*   <strong>Performans D\u00fc\u015f\u00fc\u015f\u00fc:<\/strong><br \/>\n    *   <strong>Sistem kaynaklar\u0131:<\/strong> CPU, RAM ve disk G\/\u00c7 kullan\u0131m\u0131n\u0131 izleyin. Kaynak darbo\u011fazlar\u0131 olabilir.<br \/>\n    *   <strong>Cassandra g\u00fcnl\u00fckleri:<\/strong> Uzun \u00e7\u00f6p toplama duraklamalar\u0131 (GC pauses) veya okuma\/yazma gecikmeleri olup olmad\u0131\u011f\u0131n\u0131 kontrol edin.<br \/>\n    *   <strong>Veri modeli:<\/strong> Sorgular\u0131n\u0131z\u0131n b\u00f6l\u00fcm anahtar\u0131n\u0131 do\u011fru kullan\u0131p kullanmad\u0131\u011f\u0131n\u0131 kontrol edin. K\u00f6t\u00fc veri modeli, k\u00fcme genelinde dengesiz y\u00fck da\u011f\u0131l\u0131m\u0131na yol a\u00e7abilir.<br \/>\n    *   <strong><code>nodetool cfstats<\/code> veya <code>nodetool tpstats<\/code>:<\/strong> Tablo istatistiklerini ve i\u015f par\u00e7ac\u0131\u011f\u0131 havuzu istatistiklerini inceleyerek darbo\u011fazlar\u0131 belirleyin.<br \/>\n*   <strong>Veri Tutars\u0131zl\u0131klar\u0131:<\/strong><br \/>\n    *   <code>nodetool repair<\/code> i\u015flemini d\u00fczenli olarak \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zdan emin olun.<br \/>\n    *   <code>replication_factor<\/code> ve <code>consistency_level<\/code> ayarlar\u0131n\u0131z\u0131n uygulaman\u0131z\u0131n gereksinimlerini kar\u015f\u0131lad\u0131\u011f\u0131n\u0131 kontrol edin.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, Ubuntu 22.04 \u00fczerinde Apache Cassandra&#8217;y\u0131 kurma ve \u00e7ok d\u00fc\u011f\u00fcml\u00fc bir k\u00fcme olarak yap\u0131land\u0131rma s\u00fcrecini ayr\u0131nt\u0131l\u0131 olarak inceledik. Cassandra&#8217;n\u0131n da\u011f\u0131t\u0131k mimarisi, y\u00fcksek \u00f6l\u00e7eklenebilirlik ve hataya dayan\u0131kl\u0131l\u0131k \u00f6zellikleri, onu b\u00fcy\u00fck veri ve y\u00fcksek kullan\u0131labilirlik gerektiren uygulamalar i\u00e7in ideal bir se\u00e7im haline getirmektedir.<\/p>\n<p>Ba\u015far\u0131l\u0131 bir Cassandra k\u00fcmesi kurulumu, do\u011fru \u00f6n gereksinimlerin kar\u015f\u0131lanmas\u0131, dikkatli yap\u0131land\u0131rma ve d\u00fczenli bak\u0131m ile m\u00fcmk\u00fcnd\u00fcr. <code>cassandra.yaml<\/code> dosyas\u0131ndaki temel parametreleri anlamak, <code>nodetool<\/code> gibi y\u00f6netim ara\u00e7lar\u0131n\u0131 etkin bir \u015fekilde kullanmak ve en iyi uygulama \u00f6nerilerine uymak, k\u00fcmenizin uzun vadeli sa\u011fl\u0131\u011f\u0131 ve performans\u0131 i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<p>Art\u0131k temel bir Cassandra k\u00fcmesine sahip oldu\u011funuza g\u00f6re, veri modellemesi konusunda daha derinlemesine bilgi edinmek, farkl\u0131 \u00e7o\u011faltma stratejileri ve tutarl\u0131l\u0131k seviyelerini denemek ve k\u00fcmenizin performans\u0131n\u0131 optimize etmek i\u00e7in daha fazla ke\u015fif yapmaya haz\u0131rs\u0131n\u0131z demektir.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Cassandra Kurulumu ve Ubuntu 22.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc Bir K\u00fcme \u00c7al\u0131\u015ft\u0131rma\nDa\u011f\u0131t\u0131k sistemlerin ve b\u00fcy\u00fck veri \u00e7\u00f6z\u00fcmlerinin y\u00fcksel","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-37208","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Cassandra Kurulumu ve Ubuntu 22.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc Bir K\u00fcme \u00c7al\u0131\u015ft\u0131rma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cassandra Kurulumu ve Ubuntu 22.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc Bir K\u00fcme \u00c7al\u0131\u015ft\u0131rma\" \/>\n<meta property=\"og:description\" content=\"Cassandra Kurulumu ve Ubuntu 22.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc Bir K\u00fcme \u00c7al\u0131\u015ft\u0131rma Da\u011f\u0131t\u0131k sistemlerin ve b\u00fcy\u00fck veri \u00e7\u00f6z\u00fcmlerinin y\u00fcksel\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-28T19:41:02+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"22 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Cassandra Kurulumu ve Ubuntu 22.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc Bir K\u00fcme \u00c7al\u0131\u015ft\u0131rma\",\"datePublished\":\"2025-12-28T19:41:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/\"},\"wordCount\":3549,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/\",\"name\":\"Cassandra Kurulumu ve Ubuntu 22.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc Bir K\u00fcme \u00c7al\u0131\u015ft\u0131rma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-28T19:41:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cassandra Kurulumu ve Ubuntu 22.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc Bir K\u00fcme \u00c7al\u0131\u015ft\u0131rma\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Cassandra Kurulumu ve Ubuntu 22.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc Bir K\u00fcme \u00c7al\u0131\u015ft\u0131rma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/","og_locale":"tr_TR","og_type":"article","og_title":"Cassandra Kurulumu ve Ubuntu 22.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc Bir K\u00fcme \u00c7al\u0131\u015ft\u0131rma","og_description":"Cassandra Kurulumu ve Ubuntu 22.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc Bir K\u00fcme \u00c7al\u0131\u015ft\u0131rma Da\u011f\u0131t\u0131k sistemlerin ve b\u00fcy\u00fck veri \u00e7\u00f6z\u00fcmlerinin y\u00fcksel","og_url":"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-28T19:41:02+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"22 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Cassandra Kurulumu ve Ubuntu 22.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc Bir K\u00fcme \u00c7al\u0131\u015ft\u0131rma","datePublished":"2025-12-28T19:41:02+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/"},"wordCount":3549,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/","url":"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/","name":"Cassandra Kurulumu ve Ubuntu 22.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc Bir K\u00fcme \u00c7al\u0131\u015ft\u0131rma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-28T19:41:02+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/cassandra-kurulumu-ve-ubuntu-22-04-uzerinde-cok-dugumlu-bir-kume-calistirma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Cassandra Kurulumu ve Ubuntu 22.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc Bir K\u00fcme \u00c7al\u0131\u015ft\u0131rma"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37208","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=37208"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37208\/revisions"}],"predecessor-version":[{"id":37209,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37208\/revisions\/37209"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37208"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37208"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37208"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}