HADOOP KURULUMU

Standard

Dökümantasyon da yardımı geçen Hasan Akgün teşekkür’ü bir borç bilirim 😉

HADOOP ÖNCESİ PRE-REQUIREMENTS KURULUMLARI

İlk olarak java jre ve jdk yüklenir. Bunun için:

sudo apt-get install openjdk-7-jre

sudo apt-get install openjdk-7jdk

kurulur. Sonra

java -version
-> denilerek java nın kurulduğu check edilir.

Şimdi hadoop için user açmalıyız.

sudo addgroup hadoop
-> hadoop grubu oluşturuk.

sudo adduser –ingroup hadoop hduser
-> hduser kullanıcı oluşturduk bu kullanıcı hadoop grubuna dahil.

Şimdi SSH configure etmemiz gerekiyor.

Hadoop node ları yönetmek için ssh kullanır.Bunun için ssh yüklememiz lazım:

sudo apt-get install ssh

sudo apt-get install rsync

Şimdi ssh için anahtar çifti yaratacağız.

user@ubuntu:~$ su – hduser

hduser@ubuntu:~$ ssh-keygen -t rsa -P “”

Generating public/private rsa key pair.

Enter file in which to save the key (/home/hduser/.ssh/id_rsa):

Created directory ‘/home/hduser/.ssh’.

Your identification has been saved in /home/hduser/.ssh/id_rsa.

Your public key has been saved in /home/hduser/.ssh/id_rsa.pub.

The key fingerprint is:

9b:82:ea:58:b4:e0:35:d7:ff:19:66:a6:ef:ae:0e:d2 hduser@ubuntu

İkinci satır boş şifreli RSA anahtar çifti yaratıyor. Şimdi bu anahtar çifti için ssh erişimini onaylayalım.

hduser@ubuntu:~$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

Son olarak ssh test edelim.

hduser@ubuntu:~$ ssh localhost

The authenticity of host ‘localhost (::1)’ can’t be established.

RSA key fingerprint is d7:87:25:47:ae:02:00:eb:1d:75:4f:bb:44:f9:36:26.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added ‘localhost’ (RSA) to the list of known hosts.

Linux ubuntu 4.2.0-16-generic #19-Ubuntu SMP Thu Oct 8 15:35:06 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

HADOOP KURULUMU

hduser ile giriş yapılarak aşağıdaki adımlar izlenir.Aşağıdaki linkten hadoop setup dosyaları indirilir.



2.7.2 versiyonunun binary kodunu indiriyoruz. Çıkan linkten dosyalar indirilir.

URL : http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz


Aşağıdaki komut ile kopyalama yapılır.

sudo mv /home/hduser/Downloads/hadoop-2.7.2.tar.gz /usr/local/


cd /usr/local
-> diyerek local e gidilir.Sonra indirdiğimiz tar.gz yi çıkarmak için

sudo tar xzf hadoop-2.7.2.tar.gz
-> sudo yaptığınız userın admin olmasına dikkat edin hduser admin değil !

mv hadoop-2.7.2 hadoop
-> diyerek dosya adını hadoop yapıyoruz.

Dosyayı çıkardıktan sonra yetkisini değiştirmek için

chown hduser:hadoop /hadoop –R
->yaparak özyinelemeli olarak yetkilendirme işlemini yapabiliriz


Hadoop’un çalışması için doğru java pathini görmesi gerekmektedir. Bu yüzden aşağıdaki yolda bulunan hadoop-env.sh jobının içinde JAVA_HOME değerinin güncellemeliyiz.

cd /usr/local/hadoop/etc/hadoop
-> yaparak hadoop folderına gidiyoruz.Sonra hadoop-env.sh modifiye etmek için

nano /hadoop-env.sh
->yapılır.


export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

NOT: Siz burada kendi java home folder path ini yazmanız gerekiyor.

Hadoop şu ana kadar izlediğimiz adımlar Hadoopun çalışmasına yetecektir. Fakat daha etkin kullanım için aşağıdaki konfigürasyon ayarlarınında yapılması gerekmektedir.

Aşağıdaki komutlar ile hadoop.tmp.dir parametresinin ihtiyaç duyduğu dosya create edilir ve yetkilendirilir.

$ sudo mkdir -p /app/hadoop/tmp

$ sudo chown hduser:hadoop /app/hadoop/tmp

$ sudo chmod 750 /app/hadoop/tmp

  • core-site.xml üzerindeki düzenlemeler;

core-site.xml dosyası /usr/local/hadoop/etc/hadoop yolunda bulunmaktadır. Dosyayı editleyerek aşağıdaki scripti iki <configurations> arasına yazıyoruz.

<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property><name>fs.default.name</name>
<value>hdfs://localhost:54310</value>
<description>The name of the default file system. A URI whose
scheme and authority determine the FileSystem implementation. The uri’s scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class. The uri’s authority is used to
determine the host, port, etc. for a filesystem.</description>
</property>


  • mapred-site.xml üzerindeki düzenlemeler;

    mapred-site.xml dosyası /usr/local/hadoop/etc/hadoop yolunda bulunmaktadır. Dosyayı editleyerek aşağıdaki scripti iki <configurations> arasına yazıyoruz.

<property>

<name>mapred.job.tracker</name>

<value>localhost:54311</value>

<description>The host and port that the MapReduce job tracker runs

at. If “local”, then jobs are run in-process as a single map

and reduce task.

</description>

</property>


  • conf/hdfs-site.xml üzerindeki düzenlemeler;

    mapred-site.xml dosyası /usr/local/hadoop/etc/hadoop yolunda bulunmaktadır. Dosyayı editleyerek aşağıdaki scripti iki <configurations> arasına yazıyoruz.

<property>

<name>dfs.replication</name>

<value>1</value>

<description>Default block replication.

The actual number of replications can be specified when the file is created.

The default is used if replication is not specified in create time.

</description>

</property>


Son olarak .bashrc modifiye edelim…Bunun için home folderdaki(/home/kullanıcıAdınız) .bashrc dosyasına aşağıdaki satırları ekleyin.(sizin kurulum yaptığınız java pathi olması lazım…)

export HADOOP_HOME=/usr/local/hadoop

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

 

Herşey tamamsa hadoop başlatabiliriz bunun için

/usr/local/hadoop/sbin/start-all.sh
-> ile hadoop start edilir.


Hadoop start edildikten sonra

jps

komutu ile aşağıdaki hadoop dosyalarının çalışırlığını kontrol etmeliyiz.