Hadoop Cluster Kurulumu

Kurulum 4 adet Linux makinası için anlatılmıştır. Hadoop'un 2.7.3 versionu kullanılmıştır.


1) Şu adresten tar.gz olarak 2.7.3'ü indirin. Ve tüm makinalarınızda ortak bir path'e açın. Ben /home/egcodes/hadoop/ altına açtım hepsini. Ortak path config dosyalarınızı makinalar arasında kopyalarken kolaylık sağlayacaktır. http://hadoop.apache.org/releases.html

2) Datanode'larınızda saklanacak datanın path'ini de kendimiz belirlemek için şimdiden bir dizinde onun için oluşturun. Ben /home/egcodes/hdfs/ olarak ayrı bir dizin oluşturdum.

3) Ben host name yerine ip üzerinden gittim. O yüzden eğer ip kullanarak yapacaksanız bu adımı geçebilirsiniz. Eğer hostname kullanacaksanız önce /etc/hosts üzerinden tüm makinalarınız için ip host çiftlerini tanımlamanız gerekiyor. (Restart gerekebiilyor bu durumda)

4) Tüm makinalarımızın master (namenode)'umuza ve namenode'umuzunda datanode'lara otomatik bağlanması için ssh key paylaşımı yapmamız gerekiyor. Bu işlem için önce master'da ssk-keygen ile key üretip ssh-copy-id ile sıra ile tüm datanode'lara yüklüyoruz. Tam tersini de datanode'lardan namenode'a yapıyoruz. Böylece ssh bağlantısı denediğimizde otomatikman şifre sormadan bağlandığını gözlemlemlemiz lazım.
 $ ssh-keygen (gelen sorulara enter diyerek geçebilrsiniz)
 $ ssh-copy-id userName@ipAddress

5) Şimdi Hadoop'u minimum config değişiklikleri ile ayağa kaldırmak için aşağıdaki dosyaları edit edin.

/home/egcodes/hadoop/etc/hadoop/core-site.xml

<configuration>
    <property>
<name>fs.defaultFS</name>
<value>hdfs://<ipAddress>:9000</value>
    </property>
</configuration>

/home/egcodes/hadoop/etc/hadoop/hdfs-site.xml
  • dfs.replication: 3 datanode için
  • dfs.name.dir: namenode'unuzun meta datasının saklandığı yer
  • dfs.datanode.data.dir: datanode'ların üzerinde datanın saklandığı yer
  • dfs.namenode.datanode.registration.ip-hostname-check: eğer ip ile configure ettiyseniz gerekli yoksa hadoop check etttiğinden start olmuyor
  • dfs.permissions: hdfs üzerinde full erişim herhangi bir dosya dizin izni ile uğraşmak zorunda kalmıyorsunuz
<configuration> 
     <property> 
         <name>dfs.replication</name> 
         <value>3</value> 
     </property>
     <property>
         <name>dfs.name.dir</name> 
         <value>/home/egcodes/hdfs/name</value>
      </property> 
      <property> 
          <name>dfs.datanode.data.dir</name> 
          <value>/home/egcodes/hdfs/data</value> 
      </property> 
      <property>
          <name>dfs.namenode.datanode.registration.ip-hostname-check</name> 
          <value>false</value> 
      </property> 
      <property> 
         <name>dfs.permissions</name> 
         <value>false</value> 
     </property> 
</configuration>

/home/egcodes/hadoop/etc/hadoop/masters
Bu file yok ise create edip master makinanızın (namenode) ip'sini yada hostname'ini girin
172.3.2.1

/home/egcodes/hadoop/etc/hadoop/slaves
Bu file içine datanode'larınızın isim veya ip'lerini girin aşağıdaki gibi
172.3.2.2
172.3.2.3
172.3.2.4


6) /home/egcodes/hadoop/etc/hadoop/ altında üzerinde değişiklik yaptığımız tüm conf'ları diğer makinalarada olduğu gibi kopyalayın.

7) Master(namenode)'a gidip aşağıdaki şekilde init yapıyoruz. Bu işlem hdfs olarak oluşturduğumuz dizinlerde gerekli ayarlamaları yapacaktır.
./home/egcodes/hadoop/bin/hdfs namenode -format

8) Tüm node'larımzıı başlatmak için master'da aşağıdaki komutu çalıştıyoruz.
./home/egcodes/hadoop/sbin/start-dfh.sh

  • Buradan eğer bir hata olduysa gözlemleyip problemleri çözebilirsiniz.
    • /home/egcodes/hadoop/logs/
  • Default olarak namenode'unuzun ip adresi ve bu porttan arayüzüne erişebilirsiniz.
    • http://ipAddress:50070/
  • Client için ise default olarak 9000 portunu kullanır.


No comments:

Post a Comment