{"id":39268,"date":"2026-02-17T20:40:54","date_gmt":"2026-02-17T17:40:54","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=39268"},"modified":"2026-02-17T20:40:54","modified_gmt":"2026-02-17T17:40:54","slug":"digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/","title":{"rendered":"DigitalOcean Droplet&#8217;leri ile Hadoop K\u00fcmesi Kurulumu: Ad\u0131m Ad\u0131m Teknik Rehber"},"content":{"rendered":"<p><body><\/p>\n<h2>DigitalOcean Droplet&#8217;leri ile Hadoop K\u00fcmesi Kurulumu: Ad\u0131m Ad\u0131m Teknik Rehber<\/h2>\n<p>B\u00fcy\u00fck veri d\u00fcnyas\u0131, g\u00fcn\u00fcm\u00fcz\u00fcn dijital ekonomisinde i\u015fletmelerin ve ara\u015ft\u0131rmac\u0131lar\u0131n kar\u015f\u0131la\u015ft\u0131\u011f\u0131 en \u00f6nemli zorluklardan biridir. Geleneksel veri i\u015fleme y\u00f6ntemleri, petabaytlarca veriyi depolama, i\u015fleme ve analiz etme konusunda yetersiz kalmaktad\u0131r. \u0130\u015fte tam bu noktada Apache Hadoop devreye giriyor. Hadoop, da\u011f\u0131t\u0131k bir ortamda b\u00fcy\u00fck veri k\u00fcmelerini depolamak ve i\u015flemek i\u00e7in tasarlanm\u0131\u015f a\u00e7\u0131k kaynakl\u0131 bir \u00e7er\u00e7evedir. Bu makalede, maliyet etkinli\u011fi, esnekli\u011fi ve kullan\u0131m kolayl\u0131\u011f\u0131 ile \u00f6ne \u00e7\u0131kan bulut sa\u011flay\u0131c\u0131s\u0131 DigitalOcean&#8217;\u0131n Droplet&#8217;lerini kullanarak nas\u0131l bir Hadoop k\u00fcmesi olu\u015fturaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<h3>Giri\u015f: Neden DigitalOcean ve Hadoop?<\/h3>\n<p>B\u00fcy\u00fck veri analizi, g\u00fcn\u00fcm\u00fczde rekabet avantaj\u0131 elde etmek isteyen her kurum i\u00e7in vazge\u00e7ilmez bir ara\u00e7 haline gelmi\u015ftir. Bu analizler genellikle devasa veri k\u00fcmeleri \u00fczerinde ger\u00e7ekle\u015ftirilir ve bu da \u00f6zel, y\u00fcksek performansl\u0131 altyap\u0131lar gerektirir. Apache Hadoop, bu t\u00fcr altyap\u0131lar\u0131 da\u011f\u0131t\u0131k ve \u00f6l\u00e7eklenebilir bir \u015fekilde sunan lider bir teknolojidir. Ancak, yerinde (on-premise) bir Hadoop k\u00fcmesi kurmak ve y\u00f6netmek \u00f6nemli maliyetler ve operasyonel karma\u015f\u0131kl\u0131klar i\u00e7erebilir.<\/p>\n<p>Bulut bili\u015fim, bu zorluklar\u0131 a\u015fmak i\u00e7in g\u00fc\u00e7l\u00fc bir alternatif sunar. DigitalOcean, basit aray\u00fcz\u00fc, uygun fiyatland\u0131rmas\u0131 ve g\u00fc\u00e7l\u00fc sanal makineleri (Droplet&#8217;ler) ile geli\u015ftiriciler ve k\u00fc\u00e7\u00fck\/orta \u00f6l\u00e7ekli i\u015fletmeler aras\u0131nda pop\u00fcler bir se\u00e7imdir. DigitalOcean Droplet&#8217;leri \u00fczerinde bir Hadoop k\u00fcmesi kurmak, hem maliyetleri d\u00fc\u015f\u00fcr\u00fcr hem de gerekti\u011finde k\u00fcmenin kolayca \u00f6l\u00e7eklendirilmesini sa\u011flar. Bu, \u00f6zellikle prototipleme, geli\u015ftirme ve belirli i\u015f y\u00fckleri i\u00e7in esnek bir \u00e7\u00f6z\u00fcm arayanlar i\u00e7in idealdir.<\/p>\n<p>Bu makalenin amac\u0131, DigitalOcean platformunda bir Hadoop 3.x k\u00fcmesini s\u0131f\u0131rdan kurmak i\u00e7in kapsaml\u0131 ve pratik bir rehber sunmakt\u0131r. Hedefimiz, okuyucular\u0131n bu ad\u0131mlar\u0131 takip ederek kendi da\u011f\u0131t\u0131k veri i\u015fleme ortamlar\u0131n\u0131 ba\u015far\u0131yla olu\u015fturabilmelerini sa\u011flamakt\u0131r.<\/p>\n<h3>Hadoop ve Temel Bile\u015fenlerine K\u0131sa Bir Bak\u0131\u015f<\/h3>\n<p>Hadoop, bir\u00e7ok bile\u015fenden olu\u015fan bir ekosistemdir, ancak \u00e7ekirde\u011fini \u00fc\u00e7 ana bile\u015fen olu\u015fturur: HDFS, YARN ve MapReduce.<\/p>\n<h4>HDFS (Hadoop Da\u011f\u0131t\u0131k Dosya Sistemi)<\/h4>\n<p>HDFS, Hadoop&#8217;un temel depolama katman\u0131d\u0131r. B\u00fcy\u00fck dosyalar\u0131 birden fazla makineye da\u011f\u0131tarak depolar ve y\u00fcksek hata tolerans\u0131 ile \u00e7al\u0131\u015f\u0131r.<br \/>\n*   <strong>NameNode:<\/strong> K\u00fcmedeki t\u00fcm dosya sistemi meta verilerini (dosya adlar\u0131, dizinler, blok konumlar\u0131 vb.) y\u00f6neten ana d\u00fc\u011f\u00fcmd\u00fcr. T\u00fcm istemci eri\u015fimleri NameNode \u00fczerinden ge\u00e7er. Y\u00fcksek eri\u015filebilirlik i\u00e7in genellikle yedekli NameNode&#8217;lar kullan\u0131l\u0131r.<br \/>\n*   <strong>DataNode:<\/strong> Ger\u00e7ek veri bloklar\u0131n\u0131 depolayan d\u00fc\u011f\u00fcmlerdir. \u0130stemcilerden gelen okuma\/yazma isteklerini do\u011frudan i\u015fler ve NameNode&#8217;a d\u00fczenli olarak kalp at\u0131\u015f\u0131 (heartbeat) ve blok raporlar\u0131 g\u00f6nderir.<br \/>\n*   <strong>Replikasyon:<\/strong> HDFS, verileri birden fazla DataNode&#8217;da kopyalayarak (varsay\u0131lan olarak 3 kopya) veri kayb\u0131n\u0131 \u00f6nler ve okuma performans\u0131n\u0131 art\u0131r\u0131r.<\/p>\n<h4>YARN (Yet Another Resource Negotiator)<\/h4>\n<p>YARN, Hadoop k\u00fcmesindeki kaynaklar\u0131 y\u00f6neten ve da\u011f\u0131t\u0131k uygulamalar\u0131n y\u00fcr\u00fct\u00fclmesini sa\u011flayan bir platformdur.<br \/>\n*   <strong>ResourceManager:<\/strong> K\u00fcmedeki t\u00fcm uygulamalar i\u00e7in kaynaklar\u0131 (CPU, bellek) tahsis eden k\u00fcresel bir y\u00f6neticidir. \u0130\u015f planlamas\u0131 ve kaynak y\u00f6netimi yapar.<br \/>\n*   <strong>NodeManager:<\/strong> Her bir veri d\u00fc\u011f\u00fcm\u00fcnde \u00e7al\u0131\u015f\u0131r ve o d\u00fc\u011f\u00fcmdeki kaynaklar\u0131 y\u00f6netir. Uygulama kapsay\u0131c\u0131lar\u0131n\u0131 (container) ba\u015flat\u0131r, izler ve ResourceManager&#8217;a d\u00fc\u011f\u00fcm durumu hakk\u0131nda bilgi g\u00f6nderir.<br \/>\n*   <strong>ApplicationMaster:<\/strong> Her uygulama i\u00e7in bir ApplicationMaster \u00f6rne\u011fi ba\u015flat\u0131l\u0131r. Bu, uygulaman\u0131n ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fc y\u00f6netir, ResourceManager&#8217;dan kaynak ister ve g\u00f6revin tamamlanmas\u0131n\u0131 izler.<\/p>\n<h4>MapReduce<\/h4>\n<p>MapReduce, b\u00fcy\u00fck veri k\u00fcmelerini paralel ve da\u011f\u0131t\u0131k bir \u015fekilde i\u015flemek i\u00e7in bir programlama modelidir.<br \/>\n*   <strong>Map A\u015famas\u0131:<\/strong> Giri\u015f verilerini al\u0131r, bunlar\u0131 anahtar-de\u011fer \u00e7iftlerine b\u00f6ler ve her bir \u00e7ift \u00fczerinde bir i\u015flem (map fonksiyonu) uygular.<br \/>\n*   <strong>Reduce A\u015famas\u0131:<\/strong> Map a\u015famas\u0131n\u0131n \u00e7\u0131kt\u0131s\u0131n\u0131 al\u0131r, ayn\u0131 anahtara sahip de\u011ferleri gruplar ve bu gruplar \u00fczerinde bir toplama veya \u00f6zetleme i\u015flemi (reduce fonksiyonu) uygular.<\/p>\n<p>Bu bile\u015fenler birlikte \u00e7al\u0131\u015farak, petabaytlarca veriyi g\u00fcvenilir ve verimli bir \u015fekilde depolama ve i\u015fleme yetene\u011fi sunar.<\/p>\n<h3>DigitalOcean Temelleri ve K\u00fcme Mimarisi Planlamas\u0131<\/h3>\n<p>Hadoop k\u00fcmesi olu\u015fturmaya ba\u015flamadan \u00f6nce DigitalOcean&#8217;\u0131n temel kavramlar\u0131n\u0131 anlamak ve k\u00fcmenizin mimarisini planlamak \u00f6nemlidir.<\/p>\n<h4>DigitalOcean Droplet&#8217;leri<\/h4>\n<p>Droplet&#8217;ler, DigitalOcean&#8217;\u0131n sundu\u011fu Linux tabanl\u0131 sanal makinelerdir. \u0130htiya\u00e7lar\u0131n\u0131za g\u00f6re farkl\u0131 CPU, RAM ve depolama se\u00e7enekleriyle olu\u015fturulabilirler. Her Droplet, bir genel IP adresi ve iste\u011fe ba\u011fl\u0131 olarak bir \u00f6zel IP adresi ile gelir.<\/p>\n<h4>SSH Anahtarlar\u0131<\/h4>\n<p>Droplet&#8217;lerinize g\u00fcvenli ve parolas\u0131z eri\u015fim sa\u011flamak i\u00e7in SSH anahtarlar\u0131 kullanmak \u015fiddetle tavsiye edilir. Bir SSH anahtar \u00e7ifti (genel ve \u00f6zel anahtar) olu\u015fturup genel anahtar\u0131n\u0131z\u0131 Droplet&#8217;lere ekleyerek g\u00fcvenli\u011fi art\u0131r\u0131rs\u0131n\u0131z.<\/p>\n<h4>A\u011f Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>DigitalOcean, Droplet&#8217;ler aras\u0131nda g\u00fcvenli ve h\u0131zl\u0131 ileti\u015fim i\u00e7in \u00f6zel a\u011f (Private Networking) se\u00e7ene\u011fi sunar. Bu, Droplet&#8217;lerinizin genel internet \u00fczerinden de\u011fil, \u00f6zel, izole bir a\u011f \u00fczerinden ileti\u015fim kurmas\u0131n\u0131 sa\u011flar. Hadoop k\u00fcmesinde bu \u00f6zelli\u011fi kullanmak hem g\u00fcvenlik hem de performans a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir. Ayr\u0131ca, DigitalOcean&#8217;\u0131n g\u00fcvenlik duvar\u0131 (Firewall) hizmeti ile Droplet&#8217;lerinizin a\u011f trafi\u011fini kontrol edebilirsiniz.<\/p>\n<h4>B\u00f6lge Se\u00e7imi<\/h4>\n<p>Droplet&#8217;lerinizi olu\u015ftururken, fiziksel konumlar\u0131n\u0131 temsil eden bir veri merkezi b\u00f6lgesi se\u00e7melisiniz. K\u00fcmenizdeki t\u00fcm Droplet&#8217;lerin ayn\u0131 b\u00f6lgede olmas\u0131, a\u011f gecikmesini en aza indirerek performans\u0131 art\u0131r\u0131r.<\/p>\n<h4>Hadoop K\u00fcmesi Mimarisi Planlamas\u0131<\/h4>\n<p>Bir Hadoop k\u00fcmesi genellikle bir &#8220;master&#8221; d\u00fc\u011f\u00fcm ve birden fazla &#8220;slave&#8221; d\u00fc\u011f\u00fcmden olu\u015fur.<br \/>\n*   <strong>Master Droplet (NameNode, ResourceManager, SecondaryNameNode):<\/strong> Genellikle k\u00fcmenin y\u00f6netim bile\u015fenlerini bar\u0131nd\u0131r\u0131r. Bu Droplet biraz daha fazla RAM ve CPU gerektirebilir.<br \/>\n*   <strong>Slave Droplet&#8217;ler (DataNode, NodeManager):<\/strong> Veri depolama ve i\u015fleme g\u00f6revlerini \u00fcstlenir. K\u00fcmenizin \u00f6l\u00e7e\u011fine ba\u011fl\u0131 olarak birden fazla slave Droplet&#8217;e ihtiyac\u0131n\u0131z olacakt\u0131r. Minimum 2 slave Droplet ile ba\u015flamak, HDFS replikasyonunun etkin bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<\/p>\n<p><strong>\u00d6nerilen Konfig\u00fcrasyon (3 Droplet&#8217;li Minimal K\u00fcme):<\/strong><br \/>\n*   <strong>Master Droplet (1 adet):<\/strong><br \/>\n    *   \u0130\u015fletim Sistemi: Ubuntu 20.04 LTS veya 22.04 LTS<br \/>\n    *   Plan: Standard Droplet, 2 vCPU, 4 GB RAM, 80 GB SSD<br \/>\n    *   Roller: NameNode, ResourceManager, SecondaryNameNode<br \/>\n*   <strong>Slave Droplet&#8217;ler (2 adet):<\/strong><br \/>\n    *   \u0130\u015fletim Sistemi: Ubuntu 20.04 LTS veya 22.04 LTS<br \/>\n    *   Plan: Standard Droplet, 1 vCPU, 2 GB RAM, 50 GB SSD (Her biri)<br \/>\n    *   Roller: DataNode, NodeManager<\/p>\n<p>Bu konfig\u00fcrasyon, k\u00fc\u00e7\u00fck \u00f6l\u00e7ekli testler ve \u00f6\u011frenme ama\u00e7lar\u0131 i\u00e7in yeterli olacakt\u0131r. Ger\u00e7ek d\u00fcnya i\u015f y\u00fckleri i\u00e7in daha g\u00fc\u00e7l\u00fc Droplet&#8217;ler ve daha fazla slave d\u00fc\u011f\u00fcm gerekebilir.<\/p>\n<h3>Ad\u0131m Ad\u0131m Kurulum Rehberi<\/h3>\n<p>\u015eimdi DigitalOcean Droplet&#8217;leri \u00fczerinde Hadoop k\u00fcmesini kurma ad\u0131mlar\u0131na ge\u00e7elim.<\/p>\n<h4>Ad\u0131m 1: DigitalOcean Droplet&#8217;lerini Olu\u015fturma<\/h4>\n<p>1.  <strong>DigitalOcean Hesab\u0131n\u0131za Giri\u015f Yap\u0131n:<\/strong> E\u011fer bir hesab\u0131n\u0131z yoksa, olu\u015fturun.<br \/>\n2.  <strong>Droplet Olu\u015fturma:<\/strong> Kontrol panelinizde &#8220;Create&#8221; butonuna t\u0131klay\u0131n ve &#8220;Droplets&#8221; se\u00e7ene\u011fini se\u00e7in.<br \/>\n3.  <strong>B\u00f6lge Se\u00e7imi:<\/strong> K\u00fcmenizdeki t\u00fcm Droplet&#8217;ler i\u00e7in ayn\u0131 veri merkezi b\u00f6lgesini se\u00e7in (\u00f6rn. Frankfurt 1).<br \/>\n4.  <strong>\u0130\u015fletim Sistemi Se\u00e7imi:<\/strong> &#8220;Ubuntu&#8221; sekmesinden &#8220;22.04 LTS x64&#8221; veya &#8220;20.04 LTS x64&#8221; se\u00e7ene\u011fini se\u00e7in.<br \/>\n5.  <strong>Plan Se\u00e7imi:<\/strong> Yukar\u0131da belirtilen mimari plan\u0131na uygun olarak Droplet boyutlar\u0131n\u0131 se\u00e7in (Master i\u00e7in 2vCPU\/4GB, Slave&#8217;ler i\u00e7in 1vCPU\/2GB).<br \/>\n6.  <strong>Kimlik Do\u011frulama:<\/strong> SSH anahtar\u0131 ekleyin veya mevcut bir anahtar\u0131n\u0131z\u0131 se\u00e7in. Bu, Droplet&#8217;lerinize g\u00fcvenli bir \u015fekilde eri\u015fmenizi sa\u011flar.<br \/>\n7.  <strong>Ek Se\u00e7enekler:<\/strong><br \/>\n    *   <strong>Private Networking (\u00d6zel A\u011f):<\/strong> T\u00fcm Droplet&#8217;leriniz i\u00e7in bu se\u00e7ene\u011fi etkinle\u015ftirin. Bu, Droplet&#8217;ler aras\u0131nda g\u00fcvenli ve h\u0131zl\u0131 i\u00e7 ileti\u015fimi sa\u011flar.<br \/>\n    *   <strong>Monitoring (\u0130zleme):<\/strong> Etkinle\u015ftirebilirsiniz.<br \/>\n8.  <strong>Hostname ve Say\u0131:<\/strong><br \/>\n    *   Master Droplet i\u00e7in: &#8220;hadoop-master&#8221; gibi bir hostname belirleyin ve 1 adet olu\u015fturun.<br \/>\n    *   Slave Droplet&#8217;ler i\u00e7in: &#8220;hadoop-slave1&#8221;, &#8220;hadoop-slave2&#8221; gibi hostname&#8217;ler belirleyin ve ihtiyac\u0131n\u0131z kadar (\u00f6rne\u011fin 2 adet) olu\u015fturun.<br \/>\n9.  <strong>Proje Se\u00e7imi (\u0130ste\u011fe Ba\u011fl\u0131):<\/strong> Droplet&#8217;leri bir projeye atayabilirsiniz.<br \/>\n10. <strong>Droplet&#8217;leri Olu\u015fturun:<\/strong> &#8220;Create Droplet&#8221; butonuna t\u0131klay\u0131n.<\/p>\n<p>Droplet&#8217;leriniz haz\u0131r oldu\u011funda, her birinin genel ve \u00f6zel IP adreslerini not al\u0131n.<\/p>\n<h4>Ad\u0131m 2: Droplet&#8217;leri Haz\u0131rlama (T\u00fcm Droplet&#8217;lerde)<\/h4>\n<p>Bu ad\u0131mlar, t\u00fcm master ve slave Droplet&#8217;lerinizde ayr\u0131 ayr\u0131 uygulanmal\u0131d\u0131r.<\/p>\n<p>1.  <strong>SSH ile Ba\u011flanma:<\/strong><\/p>\n<pre><code class=\"language-bash\">ssh root@<MASTER_GENEL_IP_ADRESI>\n    ssh root@<SLAVE1_GENEL_IP_ADRESI>\n    ssh root@<SLAVE2_GENEL_IP_ADRESI><\/code><\/pre>\n<p>2.  <strong>Sistem G\u00fcncellemesi:<\/strong><\/p>\n<pre><code class=\"language-bash\">apt update && apt upgrade -y<\/code><\/pre>\n<p>3.  <strong>Yeni Bir Hadoop Kullan\u0131c\u0131s\u0131 Olu\u015fturma:<\/strong><br \/>\n    G\u00fcvenlik ve izolasyon i\u00e7in <code>root<\/code> kullan\u0131c\u0131s\u0131 yerine \u00f6zel bir <code>hadoopuser<\/code> kullan\u0131c\u0131s\u0131 olu\u015ftural\u0131m.<\/p>\n<pre><code class=\"language-bash\">adduser hadoopuser\n    usermod -aG sudo hadoopuser # hadoopuser'a sudo yetkisi ver\n    su - hadoopuser # hadoopuser'a ge\u00e7i\u015f yap<\/code><\/pre>\n<p>    Bundan sonraki t\u00fcm ad\u0131mlar\u0131 <code>hadoopuser<\/code> olarak ger\u00e7ekle\u015ftirece\u011fiz.<br \/>\n4.  <strong>Java Geli\u015ftirme Kiti (JDK) Kurulumu:<\/strong> Hadoop Java ile \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in JDK&#8217;ya ihtiyac\u0131m\u0131z var. OpenJDK 11 tavsiye edilir.<\/p>\n<pre><code class=\"language-bash\">sudo apt install openjdk-11-jdk -y<\/code><\/pre>\n<p>    Java&#8217;n\u0131n do\u011fru y\u00fcklendi\u011fini kontrol edin:<\/p>\n<pre><code class=\"language-bash\">java -version<\/code><\/pre>\n<p>5.  <strong>Ortam De\u011fi\u015fkenlerini Ayarlama (JAVA_HOME):<\/strong><br \/>\n    <code>hadoopuser<\/code>&#8216;\u0131n <code>.bashrc<\/code> dosyas\u0131n\u0131 d\u00fczenleyin:<\/p>\n<pre><code class=\"language-bash\">nano ~\/.bashrc<\/code><\/pre>\n<p>    Dosyan\u0131n sonuna a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 ekleyin:<\/p>\n<pre><code class=\"language-bash\">export JAVA_HOME=$(update-java-alternatives -l | grep \"java-1.11.0-openjdk-amd64\" | awk '{print $3}')\n    export PATH=$PATH:$JAVA_HOME\/bin<\/code><\/pre>\n<p>    De\u011fi\u015fiklikleri uygulay\u0131n:<\/p>\n<pre><code class=\"language-bash\">source ~\/.bashrc<\/code><\/pre>\n<p>6.  <strong>Hostname&#8217;leri ve <code>\/etc\/hosts<\/code> Dosyas\u0131n\u0131 Yap\u0131land\u0131rma:<\/strong><br \/>\n    Bu, Droplet&#8217;lerin birbirlerini \u00f6zel IP adresleri \u00fczerinden hostname&#8217;leri ile tan\u0131malar\u0131n\u0131 sa\u011flar.<br \/>\n    \u00d6nce her Droplet&#8217;in hostname&#8217;ini ayarlay\u0131n (e\u011fer olu\u015ftururken ayarlamad\u0131ysan\u0131z):<br \/>\n    *   Master Droplet&#8217;te: <code>sudo hostnamectl set-hostname hadoop-master<\/code><br \/>\n    *   Slave1 Droplet&#8217;te: <code>sudo hostnamectl set-hostname hadoop-slave1<\/code><br \/>\n    *   Slave2 Droplet&#8217;te: <code>sudo hostnamectl set-hostname hadoop-slave2<\/code><\/p>\n<p>    \u015eimdi t\u00fcm Droplet&#8217;lerde <code>\/etc\/hosts<\/code> dosyas\u0131n\u0131 d\u00fczenleyin:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/hosts<\/code><\/pre>\n<p>    Dosyan\u0131n sonuna Droplet&#8217;lerinizin \u00f6zel IP adresleri ve hostname&#8217;lerini ekleyin (\u00f6rnek IP&#8217;ler):<\/p>\n<pre><code class=\"language-\">127.0.0.1       localhost\n    10.10.0.10      hadoop-master\n    10.10.0.11      hadoop-slave1\n    10.10.0.12      hadoop-slave2<\/code><\/pre>\n<p>    Kendi Droplet&#8217;lerinizin \u00f6zel IP adreslerini kullanmay\u0131 unutmay\u0131n.<\/p>\n<p>7.  <strong>SSH Parolas\u0131z Giri\u015fini Yap\u0131land\u0131rma (Master&#8217;dan Slave&#8217;lere):<\/strong><br \/>\n    Hadoop, master d\u00fc\u011f\u00fcmden slave d\u00fc\u011f\u00fcmlere parolas\u0131z SSH eri\u015fimi gerektirir.<br \/>\n    *   <strong>Sadece Master Droplet&#8217;te (<code>hadoopuser<\/code> olarak):<\/strong><br \/>\n        SSH anahtar \u00e7ifti olu\u015fturun (parola istemedi\u011finde Enter tu\u015funa bas\u0131n):<\/p>\n<pre><code class=\"language-bash\">ssh-keygen -t rsa -P '' -f ~\/.ssh\/id_rsa<\/code><\/pre>\n<p>        Olu\u015fturulan genel anahtar\u0131 kendi <code>authorized_keys<\/code> dosyas\u0131na ekleyin:<\/p>\n<pre><code class=\"language-bash\">cat ~\/.ssh\/id_rsa.pub >> ~\/.ssh\/authorized_keys<\/code><\/pre>\n<p>    *   <strong>Master Droplet&#8217;ten Slave Droplet&#8217;lere (<code>hadoopuser<\/code> olarak):<\/strong><br \/>\n        Genel anahtar\u0131 her bir slave Droplet&#8217;e kopyalay\u0131n:<\/p>\n<pre><code class=\"language-bash\">ssh-copy-id -i ~\/.ssh\/id_rsa.pub hadoopuser@hadoop-slave1\n        ssh-copy-id -i ~\/.ssh\/id_rsa.pub hadoopuser@hadoop-slave2<\/code><\/pre>\n<p>        Bu komutlar s\u0131ras\u0131nda slave Droplet&#8217;in <code>hadoopuser<\/code> parolas\u0131n\u0131 girmeniz istenecektir.<br \/>\n    *   <strong>Test Etme:<\/strong> Master&#8217;dan slave&#8217;lere parolas\u0131z ba\u011flanmay\u0131 deneyin:<\/p>\n<pre><code class=\"language-bash\">ssh hadoopuser@hadoop-slave1\n        exit\n        ssh hadoopuser@hadoop-slave2\n        exit<\/code><\/pre>\n<p>        E\u011fer parola sormadan ba\u011flanabiliyorsan\u0131z, yap\u0131land\u0131rma ba\u015far\u0131l\u0131d\u0131r.<\/p>\n<h4>Ad\u0131m 3: Hadoop Kurulumu (T\u00fcm Droplet&#8217;lerde)<\/h4>\n<p>Bu ad\u0131mlar, t\u00fcm master ve slave Droplet&#8217;lerinizde <code>hadoopuser<\/code> olarak uygulanmal\u0131d\u0131r.<\/p>\n<p>1.  <strong>Hadoop Ar\u015fivini \u0130ndirme:<\/strong> Apache Hadoop&#8217;un resmi web sitesinden en son kararl\u0131 s\u00fcr\u00fcm\u00fcn\u00fc indirin. (\u00d6rnek: Hadoop 3.3.6)<\/p>\n<pre><code class=\"language-bash\">wget https:\/\/downloads.apache.org\/hadoop\/common\/hadoop-3.3.6\/hadoop-3.3.6.tar.gz<\/code><\/pre>\n<p>2.  <strong>Ar\u015fivi \u00c7\u0131karma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo tar -xzf hadoop-3.3.6.tar.gz -C \/usr\/local\/<\/code><\/pre>\n<p>3.  <strong>Sembolik Link Olu\u015fturma:<\/strong> Daha kolay y\u00f6netim i\u00e7in bir sembolik link olu\u015fturun.<\/p>\n<pre><code class=\"language-bash\">sudo ln -s \/usr\/local\/hadoop-3.3.6 \/usr\/local\/hadoop<\/code><\/pre>\n<p>4.  <strong>Hadoop Dizinlerinin Sahipli\u011fini De\u011fi\u015ftirme:<\/strong> <code>hadoopuser<\/code>&#8216;\u0131n Hadoop dizinlerine yazma izni olmas\u0131 gerekir.<\/p>\n<pre><code class=\"language-bash\">sudo chown -R hadoopuser:hadoopuser \/usr\/local\/hadoop<\/code><\/pre>\n<h4>Ad\u0131m 4: Hadoop Ortam De\u011fi\u015fkenlerini Ayarlama (T\u00fcm Droplet&#8217;lerde)<\/h4>\n<p><code>hadoopuser<\/code>&#8216;\u0131n <code>.bashrc<\/code> dosyas\u0131n\u0131 tekrar d\u00fczenleyin:<\/p>\n<pre><code class=\"language-bash\">nano ~\/.bashrc<\/code><\/pre>\n<p>Dosyan\u0131n sonuna a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 ekleyin:<\/p>\n<pre><code class=\"language-bash\"># Hadoop Ortam De\u011fi\u015fkenleri\nexport HADOOP_HOME=\/usr\/local\/hadoop\nexport HADOOP_CONF_DIR=$HADOOP_HOME\/etc\/hadoop\nexport HADOOP_COMMON_HOME=$HADOOP_HOME\nexport HADOOP_HDFS_HOME=$HADOOP_HOME\nexport HADOOP_MAPRED_HOME=$HADOOP_HOME\nexport HADOOP_YARN_HOME=$HADOOP_HOME\nexport HADOOP_OPTS=\"-Djava.net.preferIPv4Stack=true\"\nexport PATH=$PATH:$HADOOP_HOME\/bin:$HADOOP_HOME\/sbin<\/code><\/pre>\n<p>De\u011fi\u015fiklikleri uygulay\u0131n:<\/p>\n<pre><code class=\"language-bash\">source ~\/.bashrc<\/code><\/pre>\n<h4>Ad\u0131m 5: Hadoop Yap\u0131land\u0131rma Dosyalar\u0131n\u0131 D\u00fczenleme (Sadece Master Droplet&#8217;inde)<\/h4>\n<p>Bu ad\u0131mlar sadece master Droplet&#8217;te <code>hadoopuser<\/code> olarak yap\u0131lacakt\u0131r. Daha sonra yap\u0131land\u0131rma dosyalar\u0131n\u0131 slave&#8217;lere kopyalayaca\u011f\u0131z.<br \/>\nHadoop yap\u0131land\u0131rma dizinine gidin:<\/p>\n<pre><code class=\"language-bash\">cd \/usr\/local\/hadoop\/etc\/hadoop<\/code><\/pre>\n<p>1.  <strong><code>hadoop-env.sh<\/code>:<\/strong> Java yolunu belirtin.<\/p>\n<pre><code class=\"language-bash\">nano hadoop-env.sh<\/code><\/pre>\n<p>    <code>export JAVA_HOME=<\/code> sat\u0131r\u0131n\u0131 bulun ve yorum sat\u0131r\u0131n\u0131 kald\u0131rarak a\u015fa\u011f\u0131daki gibi ayarlay\u0131n:<\/p>\n<pre><code class=\"language-bash\">export JAVA_HOME=$(update-java-alternatives -l | grep \"java-1.11.0-openjdk-amd64\" | awk '{print $3}')<\/code><\/pre>\n<p>2.  <strong><code>core-site.xml<\/code>:<\/strong> HDFS NameNode adresini yap\u0131land\u0131r\u0131n.<\/p>\n<pre><code class=\"language-bash\">nano core-site.xml<\/code><\/pre>\n<p>    <code><configuration><\/code> etiketleri aras\u0131na a\u015fa\u011f\u0131daki XML&#8217;i ekleyin:<\/p>\n<pre><code class=\"language-xml\"><property>\n        <name>fs.defaultFS<\/name>\n        <value>hdfs:\/\/hadoop-master:9000<\/value>\n    <\/property><\/code><\/pre>\n<p>3.  <strong><code>hdfs-site.xml<\/code>:<\/strong> HDFS replikasyon fakt\u00f6r\u00fcn\u00fc ve depolama dizinlerini yap\u0131land\u0131r\u0131n.<\/p>\n<pre><code class=\"language-bash\">nano hdfs-site.xml<\/code><\/pre>\n<p>    <code><configuration><\/code> etiketleri aras\u0131na a\u015fa\u011f\u0131daki XML&#8217;i ekleyin:<\/p>\n<pre><code class=\"language-xml\"><property>\n        <name>dfs.replication<\/name>\n        <value>2<\/value> <!-- 2 slave oldu\u011fu i\u00e7in 2 olarak ayarland\u0131, 3 slave olsayd\u0131 3 olurdu -->\n    <\/property>\n    <property>\n        <name>dfs.namenode.name.dir<\/name>\n        <value>file:\/\/\/usr\/local\/hadoop\/hdfs\/namenode<\/value>\n    <\/property>\n    <property>\n        <name>dfs.datanode.data.dir<\/name>\n        <value>file:\/\/\/usr\/local\/hadoop\/hdfs\/datanode<\/value>\n    <\/property><\/code><\/pre>\n<p>    Gerekli dizinleri olu\u015fturun:<\/p>\n<pre><code class=\"language-bash\">mkdir -p \/usr\/local\/hadoop\/hdfs\/namenode\n    mkdir -p \/usr\/local\/hadoop\/hdfs\/datanode<\/code><\/pre>\n<p>4.  <strong><code>mapred-site.xml<\/code>:<\/strong> MapReduce \u00e7er\u00e7evesini YARN olarak ayarlay\u0131n. (<code>mapred-site.xml.template<\/code> dosyas\u0131n\u0131 <code>mapred-site.xml<\/code> olarak kopyalaman\u0131z gerekebilir)<\/p>\n<pre><code class=\"language-bash\">cp mapred-site.xml.template mapred-site.xml\n    nano mapred-site.xml<\/code><\/pre>\n<p>    <code><configuration><\/code> etiketleri aras\u0131na a\u015fa\u011f\u0131daki XML&#8217;i ekleyin:<\/p>\n<pre><code class=\"language-xml\"><property>\n        <name>mapreduce.framework.name<\/name>\n        <value>yarn<\/value>\n    <\/property><\/code><\/pre>\n<p>5.  <strong><code>yarn-site.xml<\/code>:<\/strong> ResourceManager adresini ve NodeManager ayarlar\u0131n\u0131 yap\u0131land\u0131r\u0131n.<\/p>\n<pre><code class=\"language-bash\">nano yarn-site.xml<\/code><\/pre>\n<p>    <code><configuration><\/code> etiketleri aras\u0131na a\u015fa\u011f\u0131daki XML&#8217;i ekleyin:<\/p>\n<pre><code class=\"language-xml\"><property>\n        <name>yarn.nodemanager.aux-services<\/name>\n        <value>mapreduce_shuffle<\/value>\n    <\/property>\n    <property>\n        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class<\/name>\n        <value>org.apache.hadoop.mapred.ShuffleHandler<\/value>\n    <\/property>\n    <property>\n        <name>yarn.resourcemanager.hostname<\/name>\n        <value>hadoop-master<\/value>\n    <\/property>\n    <property>\n        <name>yarn.nodemanager.vmem-check-enabled<\/name>\n        <value>false<\/value>\n    <\/property>\n    <property>\n        <name>yarn.nodemanager.pmem-check-enabled<\/name>\n        <value>false<\/value>\n    <\/property><\/code><\/pre>\n<p>6.  <strong><code>workers<\/code> (eski <code>slaves<\/code>):<\/strong> Slave Droplet&#8217;lerin hostname&#8217;lerini belirtin.<\/p>\n<pre><code class=\"language-bash\">nano workers<\/code><\/pre>\n<p>    Varsay\u0131lan i\u00e7eri\u011fi silin ve her sat\u0131ra bir slave hostname&#8217;i ekleyin:<\/p>\n<pre><code class=\"language-\">hadoop-slave1\n    hadoop-slave2<\/code><\/pre>\n<h4>Ad\u0131m 6: Yap\u0131land\u0131rmalar\u0131 Slave&#8217;lere Da\u011f\u0131tma<\/h4>\n<p>Master Droplet&#8217;te yapt\u0131\u011f\u0131m\u0131z t\u00fcm Hadoop yap\u0131land\u0131rma de\u011fi\u015fikliklerini slave Droplet&#8217;lere kopyalamam\u0131z gerekiyor.<br \/>\nMaster Droplet&#8217;te <code>hadoopuser<\/code> olarak:<\/p>\n<pre><code class=\"language-bash\">scp \/usr\/local\/hadoop\/etc\/hadoop\/* hadoopuser@hadoop-slave1:\/usr\/local\/hadoop\/etc\/hadoop\/\nscp \/usr\/local\/hadoop\/etc\/hadoop\/* hadoopuser@hadoop-slave2:\/usr\/local\/hadoop\/etc\/hadoop\/<\/code><\/pre>\n<p>Bu komutlar, yap\u0131land\u0131rma dosyalar\u0131n\u0131 slave&#8217;lere kopyalayacakt\u0131r.<\/p>\n<h4>Ad\u0131m 7: HDFS&#8217;i Formatlama (Sadece Master Droplet&#8217;inde &#8211; \u0130lk kez!)<\/h4>\n<p>Bu ad\u0131m, HDFS dosya sistemini ba\u015flat\u0131r. <strong>Bu i\u015flemi sadece k\u00fcme ilk kuruldu\u011funda bir kez yap\u0131n.<\/strong> Mevcut bir k\u00fcmede \u00e7al\u0131\u015ft\u0131rmak, t\u00fcm verileri siler.<br \/>\nMaster Droplet&#8217;te <code>hadoopuser<\/code> olarak:<\/p>\n<pre><code class=\"language-bash\">hdfs namenode -format<\/code><\/pre>\n<p>Ba\u015far\u0131l\u0131 bir formatlama, &#8220;successfully formatted&#8221; mesaj\u0131n\u0131 g\u00f6stermelidir.<\/p>\n<h4>Ad\u0131m 8: Hadoop Servislerini Ba\u015flatma<\/h4>\n<p>Master Droplet&#8217;te <code>hadoopuser<\/code> olarak, t\u00fcm Hadoop servislerini ba\u015flat\u0131n:<\/p>\n<p>1.  <strong>HDFS Servislerini Ba\u015flatma:<\/strong><\/p>\n<pre><code class=\"language-bash\">start-dfs.sh<\/code><\/pre>\n<p>    Bu komut NameNode&#8217;u master&#8217;da ve DataNode&#8217;lar\u0131 slave&#8217;lerde ba\u015flat\u0131r.<br \/>\n2.  <strong>YARN Servislerini Ba\u015flatma:<\/strong><\/p>\n<pre><code class=\"language-bash\">start-yarn.sh<\/code><\/pre>\n<p>    Bu komut ResourceManager&#8217;\u0131 master&#8217;da ve NodeManager&#8217;lar\u0131 slave&#8217;lerde ba\u015flat\u0131r.<\/p>\n<p>3.  <strong>Servislerin \u00c7al\u0131\u015ft\u0131\u011f\u0131n\u0131 Kontrol Etme:<\/strong><br \/>\n    T\u00fcm Droplet&#8217;lerde <code>jps<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak \u00e7al\u0131\u015fan Java s\u00fcre\u00e7lerini g\u00f6rebilirsiniz:<br \/>\n    *   <strong>Master Droplet&#8217;te:<\/strong> <code>NameNode<\/code>, <code>ResourceManager<\/code>, <code>SecondaryNameNode<\/code> s\u00fcre\u00e7lerini g\u00f6rmelisiniz.<br \/>\n    *   <strong>Slave Droplet&#8217;lerde:<\/strong> <code>DataNode<\/code>, <code>NodeManager<\/code> s\u00fcre\u00e7lerini g\u00f6rmelisiniz.<\/p>\n<p>E\u011fer herhangi bir s\u00fcre\u00e7 eksikse, log dosyalar\u0131n\u0131 kontrol edin (<code>\/usr\/local\/hadoop\/logs\/<\/code>).<\/p>\n<h4>Ad\u0131m 9: K\u00fcme Durumunu Kontrol Etme<\/h4>\n<p>Hadoop k\u00fcmenizin durumunu web aray\u00fczleri arac\u0131l\u0131\u011f\u0131yla kontrol edebilirsiniz:<br \/>\n*   <strong>HDFS NameNode UI:<\/strong> Taray\u0131c\u0131n\u0131zdan <code>http:\/\/<MASTER_GENEL_IP_ADRESI>:9870<\/code> adresine gidin. Burada k\u00fcme \u00f6zetini, DataNode&#8217;lar\u0131 ve dosya sistemi bilgilerini g\u00f6rebilirsiniz.<br \/>\n*   <strong>YARN ResourceManager UI:<\/strong> Taray\u0131c\u0131n\u0131zdan <code>http:\/\/<MASTER_GENEL_IP_ADRESI>:8088<\/code> adresine gidin. Burada \u00e7al\u0131\u015fan uygulamalar\u0131, k\u00fcme kaynaklar\u0131n\u0131 ve NodeManager&#8217;lar\u0131 g\u00f6rebilirsiniz.<\/p>\n<p>Ayr\u0131ca, komut sat\u0131r\u0131ndan HDFS raporunu alabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">hdfs dfsadmin -report<\/code><\/pre>\n<p>Bu komut, DataNode&#8217;lar\u0131n durumunu ve depolama kapasitelerini g\u00f6sterecektir.<\/p>\n<h3>Hadoop K\u00fcmesini Test Etme<\/h3>\n<p>K\u00fcmenizin d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in basit HDFS ve MapReduce i\u015flemlerini test edelim.<\/p>\n<p>1.  <strong>HDFS&#8217;te Bir Dizin Olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-bash\">hdfs dfs -mkdir \/user\n    hdfs dfs -mkdir \/user\/hadoopuser<\/code><\/pre>\n<p>2.  <strong>Bir Dosyay\u0131 HDFS&#8217;e Y\u00fckleme:<\/strong><br \/>\n    Yerel bir dosya olu\u015fturun (\u00f6rne\u011fin, <code>test.txt<\/code>):<\/p>\n<pre><code class=\"language-bash\">echo \"Merhaba DigitalOcean Hadoop\" > test.txt<\/code><\/pre>\n<p>    Bu dosyay\u0131 HDFS&#8217;e y\u00fckleyin:<\/p>\n<pre><code class=\"language-bash\">hdfs dfs -put test.txt \/user\/hadoopuser\/<\/code><\/pre>\n<p>3.  <strong>HDFS&#8217;deki Dosyalar\u0131 Listeleme:<\/strong><\/p>\n<pre><code class=\"language-bash\">hdfs dfs -ls \/user\/hadoopuser\/<\/code><\/pre>\n<p>    Y\u00fckledi\u011finiz <code>test.txt<\/code> dosyas\u0131n\u0131 g\u00f6rmelisiniz.<br \/>\n4.  <strong>HDFS&#8217;deki Bir Dosyan\u0131n \u0130\u00e7eri\u011fini G\u00f6r\u00fcnt\u00fcleme:<\/strong><\/p>\n<pre><code class=\"language-bash\">hdfs dfs -cat \/user\/hadoopuser\/test.txt<\/code><\/pre>\n<p>5.  <strong>\u00d6rnek MapReduce \u0130\u015fi \u00c7al\u0131\u015ft\u0131rma (WordCount):<\/strong><br \/>\n    Hadoop, \u00f6rnek JAR dosyalar\u0131yla gelir. WordCount \u00f6rne\u011fini \u00e7al\u0131\u015ft\u0131ral\u0131m:<br \/>\n    \u00d6nce bir giri\u015f dizini olu\u015fturun ve i\u00e7ine \u00f6rnek bir dosya y\u00fckleyin:<\/p>\n<pre><code class=\"language-bash\">hdfs dfs -mkdir \/input\n    echo \"Hadoop DigitalOcean Hadoop Cluster\" > sample.txt\n    hdfs dfs -put sample.txt \/input\/<\/code><\/pre>\n<p>    \u015eimdi WordCount i\u015fini \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">hadoop jar $HADOOP_HOME\/share\/hadoop\/mapreduce\/hadoop-mapreduce-examples-3.3.6.jar wordcount \/input \/output<\/code><\/pre>\n<p>    \u0130\u015f tamamland\u0131\u011f\u0131nda, \u00e7\u0131kt\u0131 <code>hdfs dfs -ls \/output<\/code> komutu ile g\u00f6r\u00fclebilir. \u00c7\u0131kt\u0131 dosyas\u0131n\u0131n i\u00e7eri\u011fini g\u00f6rmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">hdfs dfs -cat \/output\/part-r-00000<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131, kelimelerin frekanslar\u0131n\u0131 g\u00f6stermelidir:<\/p>\n<pre><code class=\"language-\">Cluster\t1\n    DigitalOcean\t1\n    Hadoop\t2<\/code><\/pre>\n<p>    Bu ad\u0131mlar ba\u015far\u0131l\u0131 olursa, Hadoop k\u00fcmenizin temel i\u015flevleri do\u011fru \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131 anlam\u0131na gelir.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>Kurulum s\u0131ras\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri:<\/p>\n<p>*   <strong>SSH Ba\u011flant\u0131 Sorunlar\u0131:<\/strong><br \/>\n    *   <code>ssh-copy-id<\/code> komutunun do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun.<br \/>\n    *   <code>~\/.ssh\/authorized_keys<\/code> dosyas\u0131n\u0131n do\u011fru izinlere sahip oldu\u011fundan emin olun (<code>chmod 600 ~\/.ssh\/authorized_keys<\/code>).<br \/>\n    *   <code>~\/.ssh<\/code> dizininin do\u011fru izinlere sahip oldu\u011fundan emin olun (<code>chmod 700 ~\/.ssh<\/code>).<br \/>\n    *   <code>\/etc\/ssh\/sshd_config<\/code> dosyas\u0131ndaki <code>PermitRootLogin<\/code> ve <code>PasswordAuthentication<\/code> ayarlar\u0131n\u0131 kontrol edin (genellikle <code>no<\/code> olarak ayarlan\u0131r).<br \/>\n*   <strong>Java Versiyonu Uyumsuzlu\u011fu:<\/strong> Hadoop&#8217;un belirli bir Java s\u00fcr\u00fcm\u00fcyle \u00e7al\u0131\u015fmas\u0131 gerekir (OpenJDK 11 veya 8 tavsiye edilir). <code>JAVA_HOME<\/code> ortam de\u011fi\u015fkeninin do\u011fru ayarland\u0131\u011f\u0131ndan ve <code>.bashrc<\/code> dosyas\u0131n\u0131n kaynakland\u0131\u011f\u0131ndan emin olun.<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131 Engellemeleri:<\/strong> DigitalOcean g\u00fcvenlik duvar\u0131 veya i\u015fletim sistemi g\u00fcvenlik duvar\u0131 (ufw) portlar\u0131 engelleyebilir. Gerekli Hadoop portlar\u0131n\u0131 a\u00e7t\u0131\u011f\u0131n\u0131zdan emin olun:<br \/>\n    *   NameNode: 9870 (Web UI), 9000 (RPC)<br \/>\n    *   ResourceManager: 8088 (Web UI)<br \/>\n    *   DataNode: 9866 (Data transfer)<br \/>\n    *   NodeManager: 8042 (Web UI)<br \/>\n*   <strong><code>hdfs namenode -format<\/code> Hatas\u0131:<\/strong> E\u011fer bu komutu daha \u00f6nce \u00e7al\u0131\u015ft\u0131rd\u0131ysan\u0131z ve tekrar \u00e7al\u0131\u015ft\u0131rmaya \u00e7al\u0131\u015f\u0131rsan\u0131z, mevcut verilerin \u00fczerine yazmak isteyip istemedi\u011finizi sorabilir veya hata verebilir. Mevcut bir k\u00fcmeyi formatlamak istemiyorsan\u0131z, bu komutu tekrar \u00e7al\u0131\u015ft\u0131rmay\u0131n. E\u011fer test ama\u00e7l\u0131 s\u0131f\u0131rdan ba\u015flamak istiyorsan\u0131z, NameNode ve DataNode dizinlerini silip tekrar formatlayabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">rm -rf \/usr\/local\/hadoop\/hdfs\/namenode\/*\n    rm -rf \/usr\/local\/hadoop\/hdfs\/datanode\/*\n    hdfs namenode -format<\/code><\/pre>\n<p>*   <strong>Yetersiz Kaynaklar:<\/strong> \u00d6zellikle k\u00fc\u00e7\u00fck Droplet&#8217;lerde bellek veya CPU yetersizli\u011fi sorunlara yol a\u00e7abilir. <code>yarn-site.xml<\/code> i\u00e7inde <code>yarn.nodemanager.vmem-check-enabled<\/code> ve <code>yarn.nodemanager.pmem-check-enabled<\/code> ayarlar\u0131n\u0131 <code>false<\/code> yaparak sanal bellek kontrollerini devre d\u0131\u015f\u0131 b\u0131rakmak bu t\u00fcr sorunlar\u0131 hafifletebilir (ancak \u00fcretim ortamlar\u0131nda dikkatli kullan\u0131lmal\u0131d\u0131r).<br \/>\n*   <strong>Log Dosyalar\u0131n\u0131 Kontrol Etme:<\/strong> Herhangi bir sorunla kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131zda, Hadoop&#8217;un log dosyalar\u0131n\u0131 (<code>\/usr\/local\/hadoop\/logs\/<\/code>) kontrol etmek, sorunun k\u00f6k nedenini anlamak i\u00e7in en iyi yoldur.<\/p>\n<h3>G\u00fcvenlik ve Performans \u0130pu\u00e7lar\u0131<\/h3>\n<p>Kurulumu tamamlad\u0131ktan sonra k\u00fcmenizin g\u00fcvenli\u011fini ve performans\u0131n\u0131 art\u0131rmak i\u00e7in baz\u0131 \u00f6nemli ipu\u00e7lar\u0131:<\/p>\n<p>*   <strong>G\u00fcvenlik Duvar\u0131 Kurallar\u0131n\u0131 S\u0131k\u0131la\u015ft\u0131rma:<\/strong> DigitalOcean g\u00fcvenlik duvar\u0131n\u0131 kullanarak sadece gerekli portlara (SSH i\u00e7in 22, NameNode UI i\u00e7in 9870, ResourceManager UI i\u00e7in 8088) eri\u015fime izin verin. Geri kalan t\u00fcm portlar\u0131 kapat\u0131n. Master&#8217;dan slave&#8217;lere ve slave&#8217;ler aras\u0131nda i\u00e7 ileti\u015fim i\u00e7in \u00f6zel a\u011f IP&#8217;lerini kullan\u0131n ve bu trafi\u011fe izin verin.<br \/>\n*   <strong>SSH Anahtar Tabanl\u0131 Kimlik Do\u011frulama:<\/strong> Parola tabanl\u0131 SSH eri\u015fimini devre d\u0131\u015f\u0131 b\u0131rakarak sadece SSH anahtarlar\u0131yla eri\u015fime izin verin.<br \/>\n*   <strong>Y\u00f6netim \u0130\u00e7in Ayr\u0131 Bir Kullan\u0131c\u0131 Kullanma:<\/strong> Root kullan\u0131c\u0131s\u0131 yerine sudo yetkilerine sahip ayr\u0131 bir kullan\u0131c\u0131 (bizim durumumuzda <code>hadoopuser<\/code>) kullanmak en iyi g\u00fcvenlik uygulamas\u0131d\u0131r.<br \/>\n*   <strong>Yedekleme Stratejileri:<\/strong> NameNode meta verileri (\u00f6zellikle <code>fsimage<\/code> ve <code>edits<\/code> dosyalar\u0131) kritik \u00f6neme sahiptir. D\u00fczenli olarak yedekleme stratejileri olu\u015fturun. DigitalOcean&#8217;\u0131n Snapshot veya Volume Backup \u00f6zelliklerini kullanabilirsiniz.<br \/>\n*   <strong>K\u00fcme \u0130zleme Ara\u00e7lar\u0131:<\/strong> Hadoop&#8217;un kendi web UI&#8217;lar\u0131 d\u0131\u015f\u0131nda, Prometheus, Grafana gibi izleme ara\u00e7lar\u0131n\u0131 entegre ederek k\u00fcmenizin performans\u0131n\u0131 ve sa\u011fl\u0131\u011f\u0131n\u0131 daha detayl\u0131 takip edebilirsiniz.<br \/>\n*   <strong>Droplet Boyutlar\u0131n\u0131 Optimize Etme:<\/strong> \u0130\u015f y\u00fcklerinize g\u00f6re Droplet boyutlar\u0131n\u0131 ayarlay\u0131n. CPU yo\u011fun i\u015fler i\u00e7in daha fazla vCPU, bellek yo\u011fun i\u015fler i\u00e7in daha fazla RAM i\u00e7eren Droplet&#8217;ler se\u00e7in. Disk I\/O performans\u0131 da DataNode&#8217;lar i\u00e7in \u00f6nemlidir. DigitalOcean&#8217;\u0131n General Purpose Droplet&#8217;leri daha y\u00fcksek performans sunabilir.<br \/>\n*   <strong>Hadoop Yap\u0131land\u0131rmas\u0131n\u0131 \u0130nce Ayar Yapma:<\/strong> <code>hdfs-site.xml<\/code>, <code>yarn-site.xml<\/code> gibi dosyalardaki parametreleri i\u015f y\u00fck\u00fcn\u00fcze ve k\u00fcme boyutunuza g\u00f6re optimize edin (\u00f6rn. <code>dfs.blocksize<\/code>, <code>yarn.scheduler.minimum-allocation-mb<\/code>, <code>yarn.nodemanager.resource.memory-mb<\/code>).<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, DigitalOcean Droplet&#8217;leri \u00fczerinde Apache Hadoop 3.x k\u00fcmesini ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde inceledik. DigitalOcean&#8217;\u0131n sa\u011flad\u0131\u011f\u0131 esneklik, maliyet etkinli\u011fi ve kullan\u0131m kolayl\u0131\u011f\u0131 sayesinde, b\u00fcy\u00fck veri i\u015fleme kapasitesine sahip da\u011f\u0131t\u0131k bir ortam\u0131 h\u0131zl\u0131ca aya\u011fa kald\u0131rabilirsiniz.<\/p>\n<p>Bir Hadoop k\u00fcmesi kurmak, b\u00fcy\u00fck veri ekosistemine giri\u015f i\u00e7in \u00f6nemli bir ad\u0131md\u0131r. Bu kurulum, HDFS, YARN ve MapReduce gibi temel Hadoop bile\u015fenlerinin nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 anlaman\u0131za yard\u0131mc\u0131 olacakt\u0131r. DigitalOcean&#8217;\u0131n basit aray\u00fcz\u00fc ve g\u00fc\u00e7l\u00fc altyap\u0131s\u0131, bu karma\u015f\u0131k da\u011f\u0131t\u0131k sistemleri kurma ve y\u00f6netme s\u00fcrecini \u00f6nemli \u00f6l\u00e7\u00fcde basitle\u015ftirmektedir.<\/p>\n<p>Kurulum tamamland\u0131ktan sonra, k\u00fcmenizi daha da zenginle\u015ftirmek i\u00e7in Apache Hive (veri ambar\u0131), Apache Spark (h\u0131zl\u0131 veri i\u015fleme), Apache Pig (veri analizi i\u00e7in \u00fcst d\u00fczey dil) gibi di\u011fer Hadoop ekosistemi projelerini entegre etmeyi d\u00fc\u015f\u00fcnebilirsiniz. Bu ara\u00e7lar, Hadoop&#8217;un temel yeteneklerini geni\u015fleterek daha karma\u015f\u0131k veri analizi ve i\u015fleme senaryolar\u0131na olanak tan\u0131r.<\/p>\n<p>Unutmay\u0131n ki, bir \u00fcretim ortam\u0131nda Hadoop k\u00fcmesi y\u00f6netmek, izleme, hata tolerans\u0131, g\u00fcvenlik ve performans ayarlamalar\u0131 gibi ek uzmanl\u0131k gerektirir. Ancak bu rehber, kendi DigitalOcean tabanl\u0131 Hadoop k\u00fcmenizi olu\u015fturman\u0131z i\u00e7in sa\u011flam bir temel sunmaktad\u0131r. B\u00fcy\u00fck veri yolculu\u011funuzda ba\u015far\u0131lar dileriz!<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"DigitalOcean Droplet&#8217;leri ile Hadoop K\u00fcmesi Kurulumu: Ad\u0131m Ad\u0131m Teknik Rehber\nB\u00fcy\u00fck veri d\u00fcnyas\u0131, g\u00fcn\u00fcm\u00fcz\u00fcn dijital ekonomisinde i\u015fletmel","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":[1401],"tags":[],"class_list":{"0":"post-39268","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-git","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>DigitalOcean Droplet&#039;leri ile Hadoop K\u00fcmesi Kurulumu: Ad\u0131m Ad\u0131m Teknik Rehber - 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\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DigitalOcean Droplet&#039;leri ile Hadoop K\u00fcmesi Kurulumu: Ad\u0131m Ad\u0131m Teknik Rehber\" \/>\n<meta property=\"og:description\" content=\"DigitalOcean Droplet&#039;leri ile Hadoop K\u00fcmesi Kurulumu: Ad\u0131m Ad\u0131m Teknik Rehber B\u00fcy\u00fck veri d\u00fcnyas\u0131, g\u00fcn\u00fcm\u00fcz\u00fcn dijital ekonomisinde i\u015fletmel\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-17T17:40:54+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\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"DigitalOcean Droplet&#8217;leri ile Hadoop K\u00fcmesi Kurulumu: Ad\u0131m Ad\u0131m Teknik Rehber\",\"datePublished\":\"2026-02-17T17:40:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/\"},\"wordCount\":3295,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Git\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/\",\"name\":\"DigitalOcean Droplet'leri ile Hadoop K\u00fcmesi Kurulumu: Ad\u0131m Ad\u0131m Teknik Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-17T17:40:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DigitalOcean Droplet&#8217;leri ile Hadoop K\u00fcmesi Kurulumu: Ad\u0131m Ad\u0131m Teknik Rehber\"}]},{\"@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":"DigitalOcean Droplet'leri ile Hadoop K\u00fcmesi Kurulumu: Ad\u0131m Ad\u0131m Teknik Rehber - 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\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"DigitalOcean Droplet'leri ile Hadoop K\u00fcmesi Kurulumu: Ad\u0131m Ad\u0131m Teknik Rehber","og_description":"DigitalOcean Droplet'leri ile Hadoop K\u00fcmesi Kurulumu: Ad\u0131m Ad\u0131m Teknik Rehber B\u00fcy\u00fck veri d\u00fcnyas\u0131, g\u00fcn\u00fcm\u00fcz\u00fcn dijital ekonomisinde i\u015fletmel","og_url":"https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-17T17:40:54+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\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"DigitalOcean Droplet&#8217;leri ile Hadoop K\u00fcmesi Kurulumu: Ad\u0131m Ad\u0131m Teknik Rehber","datePublished":"2026-02-17T17:40:54+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/"},"wordCount":3295,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Git"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/","name":"DigitalOcean Droplet'leri ile Hadoop K\u00fcmesi Kurulumu: Ad\u0131m Ad\u0131m Teknik Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-17T17:40:54+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-dropletleri-ile-hadoop-kumesi-kurulumu-adim-adim-teknik-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"DigitalOcean Droplet&#8217;leri ile Hadoop K\u00fcmesi Kurulumu: Ad\u0131m Ad\u0131m Teknik Rehber"}]},{"@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\/39268","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=39268"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39268\/revisions"}],"predecessor-version":[{"id":39269,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39268\/revisions\/39269"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=39268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=39268"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=39268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}