{"id":35360,"date":"2025-11-28T20:40:51","date_gmt":"2025-11-28T17:40:51","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=35360"},"modified":"2025-11-28T20:40:51","modified_gmt":"2025-11-28T17:40:51","slug":"ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/","title":{"rendered":"Ubuntu 14.04 \u00dczerinde Apache Cassandra ile \u00c7ok D\u00fc\u011f\u00fcml\u00fc K\u00fcme Veritaban\u0131 Kurulumu ve Y\u00f6netimi"},"content":{"rendered":"<p><body><\/p>\n<h2>Ubuntu 14.04 \u00dczerinde Apache Cassandra ile \u00c7ok D\u00fc\u011f\u00fcml\u00fc K\u00fcme Veritaban\u0131 Kurulumu ve Y\u00f6netimi<\/h2>\n<p>Apache Cassandra, y\u00fcksek \u00f6l\u00e7eklenebilirlik, y\u00fcksek eri\u015filebilirlik ve hata tolerans\u0131 sunan, a\u00e7\u0131k kaynakl\u0131, da\u011f\u0131t\u0131k bir NoSQL veritaban\u0131d\u0131r. B\u00fcy\u00fck veri k\u00fcmelerini birden fazla sunucuya yayarak, tek bir hata noktas\u0131ndan etkilenmeden s\u00fcrekli \u00e7al\u0131\u015fma yetene\u011fiyle \u00f6ne \u00e7\u0131kar. Bu makalede, \u00f6zellikle Ubuntu 14.04 i\u015fletim sistemi \u00fczerinde \u00e7ok d\u00fc\u011f\u00fcml\u00fc bir Cassandra k\u00fcmesinin nas\u0131l kurulaca\u011f\u0131n\u0131, yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ve temel d\u00fczeyde nas\u0131l y\u00f6netilece\u011fini ayr\u0131nt\u0131l\u0131 olarak inceleyece\u011fiz. Ubuntu 14.04 art\u0131k eski bir s\u00fcr\u00fcm olsa da, mevcut altyap\u0131lar veya belirli gereksinimler nedeniyle hala bu platformu kullanan sistemler bulunabilir. Bu nedenle, bu platforma \u00f6zel ad\u0131mlara odaklanaca\u011f\u0131z.<\/p>\n<h3>Apache Cassandra&#8217;ya Giri\u015f<\/h3>\n<p>Geleneksel ili\u015fkisel veritabanlar\u0131 (RDBMS), belirli \u00f6l\u00e7ek ve performans gereksinimlerinde zorlanmaya ba\u015flad\u0131\u011f\u0131nda, NoSQL veritabanlar\u0131 \u00f6nemli bir alternatif olarak ortaya \u00e7\u0131km\u0131\u015ft\u0131r. Apache Cassandra, \u00f6zellikle Facebook taraf\u0131ndan geli\u015ftirilen ve daha sonra a\u00e7\u0131k kaynak haline getirilen bir NoSQL veritaban\u0131d\u0131r. Temel olarak, Amazon&#8217;un DynamoDB&#8217;si ve Google&#8217;\u0131n BigTable&#8217;\u0131ndan esinlenerek tasarlanm\u0131\u015ft\u0131r.<\/p>\n<p>Cassandra&#8217;n\u0131n en belirgin \u00f6zellikleri \u015funlard\u0131r:<\/p>\n<p>*   <strong>Da\u011f\u0131t\u0131k Mimari:<\/strong> Verileri otomatik olarak birden \u00e7ok d\u00fc\u011f\u00fcme (sunucuya) da\u011f\u0131t\u0131r. Bu, veri kayb\u0131 riskini azalt\u0131r ve sistemin genel performans\u0131n\u0131 art\u0131r\u0131r.<br \/>\n*   <strong>Yatay \u00d6l\u00e7eklenebilirlik:<\/strong> \u0130htiya\u00e7 duyuldu\u011funda k\u00fcmeye yeni d\u00fc\u011f\u00fcmler ekleyerek kapasiteyi kolayca art\u0131rabilirsiniz. Performans, eklenen d\u00fc\u011f\u00fcmlerle orant\u0131l\u0131 olarak artar.<br \/>\n*   <strong>Y\u00fcksek Eri\u015filebilirlik ve Hata Tolerans\u0131:<\/strong> Bir d\u00fc\u011f\u00fcm\u00fcn \u00e7evrimd\u0131\u015f\u0131 olmas\u0131 durumunda bile, veriler di\u011fer d\u00fc\u011f\u00fcmler \u00fczerinde kopyaland\u0131\u011f\u0131 i\u00e7in hizmet kesintiye u\u011framaz.<br \/>\n*   <strong>Esnek Veri Modeli:<\/strong> \u015eemas\u0131z veya esnek \u015femal\u0131 bir yap\u0131ya sahiptir. Bu, h\u0131zl\u0131 geli\u015ftirme ve de\u011fi\u015fen veri gereksinimlerine kolay adaptasyon sa\u011flar.<br \/>\n*   <strong>Ayarlanabilir Tutarl\u0131l\u0131k:<\/strong> Uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na g\u00f6re veri tutarl\u0131l\u0131\u011f\u0131 seviyesini ayarlayabilirsiniz. Bu, performans ve tutarl\u0131l\u0131k aras\u0131nda bir denge kurman\u0131za olanak tan\u0131r.<br \/>\n*   <strong>Master-Less (Lidersiz) Mimari:<\/strong> K\u00fcmede &#8220;ana&#8221; bir d\u00fc\u011f\u00fcm yoktur. T\u00fcm d\u00fc\u011f\u00fcmler e\u015fittir ve bu da tek bir hata noktas\u0131n\u0131 ortadan kald\u0131r\u0131r.<\/p>\n<p>Cassandra genellikle b\u00fcy\u00fck \u00f6l\u00e7ekli, y\u00fcksek yazma yo\u011funluklu uygulamalar, zaman serisi verileri, IoT verileri, mesajla\u015fma sistemleri ve ki\u015fiselle\u015ftirme motorlar\u0131 gibi senaryolarda tercih edilir.<\/p>\n<h3>\u00d6n Ko\u015fullar ve Sistem Haz\u0131rl\u0131\u011f\u0131<\/h3>\n<p>Cassandra k\u00fcmesini kurmaya ba\u015flamadan \u00f6nce, her d\u00fc\u011f\u00fcm i\u00e7in belirli \u00f6n ko\u015fullar\u0131n yerine getirilmesi ve sistemin do\u011fru \u015fekilde haz\u0131rlanmas\u0131 gerekmektedir.<\/p>\n<h4>Ubuntu 14.04 \u0130\u015fletim Sistemi<\/h4>\n<p>Bu makale, \u00f6zellikle Ubuntu 14.04 LTS (Trusty Tahr) \u00fczerinde kurulum ad\u0131mlar\u0131n\u0131 ele almaktad\u0131r. Unutulmamal\u0131d\u0131r ki, Ubuntu 14.04 art\u0131k desteklenmeyen eski bir s\u00fcr\u00fcmd\u00fcr. Yeni projeler i\u00e7in daha g\u00fcncel Ubuntu veya di\u011fer Linux da\u011f\u0131t\u0131mlar\u0131 tercih edilmelidir. Ancak, mevcut altyap\u0131lar\u0131 y\u00f6neten veya belirli uyumluluk gereksinimleri olan kullan\u0131c\u0131lar i\u00e7in bu rehber faydal\u0131 olacakt\u0131r.<\/p>\n<h4>Java Geli\u015ftirme Kiti (JDK)<\/h4>\n<p>Cassandra, Java \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in her d\u00fc\u011f\u00fcmde uyumlu bir JDK s\u00fcr\u00fcm\u00fcn\u00fcn kurulu olmas\u0131 \u015fartt\u0131r. Cassandra 3.x serisi i\u00e7in OpenJDK 8 veya Oracle JDK 8 \u00f6nerilir. Ubuntu 14.04 \u00fczerinde OpenJDK 7 veya 8 de kullan\u0131labilir.<\/p>\n<h4>Sistem Kaynaklar\u0131<\/h4>\n<p>Her Cassandra d\u00fc\u011f\u00fcm\u00fc i\u00e7in \u00f6nerilen minimum kaynaklar \u015funlard\u0131r:<\/p>\n<p>*   <strong>RAM:<\/strong> En az 8 GB, tercihen 16 GB veya daha fazla.<br \/>\n*   <strong>CPU:<\/strong> En az 2 \u00e7ekirdekli, tercihen 4 veya daha fazla \u00e7ekirdek.<br \/>\n*   <strong>Disk:<\/strong> Veriler i\u00e7in h\u0131zl\u0131 SSD&#8217;ler \u015fiddetle tavsiye edilir. \u0130\u015fletim sistemi ve Cassandra&#8217;n\u0131n kendisi i\u00e7in ayr\u0131 diskler kullanmak performans a\u00e7\u0131s\u0131ndan faydal\u0131 olabilir. Veri dizinleri i\u00e7in yeterli depolama alan\u0131 sa\u011flanmal\u0131d\u0131r.<\/p>\n<h4>A\u011f Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>K\u00fcmedeki her d\u00fc\u011f\u00fcm i\u00e7in statik bir IP adresi atanmal\u0131d\u0131r. Dinamik IP adresleri, k\u00fcme stabilitesi ve y\u00f6netimi a\u00e7\u0131s\u0131ndan sorunlara yol a\u00e7abilir. D\u00fc\u011f\u00fcmler aras\u0131 ileti\u015fim i\u00e7in g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131n do\u011fru \u015fekilde yap\u0131land\u0131r\u0131lmas\u0131 gerekir. Cassandra&#8217;n\u0131n kulland\u0131\u011f\u0131 temel portlar \u015funlard\u0131r:<\/p>\n<p>*   <strong>7000\/tcp:<\/strong> D\u00fc\u011f\u00fcmler aras\u0131 ileti\u015fim (inter-node communication)<br \/>\n*   <strong>7001\/tcp:<\/strong> SSL ile d\u00fc\u011f\u00fcmler aras\u0131 ileti\u015fim<br \/>\n*   <strong>7199\/tcp:<\/strong> JMX ile izleme<br \/>\n*   <strong>9042\/tcp:<\/strong> CQL istemci ba\u011flant\u0131lar\u0131 (native protocol)<br \/>\n*   <strong>9160\/tcp:<\/strong> Thrift istemci ba\u011flant\u0131lar\u0131 (eski protokol, genellikle kullan\u0131lmaz)<\/p>\n<h4>SSH Eri\u015fimi<\/h4>\n<p>K\u00fcmedeki t\u00fcm d\u00fc\u011f\u00fcmlere SSH \u00fczerinden eri\u015fimin sa\u011flanmas\u0131, kurulum ve y\u00f6netim s\u00fcre\u00e7lerini kolayla\u015ft\u0131racakt\u0131r. Anahtar tabanl\u0131 kimlik do\u011frulama kullan\u0131lmas\u0131 g\u00fcvenlik a\u00e7\u0131s\u0131ndan daha iyidir.<\/p>\n<h3>Java Kurulumu (Ubuntu 14.04 \u00dczerinde)<\/h3>\n<p>Cassandra&#8217;y\u0131 kurmadan \u00f6nce, gerekli Java s\u00fcr\u00fcm\u00fcn\u00fc her d\u00fc\u011f\u00fcme kurmal\u0131y\u0131z. Bu \u00f6rnekte OpenJDK 8&#8217;i kuraca\u011f\u0131z, \u00e7\u00fcnk\u00fc genellikle daha kolay kurulur ve lisans k\u0131s\u0131tlamalar\u0131 yoktur.<\/p>\n<p>1.  <strong>Sistem Paket Listesini G\u00fcncelleme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo apt-get update\n    sudo apt-get upgrade -y<\/code><\/pre>\n<p>2.  <strong>OpenJDK 8 Kurulumu:<\/strong><br \/>\n    Ubuntu 14.04&#8217;\u00fcn varsay\u0131lan depolar\u0131nda OpenJDK 8 bulunmayabilir. Bu nedenle, bir PPA (Personal Package Archive) eklememiz gerekebilir.<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install python-software-properties -y\n    sudo add-apt-repository ppa:openjdk-r\/ppa -y\n    sudo apt-get update\n    sudo apt-get install openjdk-8-jdk -y<\/code><\/pre>\n<p>    Kurulum s\u0131ras\u0131nda sizden onay istenebilir, <code>Y<\/code> tu\u015funa bas\u0131p Enter&#8217;a bas\u0131n.<\/p>\n<p>3.  <strong>Varsay\u0131lan Java S\u00fcr\u00fcm\u00fcn\u00fc Ayarlama (Gerekirse):<\/strong><br \/>\n    E\u011fer sisteminizde birden fazla Java s\u00fcr\u00fcm\u00fc kuruluysa, OpenJDK 8&#8217;i varsay\u0131lan olarak ayarlaman\u0131z gerekebilir:<\/p>\n<pre><code class=\"language-bash\">sudo update-alternatives --config java\n    sudo update-alternatives --config javac<\/code><\/pre>\n<p>    Listeden OpenJDK 8&#8217;e kar\u015f\u0131l\u0131k gelen numaray\u0131 se\u00e7in.<\/p>\n<p>4.  <strong><code>JAVA_HOME<\/code> Ortam De\u011fi\u015fkenini Ayarlama:<\/strong><br \/>\n    Cassandra&#8217;n\u0131n Java&#8217;y\u0131 bulabilmesi i\u00e7in <code>JAVA_HOME<\/code> ortam de\u011fi\u015fkenini ayarlamak iyi bir uygulamad\u0131r. <code>\/etc\/environment<\/code> dosyas\u0131na ekleyebiliriz:<\/p>\n<pre><code class=\"language-bash\">echo \"JAVA_HOME=\\\"\/usr\/lib\/jvm\/java-8-openjdk-amd64\\\"\" | sudo tee -a \/etc\/environment\n    source \/etc\/environment<\/code><\/pre>\n<p>    Bu yolu, <code>update-alternatives --config java<\/code> komutunun \u00e7\u0131kt\u0131s\u0131ndaki Java 8 yoluna g\u00f6re do\u011frulay\u0131n.<\/p>\n<p>5.  <strong>Java S\u00fcr\u00fcm\u00fcn\u00fc Do\u011frulama:<\/strong><\/p>\n<pre><code class=\"language-bash\">java -version<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131da &#8220;openjdk version &#8220;1.8.0_&#8230;&#8221; veya &#8220;java version &#8220;1.8.0_&#8230;&#8221; gibi bir \u015fey g\u00f6rmelisiniz.<\/p>\n<h3>Apache Cassandra Kurulumu<\/h3>\n<p>Java kurulduktan sonra, her d\u00fc\u011f\u00fcme Apache Cassandra&#8217;y\u0131 kurabiliriz.<\/p>\n<p>1.  <strong>Cassandra Depolar\u0131n\u0131 Ekleme:<\/strong><br \/>\n    Cassandra&#8217;n\u0131n resmi depolar\u0131n\u0131 sisteminize eklemeniz gerekir. Bu \u00f6rnekte Cassandra 3.11 s\u00fcr\u00fcm\u00fcn\u00fc hedefliyoruz.<\/p>\n<pre><code class=\"language-bash\">echo \"deb http:\/\/www.apache.org\/dist\/cassandra\/debian 311x main\" | sudo tee -a \/etc\/apt\/sources.list.d\/cassandra.list<\/code><\/pre>\n<p>2.  <strong>GPG Anahtar\u0131n\u0131 Ekleme:<\/strong><br \/>\n    Deponun g\u00fcvenilirli\u011fini do\u011frulamak i\u00e7in Apache&#8217;nin GPG anahtar\u0131n\u0131 eklemeliyiz:<\/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>3.  <strong>Sistem Paket Listesini G\u00fcncelleme:<\/strong><br \/>\n    Yeni depolar\u0131 tan\u0131mak i\u00e7in paket listesini tekrar g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get update<\/code><\/pre>\n<p>4.  <strong>Cassandra&#8217;y\u0131 Kurma:<\/strong><br \/>\n    \u015eimdi Cassandra paketini kurabiliriz:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install cassandra -y<\/code><\/pre>\n<p>5.  <strong>Cassandra Servis Durumunu Kontrol Etme:<\/strong><br \/>\n    Kurulumdan sonra Cassandra servisi otomatik olarak ba\u015flamal\u0131d\u0131r. Durumunu kontrol edelim:<\/p>\n<pre><code class=\"language-bash\">sudo service cassandra status<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131da &#8220;Cassandra is running&#8221; veya benzeri bir mesaj g\u00f6rmelisiniz. E\u011fer \u00e7al\u0131\u015fm\u0131yorsa, <code>sudo service cassandra start<\/code> komutuyla ba\u015flat\u0131n.<\/p>\n<h3>\u00c7ok D\u00fc\u011f\u00fcml\u00fc K\u00fcme Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Cassandra her d\u00fc\u011f\u00fcme kurulduktan sonra, her d\u00fc\u011f\u00fcm\u00fc k\u00fcmenin bir par\u00e7as\u0131 olacak \u015fekilde yap\u0131land\u0131rmam\u0131z gerekir. Yap\u0131land\u0131rma dosyas\u0131 genellikle <code>\/etc\/cassandra\/cassandra.yaml<\/code> konumundad\u0131r. Bu dosya \u00fczerinde yap\u0131lan de\u011fi\u015fiklikler Cassandra servisi yeniden ba\u015flat\u0131lmadan etkin olmaz.<\/p>\n<p>Her d\u00fc\u011f\u00fcm i\u00e7in a\u015fa\u011f\u0131daki temel yap\u0131land\u0131rma parametrelerini d\u00fczenleyece\u011fiz. <strong>Bu ad\u0131mlar\u0131 k\u00fcmedeki her d\u00fc\u011f\u00fcm i\u00e7in tekrarlay\u0131n.<\/strong><\/p>\n<p>1.  <strong><code>cassandra.yaml<\/code> Dosyas\u0131n\u0131 D\u00fczenleme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/cassandra\/cassandra.yaml<\/code><\/pre>\n<p>2.  <strong>Temel Yap\u0131land\u0131rma Parametreleri:<\/strong><\/p>\n<p>    *   <strong><code>cluster_name<\/code>:<\/strong> K\u00fcmenizin ad\u0131. T\u00fcm d\u00fc\u011f\u00fcmlerde ayn\u0131 olmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-yaml\">cluster_name: 'MyCassandraCluster'<\/code><\/pre>\n<p>    *   <strong><code>num_tokens<\/code>:<\/strong> Sanal d\u00fc\u011f\u00fcm say\u0131s\u0131. Varsay\u0131lan 256 genellikle iyi bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r.<\/p>\n<pre><code class=\"language-yaml\">num_tokens: 256<\/code><\/pre>\n<p>    *   <strong><code>listen_address<\/code>:<\/strong> D\u00fc\u011f\u00fcm\u00fcn di\u011fer d\u00fc\u011f\u00fcmlerle ileti\u015fim kurmak i\u00e7in kullanaca\u011f\u0131 IP adresi. Her d\u00fc\u011f\u00fcm i\u00e7in kendi IP adresini girin.<\/p>\n<pre><code class=\"language-yaml\">listen_address: 192.168.1.101 # Bu d\u00fc\u011f\u00fcm\u00fcn IP adresi<\/code><\/pre>\n<p>        E\u011fer <code>listen_address<\/code> yorum sat\u0131r\u0131 olarak kal\u0131rsa, Cassandra otomatik olarak sistemin varsay\u0131lan IP adresini kullanmaya \u00e7al\u0131\u015f\u0131r. Ancak a\u00e7\u0131k\u00e7a belirtmek daha g\u00fcvenlidir.<\/p>\n<p>    *   <strong><code>rpc_address<\/code>:<\/strong> \u0130stemcilerin bu d\u00fc\u011f\u00fcme ba\u011flanmak i\u00e7in kullanaca\u011f\u0131 IP adresi. Genellikle <code>listen_address<\/code> ile ayn\u0131d\u0131r.<\/p>\n<pre><code class=\"language-yaml\">rpc_address: 192.168.1.101 # Bu d\u00fc\u011f\u00fcm\u00fcn IP adresi<\/code><\/pre>\n<p>        E\u011fer <code>rpc_address<\/code> yorum sat\u0131r\u0131 olarak kal\u0131rsa, Cassandra otomatik olarak <code>listen_address<\/code> de\u011ferini kullan\u0131r.<\/p>\n<p>    *   <strong><code>seed_provider<\/code> \/ <code>seeds<\/code>:<\/strong> K\u00fcmedeki ilk d\u00fc\u011f\u00fcmlerin (\u00e7ekirdek d\u00fc\u011f\u00fcmler) IP adresleri. T\u00fcm d\u00fc\u011f\u00fcmler, k\u00fcmedeki di\u011fer d\u00fc\u011f\u00fcmleri ke\u015ffetmek i\u00e7in bu seed d\u00fc\u011f\u00fcmlerini kullan\u0131r. Genellikle k\u00fcmedeki 2-3 d\u00fc\u011f\u00fcm seed olarak se\u00e7ilir. <strong>T\u00fcm d\u00fc\u011f\u00fcmlerin <code>seeds<\/code> listesi ayn\u0131 olmal\u0131d\u0131r.<\/strong><br \/>\n        \u00d6rne\u011fin, <code>192.168.1.101<\/code> ve <code>192.168.1.102<\/code> seed d\u00fc\u011f\u00fcmleri ise:<\/p>\n<pre><code class=\"language-yaml\">- class_name: org.apache.cassandra.locator.SimpleSeedProvider\n          parameters:\n              - seeds: \"192.168.1.101,192.168.1.102\"<\/code><\/pre>\n<p>        Kendi IP adresinizi de seed listesine ekleyebilirsiniz.<\/p>\n<p>    *   <strong><code>data_file_directories<\/code>, <code>commitlog_directory<\/code>, <code>saved_caches_directory<\/code>:<\/strong> Cassandra&#8217;n\u0131n verileri, commit loglar\u0131 ve \u00f6nbellekleri depolayaca\u011f\u0131 dizinler. Performans i\u00e7in ayr\u0131 disklerde olmalar\u0131 \u00f6nerilir. 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. \u0130htiya\u00e7lar\u0131n\u0131za g\u00f6re de\u011fi\u015ftirebilirsiniz.<\/p>\n<p>    *   <strong><code>endpoint_snitch<\/code>:<\/strong> D\u00fc\u011f\u00fcmlerin fiziksel konumlar\u0131 hakk\u0131nda bilgi sa\u011flayan bir mekanizma. Bu, okuma ve yazma i\u015flemlerini optimize etmeye ve hata tolerans\u0131n\u0131 art\u0131rmaya yard\u0131mc\u0131 olur.<br \/>\n        *   <code>SimpleSnitch<\/code>: En basit olan\u0131d\u0131r, konum fark\u0131ndal\u0131\u011f\u0131 yoktur.<br \/>\n        *   <code>RackInferringSnitch<\/code>: IP adreslerinden rack ve veri merkezi bilgilerini tahmin etmeye \u00e7al\u0131\u015f\u0131r. K\u00fc\u00e7\u00fck k\u00fcmeler i\u00e7in uygun olabilir.<br \/>\n        *   <code>GossipingPropertyFileSnitch<\/code>: En esnek olan\u0131d\u0131r. <code>\/etc\/cassandra\/cassandra-rackdc.properties<\/code> dosyas\u0131ndan veri merkezi ve rack bilgilerini okur. B\u00fcy\u00fck ve karma\u015f\u0131k k\u00fcmeler i\u00e7in \u00f6nerilir.<\/p>\n<p>        <code>GossipingPropertyFileSnitch<\/code> kullan\u0131yorsan\u0131z, <code>\/etc\/cassandra\/cassandra-rackdc.properties<\/code> dosyas\u0131n\u0131 da d\u00fczenlemeniz gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/cassandra\/cassandra-rackdc.properties<\/code><\/pre>\n<p>        Her d\u00fc\u011f\u00fcm i\u00e7in kendi <code>dc<\/code> (data center) ve <code>rack<\/code> de\u011ferini belirtin:<\/p>\n<pre><code class=\"language-properties\">dc=datacenter1\n        rack=rack1<\/code><\/pre>\n<p>        Farkl\u0131 d\u00fc\u011f\u00fcmler i\u00e7in farkl\u0131 <code>rack<\/code> de\u011ferleri atayarak veri da\u011f\u0131t\u0131m\u0131n\u0131 optimize edebilirsiniz.<\/p>\n<p>    *   <strong><code>authenticator<\/code> ve <code>authorizer<\/code>:<\/strong> G\u00fcvenlik ayarlar\u0131. Varsay\u0131lan olarak <code>AllowAllAuthenticator<\/code> ve <code>AllowAllAuthorizer<\/code> kullan\u0131l\u0131r, bu da herhangi bir kimlik do\u011frulama veya yetkilendirme olmad\u0131\u011f\u0131 anlam\u0131na gelir. \u00dcretim ortamlar\u0131nda mutlaka <code>PasswordAuthenticator<\/code> ve uygun bir yetkilendirici kullanmal\u0131s\u0131n\u0131z.<\/p>\n<p>3.  <strong>G\u00fcvenlik Duvar\u0131 Ayarlar\u0131:<\/strong><br \/>\n    Her d\u00fc\u011f\u00fcmde, Cassandra&#8217;n\u0131n ihtiya\u00e7 duydu\u011fu portlar\u0131n a\u00e7\u0131ld\u0131\u011f\u0131ndan emin olun. Ubuntu 14.04&#8217;te <code>ufw<\/code> (Uncomplicated Firewall) kullanabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 7000\/tcp # Inter-node communication\n    sudo ufw allow 7001\/tcp # SSL Inter-node communication (if using SSL)\n    sudo ufw allow 7199\/tcp # JMX\n    sudo ufw allow 9042\/tcp # CQL native protocol\n    sudo ufw allow 9160\/tcp # Thrift (if needed)\n    sudo ufw enable\n    sudo ufw status<\/code><\/pre>\n<p>4.  <strong>Cassandra Servisini Yeniden Ba\u015flatma:<\/strong><br \/>\n    Yap\u0131land\u0131rma de\u011fi\u015fikliklerinin etkili olmas\u0131 i\u00e7in her d\u00fc\u011f\u00fcmde Cassandra servisini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo service cassandra restart<\/code><\/pre>\n<h3>K\u00fcmenin Ba\u015flat\u0131lmas\u0131 ve Do\u011frulanmas\u0131<\/h3>\n<p>T\u00fcm d\u00fc\u011f\u00fcmler yap\u0131land\u0131r\u0131l\u0131p yeniden ba\u015flat\u0131ld\u0131ktan sonra, k\u00fcmenin do\u011fru \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamam\u0131z gerekir.<\/p>\n<p>1.  <strong>\u0130lk Seed D\u00fc\u011f\u00fcm\u00fcn\u00fc Ba\u015flatma:<\/strong><br \/>\n    E\u011fer t\u00fcm d\u00fc\u011f\u00fcmleri ayn\u0131 anda yeniden ba\u015flatt\u0131ysan\u0131z sorun olmaz. Ancak, k\u00fcme ilk kez kuruluyorsa, \u00f6nce <code>seeds<\/code> listesindeki d\u00fc\u011f\u00fcmlerden birini veya birka\u00e7\u0131n\u0131 ba\u015flatman\u0131z ve onlar\u0131n tamamen \u00e7evrimi\u00e7i olmas\u0131n\u0131 beklemeniz \u00f6nerilir.<\/p>\n<p>2.  <strong>Di\u011fer D\u00fc\u011f\u00fcmleri Ba\u015flatma:<\/strong><br \/>\n    Seed d\u00fc\u011f\u00fcmleri \u00e7al\u0131\u015ft\u0131ktan sonra, di\u011fer d\u00fc\u011f\u00fcmleri ba\u015flat\u0131n. Her d\u00fc\u011f\u00fcm, seed d\u00fc\u011f\u00fcmleri arac\u0131l\u0131\u011f\u0131yla k\u00fcmedeki di\u011fer d\u00fc\u011f\u00fcmleri ke\u015ffedecek ve kat\u0131lacakt\u0131r.<\/p>\n<p>3.  <strong>K\u00fcme Durumunu Kontrol Etme (<code>nodetool status<\/code>):<\/strong><br \/>\n    Herhangi bir d\u00fc\u011f\u00fcmde <code>nodetool status<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak k\u00fcmenin genel durumunu kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">nodetool status<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131 a\u015fa\u011f\u0131daki gibi olacakt\u0131r:<\/p>\n<pre><code class=\"language-\">Datacenter: datacenter1\n    =======================\n    Status=Up\/Down\n    |\/ State=Normal\/Leaving\/Joining\/Moving\n    --  Address        Load       Tokens  Owns (effective) Host ID                               Rack\n    UN  192.168.1.101  100 KB     256     100.0%           abcdef01-....-....-....-............  rack1\n    UN  192.168.1.102  100 KB     256     100.0%           abcdef02-....-....-....-............  rack1\n    UN  192.168.1.103  100 KB     256     100.0%           abcdef03-....-....-....-............  rack2<\/code><\/pre>\n<p>    *   <strong><code>Status<\/code> s\u00fctunu:<\/strong> <code>U<\/code> (Up) veya <code>D<\/code> (Down) g\u00f6sterir.<br \/>\n    *   <strong><code>State<\/code> s\u00fctunu:<\/strong> <code>N<\/code> (Normal) en yayg\u0131n olan\u0131d\u0131r. <code>J<\/code> (Joining), <code>L<\/code> (Leaving) veya <code>M<\/code> (Moving) gibi durumlar da g\u00f6rebilirsiniz.<br \/>\n    *   T\u00fcm d\u00fc\u011f\u00fcmlerin <code>UN<\/code> (Up\/Normal) durumunda olmas\u0131, k\u00fcmenizin sa\u011fl\u0131kl\u0131 bir \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<br \/>\n    *   <code>Owns<\/code> s\u00fctunu, o d\u00fc\u011f\u00fcm\u00fcn k\u00fcmedeki veri sorumlulu\u011fu y\u00fczdesini g\u00f6sterir. Yeni bir k\u00fcmede veya e\u015fit da\u011f\u0131l\u0131mda bu de\u011fer yakla\u015f\u0131k olarak <code>100% \/ d\u00fc\u011f\u00fcm_say\u0131s\u0131<\/code> olmal\u0131d\u0131r.<\/p>\n<h3>Veri Modellemeyi Anlamak<\/h3>\n<p>Cassandra, ili\u015fkisel veritabanlar\u0131ndan farkl\u0131 bir veri modelleme yakla\u015f\u0131m\u0131 gerektirir. Cassandra&#8217;da SQL yerine CQL (Cassandra Query Language) kullan\u0131l\u0131r, ancak sorgu yap\u0131s\u0131 RDBMS&#8217;ten farkl\u0131d\u0131r.<\/p>\n<p>*   <strong>KeySpace (Anahtar Alan\u0131):<\/strong> \u0130li\u015fkisel veritabanlar\u0131ndaki veritaban\u0131na benzer. Tablolar\u0131n ve di\u011fer nesnelerin mant\u0131ksal bir grupland\u0131rmas\u0131d\u0131r. \u00c7o\u011faltma fakt\u00f6r\u00fc (Replication Factor) ve \u00e7o\u011faltma stratejisi (Replication Strategy) KeySpace seviyesinde tan\u0131mlan\u0131r.<br \/>\n*   <strong>Table (Tablo):<\/strong> \u0130li\u015fkisel tablolara benzer, ancak yap\u0131lar\u0131 ve indeksleme kurallar\u0131 farkl\u0131d\u0131r.<br \/>\n*   <strong>Primary Key (Birincil Anahtar):<\/strong> Cassandra&#8217;da birincil anahtar iki ana b\u00f6l\u00fcmden olu\u015fur:<br \/>\n    *   <strong>Partition Key (B\u00f6l\u00fcmleme Anahtar\u0131):<\/strong> Verilerin k\u00fcme genelinde nas\u0131l da\u011f\u0131t\u0131laca\u011f\u0131n\u0131 belirler. Ayn\u0131 b\u00f6l\u00fcmleme anahtar\u0131na sahip t\u00fcm veriler ayn\u0131 d\u00fc\u011f\u00fcmde veya ayn\u0131 d\u00fc\u011f\u00fcm grubunda depolan\u0131r. \u0130yi bir b\u00f6l\u00fcmleme anahtar\u0131, verilerin k\u00fcme genelinde e\u015fit olarak da\u011f\u0131lmas\u0131n\u0131 sa\u011flar.<br \/>\n    *   <strong>Clustering Key (K\u00fcmeleme Anahtar\u0131):<\/strong> Ayn\u0131 b\u00f6l\u00fcm i\u00e7indeki verilerin nas\u0131l s\u0131ralanaca\u011f\u0131n\u0131 belirler. Sorgularda aral\u0131k taramalar\u0131 i\u00e7in kullan\u0131l\u0131r.<br \/>\n*   <strong>Denormalizasyon:<\/strong> Cassandra&#8217;da genellikle sorgu odakl\u0131 veri modellemesi yap\u0131l\u0131r. Bu, ayn\u0131 verinin farkl\u0131 tablolarda farkl\u0131 \u015fekillerde depolanmas\u0131 anlam\u0131na gelebilir (denormalizasyon). Ama\u00e7, her sorgu i\u00e7in tek bir tabloya ihtiya\u00e7 duymakt\u0131r, bu da okuma performans\u0131n\u0131 art\u0131r\u0131r.<\/p>\n<h3>Temel CQL \u0130\u015flemleri<\/h3>\n<p><code>cqlsh<\/code> arac\u0131, Cassandra k\u00fcmenize ba\u011flanmak ve CQL sorgular\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>1.  <strong><code>cqlsh<\/code> ile Ba\u011flanma:<\/strong><br \/>\n    Herhangi bir Cassandra d\u00fc\u011f\u00fcm\u00fcnden <code>cqlsh<\/code> ile ba\u011flanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">cqlsh 192.168.1.101 # Herhangi bir d\u00fc\u011f\u00fcm\u00fcn IP adresi<\/code><\/pre>\n<p>    E\u011fer ayn\u0131 d\u00fc\u011f\u00fcmde \u00e7al\u0131\u015ft\u0131r\u0131yorsan\u0131z IP adresi belirtmenize gerek kalmaz: <code>cqlsh<\/code>.<\/p>\n<p>2.  <strong>KeySpace Olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-cql\">CREATE KEYSPACE mykeyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3};<\/code><\/pre>\n<p>    *   <code>SimpleStrategy<\/code>: T\u00fcm veri merkezlerinde kopyalar\u0131 da\u011f\u0131t\u0131r. K\u00fc\u00e7\u00fck k\u00fcmeler i\u00e7in uygundur.<br \/>\n    *   <code>NetworkTopologyStrategy<\/code>: Her veri merkezinde belirli say\u0131da kopyay\u0131 da\u011f\u0131t\u0131r. \u00dcretim ortamlar\u0131nda ve \u00e7oklu veri merkezli k\u00fcmelerde \u00f6nerilir.<br \/>\n    *   <code>replication_factor<\/code>: Verinin ka\u00e7 kopyas\u0131n\u0131n tutulaca\u011f\u0131n\u0131 belirtir. K\u00fcmenizdeki d\u00fc\u011f\u00fcm say\u0131s\u0131ndan k\u00fc\u00e7\u00fck veya e\u015fit olmal\u0131d\u0131r.<\/p>\n<p>3.  <strong>KeySpace&#8217;i Kullanma:<\/strong><\/p>\n<pre><code class=\"language-cql\">USE mykeyspace;<\/code><\/pre>\n<p>4.  <strong>Table Olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-cql\">CREATE TABLE users (\n        user_id UUID PRIMARY KEY,\n        first_name text,\n        last_name text,\n        email text,\n        created_at timestamp\n    );<\/code><\/pre>\n<p>    Burada <code>user_id<\/code> hem b\u00f6l\u00fcmleme anahtar\u0131 hem de k\u00fcmeleme anahtar\u0131 olarak tek ba\u015f\u0131na birincil anahtar\u0131 olu\u015fturur.<\/p>\n<p>    Daha karma\u015f\u0131k bir \u00f6rnek (bile\u015fik birincil anahtar):<\/p>\n<pre><code class=\"language-cql\">CREATE TABLE user_posts (\n        user_id UUID,\n        post_id UUID,\n        post_title text,\n        post_content text,\n        created_at timestamp,\n        PRIMARY KEY ((user_id), post_id)\n    );<\/code><\/pre>\n<p>    Bu \u00f6rnekte <code>user_id<\/code> b\u00f6l\u00fcmleme anahtar\u0131d\u0131r, <code>post_id<\/code> ise k\u00fcmeleme anahtar\u0131d\u0131r. Ayn\u0131 <code>user_id<\/code>&#8216;ye sahip t\u00fcm g\u00f6nderiler ayn\u0131 b\u00f6l\u00fcmde saklan\u0131r ve <code>post_id<\/code>&#8216;ye g\u00f6re s\u0131ralan\u0131r.<\/p>\n<p>5.  <strong>Veri Ekleme:<\/strong><\/p>\n<pre><code class=\"language-cql\">INSERT INTO users (user_id, first_name, last_name, email, created_at)\n    VALUES (uuid(), 'John', 'Doe', 'john.doe@example.com', toTimestamp(now()));<\/code><\/pre>\n<p>6.  <strong>Veri Okuma:<\/strong><\/p>\n<pre><code class=\"language-cql\">SELECT * FROM users WHERE user_id = 81b61c94-08f3-4e4b-b0b3-1e7a3a0e1c9e;<\/code><\/pre>\n<p>    <strong>\u00d6nemli:<\/strong> Cassandra&#8217;da <code>WHERE<\/code> ko\u015fulunda mutlaka b\u00f6l\u00fcmleme anahtar\u0131n\u0131 (veya b\u00f6l\u00fcmleme anahtar\u0131n\u0131n bir k\u0131sm\u0131n\u0131) belirtmeniz gerekir. B\u00f6l\u00fcmleme anahtar\u0131 olmadan <code>SELECT<\/code> sorgusu yapmak performans sorunlar\u0131na yol a\u00e7abilir veya yasaklanabilir (<code>ALLOW FILTERING<\/code> kullanmak \u00f6nerilmez).<\/p>\n<p>7.  <strong>Veri G\u00fcncelleme:<\/strong><\/p>\n<pre><code class=\"language-cql\">UPDATE users SET email = 'johndoe@example.com' WHERE user_id = 81b61c94-08f3-4e4b-b0b3-1e7a3a0e1c9e;<\/code><\/pre>\n<p>8.  <strong>Veri Silme:<\/strong><\/p>\n<pre><code class=\"language-cql\">DELETE FROM users WHERE user_id = 81b61c94-08f3-4e4b-b0b3-1e7a3a0e1c9e;<\/code><\/pre>\n<h3>K\u00fcme Y\u00f6netimi ve \u0130zleme<\/h3>\n<p>Cassandra k\u00fcmesini verimli bir \u015fekilde y\u00f6netmek ve izlemek i\u00e7in <code>nodetool<\/code> komutu ve log dosyalar\u0131 kritik \u00f6neme sahiptir.<\/p>\n<h4><code>nodetool<\/code> Komutu<\/h4>\n<p><code>nodetool<\/code>, Cassandra k\u00fcmesindeki d\u00fc\u011f\u00fcmlerin durumunu, performans\u0131n\u0131 ve di\u011fer operasyonel y\u00f6nlerini y\u00f6netmek i\u00e7in kullan\u0131lan bir komut sat\u0131r\u0131 arac\u0131d\u0131r.<\/p>\n<p>*   <strong><code>nodetool status<\/code>:<\/strong> K\u00fcmedeki d\u00fc\u011f\u00fcmlerin genel durumunu g\u00f6sterir (yukar\u0131da a\u00e7\u0131kland\u0131).<br \/>\n*   <strong><code>nodetool ring<\/code>:<\/strong> K\u00fcmenin token da\u011f\u0131l\u0131m\u0131n\u0131 g\u00f6sterir. Her d\u00fc\u011f\u00fcm\u00fcn hangi token aral\u0131klar\u0131ndan sorumlu oldu\u011funu g\u00f6rebilirsiniz.<br \/>\n*   <strong><code>nodetool info<\/code>:<\/strong> Belirli bir d\u00fc\u011f\u00fcm hakk\u0131nda detayl\u0131 bilgi verir (y\u00fck, \u00e7al\u0131\u015fma s\u00fcresi, heap kullan\u0131m\u0131 vb.).<br \/>\n*   <strong><code>nodetool repair<\/code>:<\/strong> Veri tutarl\u0131l\u0131\u011f\u0131n\u0131 sa\u011flamak i\u00e7in replikalar aras\u0131nda tutars\u0131zl\u0131klar\u0131 d\u00fczeltir. D\u00fczenli olarak \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131 \u00f6nemlidir.<\/p>\n<pre><code class=\"language-bash\">nodetool repair -pr # T\u00fcm d\u00fc\u011f\u00fcmler aras\u0131nda onar\u0131m yapar<\/code><\/pre>\n<p>*   <strong><code>nodetool cleanup<\/code>:<\/strong> D\u00fc\u011f\u00fcm\u00fcn art\u0131k sorumlu olmad\u0131\u011f\u0131 verileri (token aral\u0131klar\u0131 de\u011fi\u015fti\u011finde veya d\u00fc\u011f\u00fcmler k\u00fcmeden \u00e7\u0131kar\u0131ld\u0131\u011f\u0131nda) temizler.<br \/>\n*   <strong><code>nodetool drain<\/code>:<\/strong> D\u00fc\u011f\u00fcm\u00fc \u00e7evrimd\u0131\u015f\u0131 moda almadan \u00f6nce t\u00fcm bellekteki commit loglar\u0131n\u0131 diske yazar. Bak\u0131m i\u015flemleri \u00f6ncesinde \u00f6nemlidir.<br \/>\n*   <strong><code>nodetool decommission<\/code>:<\/strong> Bir d\u00fc\u011f\u00fcm\u00fc k\u00fcmeden g\u00fcvenli bir \u015fekilde \u00e7\u0131kar\u0131r, verilerini di\u011fer d\u00fc\u011f\u00fcmlere ta\u015f\u0131r.<br \/>\n*   <strong><code>nodetool disableautocompaction<\/code> \/ <code>enableautocompaction<\/code>:<\/strong> Veri s\u0131k\u0131\u015ft\u0131rma i\u015flemini kontrol eder.<br \/>\n*   <strong><code>nodetool compactionstats<\/code>:<\/strong> S\u0131k\u0131\u015ft\u0131rma istatistiklerini g\u00f6sterir.<\/p>\n<h4>Log Dosyalar\u0131<\/h4>\n<p>Cassandra&#8217;n\u0131n log dosyalar\u0131, sorun giderme ve k\u00fcme sa\u011fl\u0131\u011f\u0131n\u0131 izleme i\u00e7in hayati \u00f6neme sahiptir.<br \/>\n*   <strong><code>system.log<\/code>:<\/strong> Ana log dosyas\u0131d\u0131r (<code>\/var\/log\/cassandra\/system.log<\/code>). Cassandra&#8217;n\u0131n ba\u015flang\u0131\u00e7, \u00e7al\u0131\u015fma zaman\u0131 hatalar\u0131, uyar\u0131lar ve genel durum bilgileri burada bulunur.<br \/>\n*   <strong><code>debug.log<\/code>:<\/strong> Daha detayl\u0131 hata ay\u0131klama bilgileri i\u00e7erir (varsay\u0131lan olarak etkin de\u011fildir).<\/p>\n<h4>JMX ile \u0130zleme<\/h4>\n<p>Cassandra, JMX (Java Management Extensions) arac\u0131l\u0131\u011f\u0131yla bir\u00e7ok metrik sunar. Bu metrikler, JConsole, VisualVM veya Prometheus\/Grafana gibi izleme ara\u00e7lar\u0131 kullan\u0131larak izlenebilir. <code>cassandra.yaml<\/code> dosyas\u0131nda JMX portu (varsay\u0131lan 7199) ve kimlik do\u011frulama ayarlar\u0131 bulunur.<\/p>\n<h3>Y\u00fcksek Eri\u015filebilirlik ve Felaket Kurtarma<\/h3>\n<p>Cassandra&#8217;n\u0131n temel g\u00fcc\u00fc, y\u00fcksek eri\u015filebilirlik ve felaket kurtarma yeteneklerinden gelir.<\/p>\n<h4>\u00c7o\u011faltma Fakt\u00f6r\u00fc (Replication Factor &#8211; RF) ve Tutarl\u0131l\u0131k Seviyeleri (Consistency Levels &#8211; CL)<\/h4>\n<p>*   <strong>\u00c7o\u011faltma Fakt\u00f6r\u00fc (RF):<\/strong> Bir verinin k\u00fcmede ka\u00e7 kopyas\u0131n\u0131n tutulaca\u011f\u0131n\u0131 belirler. \u00d6rne\u011fin, <code>RF=3<\/code> ise, her veri par\u00e7as\u0131 k\u00fcmedeki \u00fc\u00e7 farkl\u0131 d\u00fc\u011f\u00fcmde saklan\u0131r. Bu, bir veya iki d\u00fc\u011f\u00fcm\u00fcn ar\u0131zalanmas\u0131 durumunda bile verilerin eri\u015filebilir kalmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <strong>Tutarl\u0131l\u0131k Seviyeleri (CL):<\/strong> Bir okuma veya yazma i\u015fleminin ba\u015far\u0131l\u0131 say\u0131lmas\u0131 i\u00e7in ka\u00e7 d\u00fc\u011f\u00fcm\u00fcn yan\u0131t vermesi gerekti\u011fini belirler.<br \/>\n    *   <strong><code>ONE<\/code>:<\/strong> Bir d\u00fc\u011f\u00fcm\u00fcn yan\u0131t vermesi yeterlidir (en az tutarl\u0131, en h\u0131zl\u0131).<br \/>\n    *   <strong><code>QUORUM<\/code>:<\/strong> \u00c7o\u011funlu\u011fun (RF \/ 2 + 1) yan\u0131t vermesi gerekir (daha dengeli).<br \/>\n    *   <strong><code>ALL<\/code>:<\/strong> T\u00fcm d\u00fc\u011f\u00fcmlerin yan\u0131t vermesi gerekir (en tutarl\u0131, en yava\u015f, en az eri\u015filebilir).<br \/>\n    *   <strong><code>LOCAL_QUORUM<\/code>:<\/strong> Sadece yerel veri merkezindeki \u00e7o\u011funlu\u011fun yan\u0131t vermesi gerekir (\u00e7oklu veri merkezli ortamlarda kullan\u0131l\u0131r).<br \/>\n    *   Uygulama gereksinimlerinize g\u00f6re do\u011fru <code>RF<\/code> ve <code>CL<\/code> kombinasyonunu se\u00e7mek, performans ve veri tutarl\u0131l\u0131\u011f\u0131 aras\u0131nda kritik bir denge sa\u011flar. Genellikle <code>RF=3<\/code> ve <code>QUORUM<\/code> veya <code>LOCAL_QUORUM<\/code> kombinasyonu iyi bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r.<\/p>\n<h4>Veri Merkezi ve Rack Fark\u0131ndal\u0131\u011f\u0131<\/h4>\n<p><code>NetworkTopologyStrategy<\/code> ve <code>GossipingPropertyFileSnitch<\/code> kullanarak, Cassandra&#8217;n\u0131n verileri farkl\u0131 veri merkezleri ve rack&#8217;ler aras\u0131nda da\u011f\u0131tmas\u0131n\u0131 sa\u011flayabilirsiniz. Bu, bir veri merkezinin veya rack&#8217;in tamamen \u00e7\u00f6kmesi durumunda bile k\u00fcmenin \u00e7al\u0131\u015fmaya devam etmesini sa\u011flar.<\/p>\n<h4>Yedekleme ve Geri Y\u00fckleme<\/h4>\n<p>*   <strong>Snapshot (Anl\u0131k G\u00f6r\u00fcnt\u00fc):<\/strong> <code>nodetool snapshot<\/code> komutu, belirli bir KeySpace veya tablonun anl\u0131k g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc al\u0131r. Bu, veritaban\u0131n\u0131n belirli bir zamandaki durumunu kaydeder.<br \/>\n*   <strong>SSTableLoader:<\/strong> Yedeklenen SSTable dosyalar\u0131n\u0131 (Cassandra&#8217;n\u0131n diskteki veri dosyalar\u0131) yeni bir k\u00fcmeye veya d\u00fc\u011f\u00fcme y\u00fcklemek i\u00e7in kullan\u0131l\u0131r.<br \/>\n*   <strong>Commit Log Yedekleme:<\/strong> De\u011fi\u015fikliklerin kaydedildi\u011fi commit loglar\u0131 da yedeklenmelidir.<\/p>\n<h3>Performans Optimizasyonu \u0130pu\u00e7lar\u0131<\/h3>\n<p>Cassandra&#8217;dan en iyi performans\u0131 almak i\u00e7in baz\u0131 optimizasyonlar yap\u0131labilir:<\/p>\n<p>*   <strong>Disk Se\u00e7imi:<\/strong> SSD&#8217;ler, geleneksel HDD&#8217;lere g\u00f6re \u00e7ok daha iyi okuma\/yazma performans\u0131 sunar ve Cassandra i\u00e7in \u015fiddetle \u00f6nerilir.<br \/>\n*   <strong>JVM Ayarlar\u0131:<\/strong> <code>cassandra-env.sh<\/code> dosyas\u0131nda JVM heap boyutu (\u00f6rne\u011fin, <code>MAX_HEAP_SIZE<\/code>), \u00e7\u00f6p toplama (garbage collection) algoritmas\u0131 gibi ayarlar optimize edilebilir. Genellikle <code>G1GC<\/code> \u00f6nerilir.<br \/>\n*   <strong>S\u0131k\u0131\u015ft\u0131rma Algoritmalar\u0131:<\/strong> Tablo olu\u015ftururken s\u0131k\u0131\u015ft\u0131rma algoritmalar\u0131 (LZ4, Snappy) belirterek disk alan\u0131 kullan\u0131m\u0131n\u0131 azaltabilir ve okuma performans\u0131n\u0131 art\u0131rabilirsiniz.<br \/>\n*   <strong>\u00d6nbellek Ayarlar\u0131:<\/strong> <code>cassandra.yaml<\/code> dosyas\u0131ndaki <code>key_cache_size_in_mb<\/code> ve <code>row_cache_size_in_mb<\/code> gibi \u00f6nbellek ayarlar\u0131, s\u0131k eri\u015filen verilere ula\u015f\u0131m h\u0131z\u0131n\u0131 art\u0131rabilir.<br \/>\n*   <strong>Veri Modelleme:<\/strong> En \u00f6nemli optimizasyonlardan biri do\u011fru veri modellemesidir. Sorgular\u0131n\u0131z\u0131 \u00f6nceden d\u00fc\u015f\u00fcnerek ve denormalizasyon kullanarak gereksiz okuma i\u015flemlerini minimize edin.<br \/>\n*   <strong>Sanal D\u00fc\u011f\u00fcm Say\u0131s\u0131 (<code>num_tokens<\/code>):<\/strong> Varsay\u0131lan 256 genellikle iyi olsa da, \u00e7ok b\u00fcy\u00fck k\u00fcmelerde veya \u00f6zel durumlarda bu de\u011fer ayarlanabilir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Apache Cassandra, da\u011f\u0131t\u0131k sistemlerin karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 basitle\u015ftiren ve b\u00fcy\u00fck \u00f6l\u00e7ekli veri ihtiya\u00e7lar\u0131n\u0131 kar\u015f\u0131lamak i\u00e7in g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcm sunan, yatay olarak \u00f6l\u00e7eklenebilir bir NoSQL veritaban\u0131d\u0131r. Ubuntu 14.04 gibi daha eski bir platformda bile, bu makalede \u00f6zetlenen ad\u0131mlar\u0131 izleyerek \u00e7ok d\u00fc\u011f\u00fcml\u00fc bir Cassandra k\u00fcmesini ba\u015far\u0131yla kurabilir ve \u00e7al\u0131\u015ft\u0131rabilirsiniz.<\/p>\n<p>Kurulum ve temel yap\u0131land\u0131rma ad\u0131mlar\u0131, bir Cassandra k\u00fcmesinin temellerini atman\u0131z\u0131 sa\u011flar. Ancak, \u00fcretim ortamlar\u0131nda Cassandra&#8217;y\u0131 verimli bir \u015fekilde y\u00f6netmek i\u00e7in veri modelleme, izleme, d\u00fczenli onar\u0131m i\u015flemleri, g\u00fcvenlik ve felaket kurtarma stratejileri gibi konulara derinlemesine hakim olmak \u00f6nemlidir. Do\u011fru planlama, yap\u0131land\u0131rma ve s\u00fcrekli y\u00f6netim ile Cassandra, y\u00fcksek performansl\u0131 ve dayan\u0131kl\u0131 uygulamalar\u0131n\u0131z i\u00e7in sa\u011flam bir omurga sa\u011flayabilir. Ubuntu 14.04&#8217;\u00fcn ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fcn sona erdi\u011fini unutmamakla birlikte, bu bilgiler mevcut sistemlerin bak\u0131m\u0131 veya \u00f6\u011frenme ama\u00e7l\u0131 kullan\u0131mlar i\u00e7in de\u011ferli bir kaynak te\u015fkil etmektedir.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu 14.04 \u00dczerinde Apache Cassandra ile \u00c7ok D\u00fc\u011f\u00fcml\u00fc K\u00fcme Veritaban\u0131 Kurulumu ve Y\u00f6netimi\nApache Cassandra, y\u00fcksek \u00f6l\u00e7eklenebilirlik, y","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-35360","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>Ubuntu 14.04 \u00dczerinde Apache Cassandra ile \u00c7ok D\u00fc\u011f\u00fcml\u00fc K\u00fcme Veritaban\u0131 Kurulumu ve Y\u00f6netimi - 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\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ubuntu 14.04 \u00dczerinde Apache Cassandra ile \u00c7ok D\u00fc\u011f\u00fcml\u00fc K\u00fcme Veritaban\u0131 Kurulumu ve Y\u00f6netimi\" \/>\n<meta property=\"og:description\" content=\"Ubuntu 14.04 \u00dczerinde Apache Cassandra ile \u00c7ok D\u00fc\u011f\u00fcml\u00fc K\u00fcme Veritaban\u0131 Kurulumu ve Y\u00f6netimi Apache Cassandra, y\u00fcksek \u00f6l\u00e7eklenebilirlik, y\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-28T17:40:51+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=\"19 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ubuntu 14.04 \u00dczerinde Apache Cassandra ile \u00c7ok D\u00fc\u011f\u00fcml\u00fc K\u00fcme Veritaban\u0131 Kurulumu ve Y\u00f6netimi\",\"datePublished\":\"2025-11-28T17:40:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/\"},\"wordCount\":3182,\"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\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/\",\"name\":\"Ubuntu 14.04 \u00dczerinde Apache Cassandra ile \u00c7ok D\u00fc\u011f\u00fcml\u00fc K\u00fcme Veritaban\u0131 Kurulumu ve Y\u00f6netimi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-28T17:40:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu 14.04 \u00dczerinde Apache Cassandra ile \u00c7ok D\u00fc\u011f\u00fcml\u00fc K\u00fcme Veritaban\u0131 Kurulumu ve Y\u00f6netimi\"}]},{\"@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":"Ubuntu 14.04 \u00dczerinde Apache Cassandra ile \u00c7ok D\u00fc\u011f\u00fcml\u00fc K\u00fcme Veritaban\u0131 Kurulumu ve Y\u00f6netimi - 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\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/","og_locale":"tr_TR","og_type":"article","og_title":"Ubuntu 14.04 \u00dczerinde Apache Cassandra ile \u00c7ok D\u00fc\u011f\u00fcml\u00fc K\u00fcme Veritaban\u0131 Kurulumu ve Y\u00f6netimi","og_description":"Ubuntu 14.04 \u00dczerinde Apache Cassandra ile \u00c7ok D\u00fc\u011f\u00fcml\u00fc K\u00fcme Veritaban\u0131 Kurulumu ve Y\u00f6netimi Apache Cassandra, y\u00fcksek \u00f6l\u00e7eklenebilirlik, y","og_url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-28T17:40:51+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"19 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ubuntu 14.04 \u00dczerinde Apache Cassandra ile \u00c7ok D\u00fc\u011f\u00fcml\u00fc K\u00fcme Veritaban\u0131 Kurulumu ve Y\u00f6netimi","datePublished":"2025-11-28T17:40:51+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/"},"wordCount":3182,"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\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/","url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/","name":"Ubuntu 14.04 \u00dczerinde Apache Cassandra ile \u00c7ok D\u00fc\u011f\u00fcml\u00fc K\u00fcme Veritaban\u0131 Kurulumu ve Y\u00f6netimi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-28T17:40:51+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-14-04-uzerinde-apache-cassandra-ile-cok-dugumlu-kume-veritabani-kurulumu-ve-yonetimi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu 14.04 \u00dczerinde Apache Cassandra ile \u00c7ok D\u00fc\u011f\u00fcml\u00fc K\u00fcme Veritaban\u0131 Kurulumu ve Y\u00f6netimi"}]},{"@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\/35360","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=35360"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35360\/revisions"}],"predecessor-version":[{"id":35361,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35360\/revisions\/35361"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=35360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=35360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=35360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}