Hadoop Kurulumu (Pseudodistributed)

Hadoop nasil kurulur? Pseudodistributed nasil calisir?

Merhaba,

Size bu yazımda Linux üzerinde Hadoop’u nasıl kurabileceğinizi anlatacağım. Ben şahsen Centos dağıtımı kullanıyorum. Ubuntu içinde aynı kurulumu sorunsuz yapabilirsiniz.

Ön Hazırlık

Öncelikle sisteminizin hadoop için uygun olup olmadığınızı kontrol etmeniz gerekli. Linux dağıtımınızdan tutunda JDK’ya kadar herşey etkili. Eğer uygun JDK mevcut ve sisteme tanımlı ise direk kurulum aşamasına geçebilirsiniz.

Bu sayfa üzerinden uyumlu JDK versiyonunuzu kontrol edebilirsiniz: http://wiki.apache.org/hadoop/HadoopJavaVersions

Ben, java version “1.8.0_11” JDK’yı başarılı olarak kullanıyorum. İşin sırrı son sürümlerden seçmemek.

Şimdi yapılacak işlem ise JAVA_HOME’u sisteme tanıtmak. Centos sistem üzerinde isterseniz /etc/profile.d içinde yeni bir script oluşturun isterseniz benim gibi direk /etc/profile dosyasına ekleyin.

#nano /etc/profile

komutu ile direk profil dosyasını açıp içine jdk versionunuza uygun olarak satırı ekleyin:

JAVA_HOME=/usr/java/jdk1.8.0_11

Path kısmının sonuna ise :$JAVA_HOME/bin şeklinde ekleme yapın:

PATH=$PATH:$JAVA_HOME/bin

Ondan sonra ise export PATH ile başlayan kısmın sonuna JAVA_HOME ekleyin. Logout-login işleminden sonra

$java -version

yazdığınız zaman versiyonunuza uygun olarak aşağıdaki gibi bir sonuç görmeniz gerekmekte:

java version "1.8.0_11"

Java(TM) SE Runtime Environment (build 1.8.0_11-b12)

Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)

Hadoop Kurulumu

Hadoop sayfasından (http://www.apache.org/dyn/closer.cgi/hadoop/common/) istediğiniz versionu indirebilirsiniz. Burada ince bir ayrıntı mevcut. Aşağıdaki tabloyu incelerseniz aralarındaki farkları görebilirsiniz.

Özellik 1.x 0.22 2.x
Güvenli Otorizasyon Evet Hayır Evet
Eski Konfigrasyon İsimleri Evet Deprecated Deprecated
Yeni Konfigrasyon İsimler Hayır Evet Evet
Old MapReduce API Evet Evet Evet
Yeni MapReduce API Evet(Bazı kütüphaneler eksik) Evet Evet
MapReduce 1 (Klasik) Evet Evet Hayır
MapReduce 2 (YARN) Hayır Hayır Evet
HDFS federation Hayır Hayır Evet
HDFS high-availability Hayır Hayır Evet

Size uygun olan versiyonu seçtikten sonra indirme işlemini yapabilirsiniz. Ben YARN(Yet Another Resource Manager) kullanmayı tercih ediyorum.

İndirme işlemini yaptıktan sonra standart kullanıcıların erişebileceği bir klasöre açabilirsiniz.

Dosyaları yerleştirdikten sonra bunları PATH’e eklemek uzun vadede çok işe yarayan bir işlemdir. Bunun için gene profile dosyasını değiştireceğiz.

#nano /etc/profile
HADOOP_HOME=/home/sskapci/hadoop-2.6.0

Burada dosyaların olduğu klasör nerede ise orası gösterilmelidir. Ondan sonra ise:

PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

Şekline getirilmelidir.export PATH’in sonuna ise HADOOP_HOME eklenmelidir.

Bu aşamadan sonra yapılacak son şey Pseudodistributed Mode olarak ayarlamak. Bunun sebebini şimdi açıklayacağım. Aslında Hadoop tek bir makinede mi çalışıyor yoksa her bir iş ayrı makineden mi takip ediliyor ayrımı yapmıyor. Bu sebeple siz bir developer iseniz doğal olarak tek bir makine üzerinden işlem yapıyor olacaksınız. HDFS varsayımsal olarak bir datayı 3 noktaya koyar. Bu tek makinede çalışırken aslında istenen bir durum değildir.

Pseudodistributed Mode Ayarlanması

Hadoop kendi sayfasında bununla ilgili bir açıklaması mevcut. Ben bu ayarları biraz daha farklı yaptım. Hadoop klasürünün içinde “etc/hadoop” klasörünün altında kullanacağımız dört adet xml dosyası mevcut. Bunlar sırasıyla

  • core-site.xml
  • hdfs-site.xml
  • mapred-site.xml
  • yarn-site.xml

dosyalarıdır. Yapacağımız değişiklikler ise aşağıdaki gibidir.

core-site.xml:

 <configuration>

   <property>

     <name>fs.default.name</name>

     <value>hdfs://localhost/</value>

   </property>

 </configuration>

hdfs-site.xml

<configuration>

   <property>

     <name>dfs.replication</name>

     <value>1</value>

   </property>

 </configuration>

mapred-site.xml (Eğer yoksa .template uzantısını silerek oluşturabilirsiniz.)

 <configuration>

   <property>

     <name>mapreduce.framework.name</name>

     <value>yarn</value>

   </property>

 </configuration>

yarn-site.xml

 <configuration>

   <property>

     <name>yarn.resourcemanager.address</name>

     <value>localhost:8032</value>

   </property>

   <property>

     <name>yarn.nodemanager.aux-services</name>

     <value>mapreduce_shuffle</value>

   </property>

 </configuration>

Kurulumun tamamlanması için geriye kalan tek işlem ise ssh ayarlanmasıdır.

SSH Konfigrasyonu

Normal kullanıcı olarak aşağıdaki iki satır komutu çalıştırmak yeterlirdir.

$ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Böylece Hadoop’un şifresiz bir şekilde ssh yapmasını sağlamış olduk. Kontrolünü

$ssh localhost

Yazarak sağlayabilirsiniz. Eğer sorun yoksa direk sizi içeri alacaktır. Artık çalıştırıp sonuçları görelim.

Hadoop’un Çalışması

Öncelikle HDFS dosya sistemini formatlayalım:

$hadoop namenode -format

Daha sonra ise iki satır çalıştırmamız gereklidir:

$start-dfs.sh

$start-yarn.sh

Eğer şu aşamaya kadar hiç bir sorun yaşamadaysanız Java’nın kendi komutu olan çalışan Java işlemlerini gösteren “jps” komutunu çalıştırıdığınızda Hadoop görüyor olmalısınız.

$jps

6818 DataNode

6723 NameNode

7171 ResourceManager

8087 Jps

6954 SecondaryNameNode

Hadoop’un Portları

Eğer portları değiştirmediyseniz aşağıdaki sayfaları ziyaret ederek Hadoop’unuz durumu hakkında bilgi sahibi olabilirsiniz.

HDFS : http://localhost:50070/

YARN : http://localhost:8088/

Hadoop’un Durdurulması

Öncelikle YARN olmak üzere üzere işlemleri durduruyoruz.

$stop-yarn.sh 

$stop-dfs.sh

Leave a Reply

Your email address will not be published. Required fields are marked *