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.