Hadoop Kurulumu

Hadoop’un ne işe yaradığından önceki yazımda sizlere bahsetmiştim. Bugün Hadoop nasıl kurulur, bununla alakalı bilgi vermek istiyorum.

Öncelikle Hadoop, GNU / Linux platformu tarafından desteklenmektedir. Bu sebeple, Hadoop ortamını kurmak için bir Linux işletim sistemine ihtiyacımız var. Linux dışındaki bir işletim sisteminiz varsa, bir Virtualbox yazılımı yükleyebilir ve Linux’u Virtualbox’ın içine kurabilirsiniz.

Ön kurulum:

Başlangıçta, Hadoop dosya sistemini Unix dosya sisteminden ayırmak için Hadoop’a ait ayrı bir kullanıcı yaratmanızı öneririm. Bu sayede karmaşanın önüne geçmiş olacaksınız.

Bir kullanıcı oluşturmak için şu adımları uygulayın:

  • ”Su” komutunu kullanarak kök dizini açın.
  • ”Useradd kullanıcı adı” komutunu kullanarak kök hesabından bir kullanıcı oluşturun.
  • Artık “su kullanıcı adı” komutunu kullanarak mevcut bir kullanıcı hesabını açabilirsiniz.

Terminali açıp,aşağıdaki komutları yazalım,

$ su 
   password: 
# useradd hadoop  
# passwd hadoop 
   New passwd: 
   Retype new passwd 

“hadoop” yazan yerleri kendinize uygun biçimde değiştirebilirsiniz.
Ve işte yeni bir kullanıcı yaratmış oldunuz!


SSH Kurulumu ve Anahtar Üretimi

SSH kurulumu, cluster üzerinde başlatma, durdurma işlemleri gibi farklı işlemleri yapmak için gereklidir.
Anahtar üretimi de farklı Hadoop kullanıcılarını doğrulamak için gereklidir.
Hadoop kullanıcıları için ortak veya özel anahtar çifti oluşturulmalıdır. Bu anahtarlar kullanıcılar arasında paylaşılabilir.
Hadoop node’larının yönetilmesi için SSH erişimini ve anahtar üretimini aşağıdaki komutları yazarak sağlamamız gerekiyor.

$ ssh-keygen -t rsa 
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
$ chmod 0600 ~/.ssh/authorized_keys

Java Kurulumu

Hadoop kurulumu için sisteminizde olması gerekenlerden biri de Java’dır. Java’nın bilgisayarınızda kurulu olup olmadığını anlamak için “java -version” komutunu kullanabilirsiniz.

$ java -version

Eğer Java kurulu ise, size kurulu olan versiyon bilgisini görüntülenecektir.

java version "1.7.0_71" 
Java(TM) SE Runtime Environment (build 1.7.0_71-b13) 
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode) 

Eğer Java yüklü değilse aşağıdaki adımları izleyerek kurmanız gerekiyor.

Adım 1:

Öncelikle bu siteye girin, ve sizin işletim sisteminize uygun olan ve uzantısı tar.gz olan dosyayı indirin

http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

Adım 2:

İndirdiğiniz bu dosyayı genelde indirilenler klasörünüzde bulacaksınız. tar.gz şeklindeki zipli bu dosyayı aşağıdaki komutlar ile ziptek çıkartalım.

$ cd Downloads/ 
$ ls 
jdk-7u71-linux-x64.gz 
$ tar zxf jdk-7u71-linux-x64.gz 
$ ls 
jdk1.7.0_71   jdk-7u71-linux-x64.gz 

Adım 3:
Java’yı rahat kullanabilmek için “/usr/local”konumuna taşıyalım. Bunun için kök dizini açıp aşağıdaki komutları yazmalıyız.

$ su 
password: 
# mv jdk1.7.0_71 /usr/local/ 
# exit 

Adım 4:
Şimdi de ~/.bashrc dosyasını açıp JAVA_HOME isimli değişkeni oluşturarak java’nın kurulu olduğu PATH‘i içerisine yazağız. Bu sayede Java’ya erişimimiz kolaylaşmış olacak.
~/.bashrc dosyasını açmak için vim ya da nano gibi metin düzenleyicileri kullanabilirsiniz kullanabilirsiniz. (Eğer bunlar yüklü değilse veya kullanmayı bilmiyorsanız not defteri’nde de düzenleyebilirsiniz)
Ben vim kullanarak açıyorum.

$ vim ~/.bashrc

Açılan doyaya şu komutları kopyalayıp yapıştırıyoruz:

export JAVA_HOME=/usr/local/jdk1.7.0_71 
export PATH=$PATH:$JAVA_HOME/bin 

Sonrasında ESC basıyoruz ve :wq yazıyoruz. Vim’den çıkmış olduk.

Şimdi tüm değişiklikleri geçerli çalışan sisteme uygulamak için aşağıdaki komutu yazın.

$ source ~/.bashrc

Şimdi java -version komutunu tekrar deneyin. Şuan yukarıda yazdığım gibi bir çıktı görüntülemiş olmanız gerekiyor.

Hadoop Kurulumu
Eveeet… Her şey hazırsa hadoop kurulumuna başlayabiliriz.
Aşağıdaki komutları kullanarak hadoop’un istediğiniz sürümünü indirebilirsiniz. Ben 2.7.4 versiyonunu kurdum

$ su 
password: 
# cd /usr/local 
# wget http://apache.claz.org/hadoop/common/hadoop-2.7.4/ 
hadoop-2.7.4.tar.gz 
# tar xzf hadoop-2.7.4.tar.gz 
# mv hadoop-2.7.4/* to hadoop/ 
# exit 

NOT: wget Linux/UNIX komut satırı dosya indirme aracıdır. Eğer wget’e sahip değilseniz ‘Homebrew’ paket yöneticisini kullanarak edinebilirsiniz. (Homebrew kurulumu,
wget kurulumu)

Hadoop Çalışma Modları

Hadoop’u indirdikten sonra, Hadoop cluster’ını desteklenen üç moddan birinde çalıştırabilirsiniz, bunları ihtiyacınıza hangisi uygun olacaksa o şekilde seçin.

1-)Yerel / Bağımsız Mod (Local/Standalone Mode): Sisteminizde Hadoop indirildikten sonra, varsayılan olarak tek başına bir modda yapılandırılır ve tek bir java işlemi olarak çalıştırılabilir.

2-)Pseudo Dağıtılmış Mod (Pseudo Distributed Mode): Tek makinede dağıtılmış bir simülasyon. Hdfs, Yarn, MapReduce vb. Gibi her Hadoop hizmet programı ayrı bir java işlemi olarak çalışacaktır. Bu mod geliştirme için yararlıdır.

3-)Tam Dağılımlı Mod (Fully Distributed Mode ): Bu mod, cluster olarak en az iki veya daha fazla makineye tamamen dağıtılır.

Ben ilk iki modun kurulumunu sizlere anlatacağım.

Yerel / Bağımsız Mod’da Hadoop Kurulumu:

Bu kurulum sağlandığında hadoop tek bir JVM(Java Virtual Machine)’de çalışır. Bağımsız Mod, MapReduce programlarını geliştirme sırasında çalıştırmak için uygundur. Tek JVM ile çalıştığı için test etmek ve hata ayıklamak kolaydır.

Hadoop’u kurma:
Az önce yukarıda JAVA_HOME için ~/.bashrc dosyasında değişiklikler yapmıştık. Aynı işlemi vim ile ~/.bashrc dosyasını açıp, HADOOP_HOME değişkenine hadoop’un PATH’ini aşağıdaki gibi yazıyoruz.

export HADOOP_HOME=/usr/local/hadoop 

Metin düzenleyicinizi kapattıktan sonra tüm değişiklikleri geçerli çalışan sisteme source komutu ile uygulayın.

$ source ~/.bashrc 

Devam etmeden önce, Hadoop’un düzgün çalıştığından emin olalım. Sadece aşağıdaki komutu çalıştırın:

$ hadoop version 

Kurulumda her şey yolunda giderse şu şekilde bir sonuç karşınıza çıkacak:

Hadoop 2.7.4 
Subversion https://svn.apache.org/repos/asf/hadoop/common -r 1529768 
Compiled by hortonmu on 2017-11-06T06:28Z 
Compiled with protoc 2.5.0
From source with checksum 79e53ce7994d1628b240f09af91e1af4 

Bu çıktı, bağımsız modda kurulum işleminin tamamlandığı anlamına gelir. Şuan varsayılan olarak, Hadoop tek bir makinede dağınık olmayan bir modda çalışacak şekilde yapılandırılmıştır.

Pseudo Dağıtılmış Mod’da Hadoop Kurulumu:

Gelelim diğer yöntem olan Pseudo Dağıtılmış Mod’a.
Bu modda kurulan Hadoop, tek bir makinede birden fazla makine varmış gibi simüle ederek, sahte sağıtılmış modda çalışır.

Hadoop Kurulum:

~/.bashrc dosyasına aşağıdaki komutları ekleyerek Hadoop ortam değişkenlerini ayarlayabilirsiniz.

export HADOOP_HOME=/usr/local/hadoop 
export HADOOP_MAPRED_HOME=$HADOOP_HOME 
export HADOOP_COMMON_HOME=$HADOOP_HOME 
export HADOOP_HDFS_HOME=$HADOOP_HOME 
export YARN_HOME=$HADOOP_HOME 
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin 
export HADOOP_INSTALL=$HADOOP_HOME

Şimdi tüm değişiklikleri geçerli çalışan sisteme uygulayın.

$ source ~/.bashrc 

Hadoop Yapıladırması(Hadoop Configuration)

Hadoop’ın bütün yapılandırma dosyaları
“$ HADOOP_HOME / etc / hadoop” dizinindedir.
Bu yapılandırma dosyalarında, Hadoop altyapınıza göre değişiklik yapmamız gerekiyor.

$ cd $HADOOP_HOME/etc/hadoop

Hadoop programlarını java’da geliştirmek için hadoop-env.sh dosyasındaki java ortam değişkenlerini JAVA_HOME değerini sisteminizdeki java konumuyla değiştirerek sıfırlamanız gerekir.

Bunun için yine vim kullanarak hadoop-env.sh dosyasını açıyoruz.

$ vim hadoop-env.sh

içerisine aşağıdaki kodu ekliyoruz.

 export JAVA_HOME=/usr/local/jdk1.7.0_71

Not: jdk1.7.0_71 sizin sisteminizde kurduğunuz sürüme göre değişkenlik gösterebilir.

Hadoop’u yapılandırmak için bir kaç tane dosyayı daha düzenlememiz gerekiyor.
İlk olarak core-site.xml dosyasını vim ile açıyoruz ve tagları arasına aşağıdakileri ekliyoruz. Ve kaydedip çıkıyoruz.

<configuration>

   <property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:9000</value> 
   </property>
 
</configuration>

Sıradaki yapılandıracağımız dosya: hdfs-site.xml.
Hdfs-site.xml dosyası, yerel dosya sisteminizin çoğaltma verisinin, namenode yolunun ve datanode yollarının değeri gibi bilgileri içerir.(namenode ve datanode hakkında hadoop yazımda bilgi vermiştim, oradan öğrenebilirsiniz)
Bu dosyadaki değişikliklerin amacı, Hadoop altyapısını depolamak istediğiniz yeri göstermektir.
Dosyayı açalım ve aşağıdaki kodları tagları arasına yapıştıralım.

<configuration>

   <property>
      <name>dfs.replication</name>
      <value>1</value>
   </property>
    
   <property>
      <name>dfs.name.dir</name>
      <value>file:///home/hadoop/hadoopinfra/hdfs/namenode </value>
   </property>
    
   <property>
      <name>dfs.data.dir</name> 
      <value>file:///home/hadoop/hadoopinfra/hdfs/datanode </value> 
   </property>
       
</configuration>

Not: Yukarıdaki dosyada, tüm pathler kullanıcı tanımlıdır ve Hadoop altyapınıza göre değişiklik yapabilirsiniz.

Sırada yarn-site.xml yapılandırması var,
Yarn nedir diyecek olursanız, onu ayrıntılı açıklarım ama kısaca dağıtık sistemlerde kullanılan bir paket yöneticisi olduğunu bilmenizde fayda var.
yarn-site.xml dosyasını da bir öncekiler gibi yapılandıralım ve kaydedelim.

<configuration>
 
   <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value> 
   </property>
  
</configuration>

Son yapılandırılacak dosya olan mapred-site.xml ‘de sıra.
mapred-site.xml dosyası, hangi MapReduce frameworkünü kullandığımızı belirlemek için kullanılır.
Varsayılan olarak, Hadoop, bir yarn-site.xml şablonunu içerir. Her şeyden önce dosyayı sizdeki mapred-site.xml.template dosyasını koypalayıp ismini mapred-site.xml olarak verin. Bunun için aşağıdakileri yazın:
$ cp mapred-site.xml.template mapred-site.xml

Daha sonra mapred-site.xml dosyasını açın ve tagları arasınaaşağıdakileri yapıştırın. Ardından kaydedin.

<configuration>
 
   <property> 
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>
   
</configuration>

Kurulumumuz nihayet burada bitiyor!
Son bir adım kaldı. O da Kurulumun doğrulanması. Çalışıp çalışmadığını anlamak için aşağıdaki adımları uygulayalım.

Hadoop Kurulum Doğrulama
Adım 1: Name-node Ayarı
Aşağıdaki komutları yazın.

$ cd ~ 
$ hdfs namenode -format 

Şu şekilde bir çıktı göreceksiniz:

10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************ 
STARTUP_MSG: Starting NameNode 
STARTUP_MSG:   host = localhost/192.168.1.11 
STARTUP_MSG:   args = [-format] 
STARTUP_MSG:   version = 2.4.1 
...
...
10/24/14 21:30:56 INFO common.Storage: Storage directory 
/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted. 
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to 
retain 1 images with txid >= 0 
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0 
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************ 
SHUTDOWN_MSG: Shutting down NameNode at localhost/192.168.1.11 
************************************************************/

Adım 2: Hadoop dfs Doğrulama
Aşağıdaki komut, dfs’yi başlatmak için kullanılır. Bu komutu çalıştırdığımızda, Hadoop dosya sistemimiz başlayacaktır.

$ start-dfs.sh 

Beklenen çıktı şu şekildedir:

10/24/14 21:37:56 
Starting namenodes on [localhost] 
localhost: starting namenode, logging to /home/hadoop/hadoop
2.4.1/logs/hadoop-hadoop-namenode-localhost.out 
localhost: starting datanode, logging to /home/hadoop/hadoop
2.4.1/logs/hadoop-hadoop-datanode-localhost.out 
Starting secondary namenodes [0.0.0.0]

Adım 3: Yarn Script Doğrulama
yarn’ı çalıştırmak için kullanacağımız komut:

$ start-yarn.sh 

Beklenen çıktı:

starting yarn daemons 
starting resourcemanager, logging to /home/hadoop/hadoop
2.4.1/logs/yarn-hadoop-resourcemanager-localhost.out 
localhost: starting nodemanager, logging to /home/hadoop/hadoop
2.4.1/logs/yarn-hadoop-nodemanager-localhost.out 

Adım 4: Tarayıcınızdan Hadoop’a Bağlanma
Hadoop’a erişmek için varsayılan port numarası 50070‘dir. Tarayıcınızda Hadoop hizmetleri almak için aşağıdaki URL’yi kullanın.

http://localhost:50070/

Böyle bir ekran sizi karşılayacak.

Adım 5: Cluster için tüm uygulamaları doğrulayın

Clusterlardaki tüm uygulamalara erişmek için varsayılan port numarası 8088’dir. Bu porta aşağıdaki adresi tarayıcınıza yazarak erişebilirsiniz.

http://localhost:8088/

Yukarıdaki gibi bir ekran ile karşılaşacaksınız.
Buradan clusterlarınızdaki tüm uygulamalarınızı kontrol edebilirsiniz.

Hadoop kurulumu ile ilgili öğretici dökümanın sonuna geldik. Umarım faydalı olmuştur. Herkese iyi çalışmalar dilerim.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir