Günümüzde bir işletme veya bilgisayar gerektiren herhangi bir operasyon, tek bir bilgisayarın yetmeyeceği ölçüde büyüdüğünde, iş yükünü daha verimli yönetmek için birden fazla bilgisayarı tek bir ağ üzerinde çalıştırmaya başlıyoruz. Bu yaklaşım artık o kadar yaygın ki veri bilimi gibi alanlardaki neredeyse tüm işlemler bu ağa bağlı bilgisayarlar tarafından yürütülüyor. Yoğun bilgisayar işlemlerini bu şekilde gerçekleştirmek daha verimli olsa da beraberinde ciddi bir karmaşıklık getiriyor: her bilgisayarı ayrı ayrı yapılandırmanız, ardından tüm ağı süreç boyunca yönetmeniz gerekiyor. İşte bu noktada Hadoop devreye giriyor.
- Apache Hadoop Nedir?
- Hadoop Kullanım Alanları
- Hadoop Mimarisine Genel Bakış
- Ubuntu 20.04'e Hadoop Kurulumu - Adım Adım Rehber
- Ön Koşullar
- Adım 1: Hadoop için Root Olmayan Kullanıcı Oluşturma
- Adım 2: SSH Anahtarlarını Ayarlama
- Adım 3: Ubuntu'ye Hadoop İndirme ve Kurma
- Adım 4: Hadoop Ortamını Yapılandırma
- Adım 5: Yapılandırma Dosyalarını Düzenleme
- Adım 6: HDFS'i Biçimlendirme
- Adım 7: Hadoop Servislerini Başlatma
- Adım 8: Kurulumu Doğrulayın
- Adım 9: Web Arayüzlerine Erişin
- Adım 10: Bir MapReduce Örneği Çalıştırın
- Adım 11: Ortam Değişkenlerini Ayarlayın
- Sonuç
- SSS
Hadoop, Apache tarafından yayımlanan bir araçlar ve programlar paketidir. Bir grup bilgisayarı ağa bağlama sürecinin çok daha verimli ve kolay yürütülmesini sağlar. Bu makalede Hadoop'u ele alacak, kullanım senaryolarını inceleyecek, artılarını ve eksilerini değerlendirecek ve gelişmiş mimarisine genel bir bakış sunacağım. Ardından 2024 Hadoop eğitimini tamamlamak için Ubuntu 20.04 üzerine Hadoop kurulumunu adım adım anlatacağım.
Apache Hadoop Nedir?
Apache tarafından geliştirilen bir araçlar paketi olan Hadoop, 15 yılı aşkın süredir ağ kurulumunu ve kullanımını dönüştürüyor. Kullanıcılar, Hadoop'un kaynak verimliliğinden yararlanarak mevcut hesaplama güçlerini pahalı donanım yükseltmelerine gerek kalmadan yoğun işler için kullanabilir. Paket; HDFS, YARN, MapReduce ve Hadoop Common olmak üzere her biri belirli kullanım senaryoları için tasarlanmış dört modülden oluşur.
Hadoop'un temel gücü, hem bireysel kullanıcıların hem de kuruluşların mevcut hesaplama kapasitelerini tek bir birleşik yapıya dönüştürmesini sağlamasında yatıyor. Bu sayede ciddi hesaplama zorluklarının üstesinden gelinebiliyor. Hadoop olmadan bu yapıların, giderek daha güçlü bilgisayarlar satın alma gibi maliyetli bir yola başvurması gerekirdi.
Hadoop Kullanım Alanları
Hadoop'un ne olduğunu artık biliyoruz. Peki kullanım senaryoları gerçek dünyada tam olarak nasıl işliyor? Bir programı teorik olarak anlamak değerli olmakla birlikte, onu gerçek bir operasyonun parçası olarak uygulamada görmekle kıyaslanamaz. Bu nedenle Hadoop eğitimine geçmeden önce birkaç örnek paylaşacağım.
Risk Analysis Riski Analizi
Daha önce de belirtildiği gibi Hadoop, tek bir ağ birimi olarak çalışan birden fazla bilgisayarın gücünü bir araya getirerek büyük veri kümelerini normalden çok daha hızlı işlemenizi ve analiz etmenizi sağlar. Her işletmede analiz ve hesaplama gerektiren riskler vardır; Hadoop bu noktada son derece işe yarar. Nitekim pek çok köklü hastane, farklı tedavilerin risklerini değerlendirmek ve hastalara yönelik operasyonların olası sonuçlarını ile istatistiklerini tahmin etmek için Hadoop'u kullanmaktadır. Hadoop'un sağlık sektöründeki rolü hakkında daha fazla bilgi edinebilirsiniz.
Güvenlik İhlallerini Tespit Etme
Bir ağdaki veya işletmedeki bağlı cihaz sayısı arttıkça potansiyel güvenlik açıklarının sayısı da artıyor. Hadoop'un temel kullanım alanlarından biri, büyük veri kümelerini analiz ederek sistemin tamamını değerlendirmek ve olası zayıf noktaları ortaya çıkarmaktır.
İnceleme Eşleştirmesi
Pek çok işletme, ürünlerini geliştirmek veya yeni pazar stratejileri oluşturmak için kullanıcı yorumlarına dayanır. Büyük bir yorum veritabanını insan eliyle taramak çok uzun sürer; ancak Hadoop, ağa bağlı bilgisayarlar aracılığıyla bu işi çok daha kısa sürede tamamlar.
Pazar Analizi
Pazar stratejilerinden bahsetmişken, yorum analizinin gerektirdiği kaynaklar; yeni bir ürünün pazardaki potansiyelini değerlendirmek için gereken kaynaklarla kıyaslandığında oldukça mütevazı kalır. Hadoop bu noktada da öne çıkıyor: Küçük ve büyümekte olan işletmeler bile birkaç bilgisayar kullanarak pazarı makul bir süre içinde verimli biçimde analiz edebiliyor.
Log Dosyalarını Analiz Etme
İşletmeler büyüdükçe kullandıkları yazılım sayısı da artıyor ve bu durum beraberinde daha fazla hata ve sorun noktası getiriyor. Log dosyalarını yönetmek ve sorunları gidermek başlı başına bir iş haline geliyor. Hadoop sayesinde birkaç basit protokolle log dosyaları hızlıca incelenip değerlendirilebiliyor ve hatalar tespit edilerek ortadan kaldırılabiliyor.
Hadoop'un daha pek çok kullanım senaryosu ve uygulaması bulunuyor; ancak makalenin odağını korumak adına bunları daha fazla ele almayacağız.
Hadoop Mimarisine Genel Bakış
Hadoop'u ve genel kullanım senaryolarını duymuş olabilirsiniz. Duymadıysanız da bu makale şimdiye kadar size gerekli bilgiyi sunmuştur. Şimdi Hadoop'un gerçekte nelerden oluştuğunu ve her bir parçasının diğerleriyle nasıl çalıştığını daha ayrıntılı biçimde incelemeniz gerekiyor. Daha önce belirtildiği gibi Hadoop'un dört genel katmanı vardır. Bu Hadoop eğitimi bölümünde HDFS (Hadoop Distributed File System), YARN (Yet Another Resource Negotiator), MapReduce ve Hadoop Common hakkında daha fazla bilgi edineceğiz. Hadoop Common'ın açıklanması gereken çok fazla özelliği olmadığından, temel bilgileri şu şekilde özetlenebilir: Zookeeper. Bu bölümde, Ubuntu 20.04 üzerine Hadoop kurulumuna geçmeden önce gelişmiş Hadoop mimarisini, ekosistemini ve dört bölümünü sade bir dille aktarmaya çalışacağım.
HDFS
Hadoop ekosistemindeki HDFS, tüm Hadoop alt sistemleri ve uygulamalarının veriyi erişmek, aktarmak ve depolamak için kullandığı genel depolama sistemini oluşturur. HDFS mimarisinin temel noktası şudur: Hadoop'un kendisinin aksine açık kaynaklı olmayan HDFS, tek bir Hadoop kümesinin tüm alt düzey işlemlerini yürüten dosya sistemidir. HDFS son derece dayanıklı bir dosya sistemidir; veri kümelerini 128 MB'lık parçalara böler ve sıralı işlemler için optimize eder.
HDFS'nin Hadoop yazılımındaki birincil rolü, tüm veriyi genel bir veri rafı olarak sunmaktır. Bu veri daha sonra farklı namenode'lar ve ikincil raflar aracılığıyla veri analizi operasyonunuzu düzenlemek için alt bölümlere ayrılabilir. Journal raf, QJM, HA, fsimage ve edit log dosyaları ile genel legend log gibi diğer seçenekleri kullanarak operasyonlarınızı takip edebilir ve çeşitli görevleri gerçekleştirebilirsiniz.
YARN
YARN, Hadoop'un bir diğer yönetim katmanıdır. Hadoop ekosistemi içindeki belirli uygulamalara istenen miktarda hesaplama kaynağı atamak için kullanılır. Temel olarak, bir kaynak yöneticisi aracılığıyla istemcilere bu kaynakları farklı node'lar üzerinden farklı görev ve uygulamalara dağıtma imkânı sunar. HDFS'dekine benzer şekilde YARN'da da ayrılmış tüm kaynakları ve işlemleri takip etmenizi sağlayan bir legend bulunur. YARN kendi içinde üç alt bölüme ayrılır: Resource Manager, Application Master ve Node Manager.
Bu üç alt bölümün her biri sırasıyla küme, uygulama ve node başına yeni bir örnek oluşturur. YARN ile yalnızca kaynakları farklı görevlere atamakla kalmaz, aynı zamanda gelişmiş algoritmik iş akışları oluşturmak için bu kaynakların zamanla nasıl değişeceğini de planlayabilirsiniz. YARN yalnızca kendi alt bölümleriyle sınırlı değildir; kaynakları tahsis etmek ve genel operasyonunuzu değerlendirmek için YARN'ı HDFS ve Zookeeper gibi diğer mimari katmanlarla birlikte kullandığınız pek çok durum olacaktır.
Hadoop MapReduce
Hadoop MapReduce, Hadoop ekosisteminin bir diğer önemli bileşenidir. Ubuntu üzerine Hadoop kurduktan sonra bu özelliği kullanarak büyük bir veri kümesini birden fazla bilgisayara dağıtılmış biçimde analiz ettirebilirsiniz. Hadoop MapReduce temelde şöyle çalışır: programa büyük bir veri haritası girdi olarak verirsiniz. Bu veri haritası karıştırılır, parçalara ayrılır ve ağa bağlı bilgisayarlara dağıtılır. Ardından reducer adı verilen protokoller aracılığıyla veri en temel bileşenlerine indirgenir. Bu işlemlerin her biri bir Job olarak adlandırılır.
Diyelim ki MapReduce ile analiz etmek istediğiniz veri haritası üç kelimeli bir cümle. Bu cümlenin "Bear Hunt Rabbit" olduğunu varsayalım. Hadoop MapReduce bu cümleyi her biri tek bir kelime içeren üç ayrı parçaya böler, ardından bu kelimeleri diğer işlerinizden gelen benzer veri girdileriyle birleştirerek gereksiz verilerin ayıklandığı, tek tip ve kolayca analiz edilebilir bir veri kümesi oluşturur.
Zookeeper
Zookeeper, Hadoop ekosisteminin bir alt bileşenidir ve Hadoop 2.0 sürümüyle birlikte yaygın kullanıma girmiştir. Temel işlevi, tek bir Hadoop örneği içinde yürütülen farklı operasyonlar arasındaki koordinasyonu sağlamaktır. Bu nedenle Zookeeper, neredeyse her zaman YARN'ın Resource Manager'ı ve HDFS'nin çeşitli özellikleriyle birlikte kullanılır. Bu operasyonlardaki başlıca rolü, olası hata noktalarını tespit edip gidermektir. Bunun için iki farklı araçtan yararlanır: ZKFailoverController ve Zookeeper Quorum.
Bu süreçte, Hadoop mimarisinin diğer bileşenleri tarafından yönetilen veri düğümleri, kullanıcı tarafından denetlenen aktif namenode'lar olarak sınıflandırılır. Ardından bu namenode'ların her biri, Zookeeper'ın söz konusu iki alt bölümünde incelenir. Bu incelemenin amacı, sorunlu alanları tespit etmek ve olası hataları önceden belirlemektir.
Hadoop'u Ubuntu 20.04'e Kurma – Adım Adım Kılavuz
Son olarak, Hadoop mimarisini öğrendikten sonra bu Hadoop eğitiminin asıl konusuna geliyoruz: Hadoop'u Ubuntu 20.04'e nasıl kuracağız. Adım adım kurulum kılavuzuna geçmeden önce ön koşulları ele alalım. Bu kılavuzun Ubuntu 18.04 için de geçerli olduğunu belirtmek gerekir.
Ön Koşullar
Hadoop'u Ubuntu üzerine kurmak için gereken ön koşullar oldukça basittir. Tek ihtiyacınız olan şey, root erişimine sahip olduğunuz Ubuntu tabanlı bir bilgisayardır; bu erişim yerel olabileceği gibi bir VPS sunucusu aracılığıyla uzaktan da sağlanabilir. Yazılım ön koşulları açısından, Java 11 ve SSH'nin sisteminizde kurulu olduğundan emin olun. Kurulu değillerse, aşağıdaki komutları sırayla çalıştırın:
sudo apt update && sudo apt upgrade -y
sudo apt install openssh-server openssh-client -y
sudo apt install openjdk-11-jdk -y
Lisans konusunda endişelenmenize gerek yok; Hadoop ücretsiz ve açık kaynaklıdır. Gerekli olan her şey bu kadar. Haydi birinci adıma geçelim.
Adım 1: Hadoop için Root Olmayan Kullanıcı Oluşturma
Hadoop için root olmayan bir kullanıcı oluşturun. Bu adım, Hadoop'u indirip kurmadan önce tamamlanması gereken ön yapılandırmaların bir parçasıdır:
sudo adduser hdoop
su - hdoop
Adım 2: SSH Anahtarlarını Ayarlama
Şimdi Ubuntu üzerine Hadoop kurulumu için az önce oluşturduğunuz Hadoop kullanıcısını kullanacak ve bu kullanıcıyla bir SSH bağlantısı kuracaksınız. SSH anahtar çiftini oluşturup kaydetmek için şu komutu çalıştırın:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
Anahtarlar oluşturulduktan sonra, aşağıdaki komut onları şu şekilde işaretlemenizi sağlar: authorized_keys ve bunları SSH dizininize kaydedin:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Şimdi SSH bağlantınızın gerekli tüm izinlere sahip olduğundan emin olmak için şu komutu kullanın:
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
Değişiklikleri onaylayın; bundan sonra oluşturduğunuz kullanıcıyla localhost'a her zaman kolayca bağlanabileceksiniz:
ssh localhost
Adım 3: Ubuntu'ye Hadoop İndirme ve Kurma
Ziyaret edebilirsiniz Apache Hadoop websitesi sürüm listesini ve son değişiklik notlarını görmek için. İstediğiniz sürümü seçin; açılan bağlantıyı aşağıdaki komutla kullanarak Hadoop'u Ubuntu üzerine indirip kurabilirsiniz. Bu örnekte 3.3.6 sürümünü seçiyorum. Gerekirse '3.3.6' yerine en güncel kararlı sürümü yazın:
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
İndirme tamamlandıktan sonra, dosyayı çıkartıp kurulumu tamamlamak için şu komutu çalıştırın:
tar xzf hadoop-3.3.6.tar.gz
sudo mv hadoop-3.3.6 /usr/local/hadoop
sudo chown -R hdoop:hdoop /usr/local/hadoop
Adım 4: Hadoop Ortamını Yapılandırma
Ayarla JAVA_HOME in /usr/local/hadoop/etc/hadoop/hadoop-env.sh:
echo 'export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")' | sudo tee -a /usr/local/hadoop/etc/hadoop/hadoop-env.sh
Adım 5: Yapılandırma Dosyalarını Düzenleme
Hadoop'un XML yapılandırma dosyalarını küme ayarlarınızla güncelleyin.
nano /usr/local/hadoop/etc/hadoop/core-site.xml
Adım 6: HDFS'i Biçimlendirme
Hadoop dosya sistemi ad alanını başlatın.
/usr/local/hadoop/bin/hdfs namenode -format
Adım 7: Hadoop Servislerini Başlatma
HDFS ve YARN servislerini başlatın.
/usr/local/hadoop/sbin/start-dfs.sh
/usr/local/hadoop/sbin/start-yarn.sh
Adım 8: Kurulumu Doğrulayın
Java işlemlerini kontrol ederek Hadoop'un çalıştığını doğrulayın.
jps
Adım 9: Web Arayüzlerine Erişin
Hadoop'un NameNode ve ResourceManager arayüzlerine web tarayıcısından erişin.
NameNode: http://localhost:9870
ResourceManager: http://localhost:8088
Adım 10: Bir MapReduce Örneği Çalıştırın
Kurulumu doğrulamak için örnek bir MapReduce işi çalıştırın.
/usr/local/hadoop/bin/hdfs dfs -mkdir /input
/usr/local/hadoop/bin/hdfs dfs -put localfile.txt /input
/usr/local/hadoop/bin/hadoop jar
/usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar grep /input /output 'dfs[a-z.]+'
/usr/local/hadoop/bin/hdfs dfs -cat /output/*
Adım 11: Ortam Değişkenlerini Ayarlayın
Hadoop Ekle bin ve sbin dizinlerini sistem PATH'ine ekleyin.
echo 'export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin' >> ~/.bashrc
source ~/.bashrc
Hepsi bu kadar! Ubuntu 20.04 üzerinde Apache Hadoop'u başarıyla yapılandırıp kurdunuz!
Sonuç
Özetle, Ubuntu 20.04 üzerine Hadoop kurulumu; dikkat ve sabır isteyen, ayrıntılara özen göstermeyi gerektiren kapsamlı bir süreçtir. Bu kılavuzdaki adımları izleyerek Ubuntu kullanıcıları, Hadoop'un güçlü özelliklerinden yararlanabilir ve veri analitiği çalışmalarının tüm potansiyelini ortaya çıkarabilir.
Hadoop'u yalnızca öğrenmek ve denemek amacıyla kullanacaksanız, tek düğümlü ve sınırlı dağıtım olarak kurmanızı öneririm. Bu amaç için bir VPS fazlasıyla yeterli olacaktır. Cloudzy size pek çok farklı seçenek sunar: Linux VPS hizmetleri güvenilir ve sağlam bir Ubuntu VPS Aylık yalnızca 4,95 dolardan başlayan fiyatlarla, 12'den fazla lokasyon ve 7/24 destek seçeneğiyle kendi Ubuntu VPS'nizi edinebilirsiniz. Kısa sürede yapılandırarak Hadoop öğrenmek için ideal bir ortama kavuşabilirsiniz.
Açık Fark
Linux tabanlı sunucuların büyük çoğunluğu Ubuntu kullanıyor; siz neden kullanmıyorsunuz? Ubuntu'yi bu kadar popüler yapan şeyleri keşfedin ve optimize edilmiş bir Ubuntu VPS edinin.
Ubuntu VPS'nizi alınSSS
HDFS ile MapReduce arasındaki farklar nelerdir?
Her ikisi de Hadoop ekosisteminde yer alsa da farklı işlevler üstlenir. HDFS, verilere erişimi kolaylaştıran dağıtık bir dosya sistemi olarak çalışır. MapReduce ise büyük veri kümelerini parçalara ayırarak verimli biçimde analiz etmek için kullanılır.
Hadoop bir veritabanı mıdır?
Hadoop bir veritabanı değildir; ancak bu yanılgı oldukça yaygındır. Hadoop, birbiriyle bağlantılı bilgisayarlardan oluşan bir ağ üzerinde büyük hacimlerdeki verilerin depolanmasını ve işlenmesini sağlayan dağıtık bir dosya sistemidir. Geleneksel bir veritabanı sisteminin doğrudan yerine geçmesi için uygun değildir.
Hadoop'un dört temel bileşeni nelerdir?
Hadoop dört temel bileşenden oluşur: HDFS (Hadoop Distributed File System), YARN (Yet Another Resource Negotiator), MapReduce ve Hadoop Common. Bunlara ek olarak bazı kaynaklar ZooKeeper'ı da bir bileşen olarak değerlendirse de resmi olarak bu şekilde tanımlanmamaktadır.
Hadoop genellikle nerede kullanılır?
Hadoop, büyük ölçekli verilerin yönetilmesi, depolanması, işlenmesi ve analiz edilmesinin kritik önem taşıdığı pek çok alanda kullanılır. Orta ölçekli işletmelerden hastanelere, büyüyen girişimlere kadar farklı yapılara veri odaklı çözümler sunar.