Merhaba arkadaşlar, şimdi Hadoop kurulumu ile ilgili deneyimlerimi paylaşıyor olacağım. Öncelikle belirteyim, işletim sistemimiz CentOS 7. Kurulumumuz buna göre anlatılacak.
Öncelikle kontrol etmemiz gereken java sürümümüz. 1.8.0_45 sürümünden önceki bir sürüm olmaması lazım, eğer varsa kaldırıp yeni sürüme yükseltmemiz gerekiyor. Bunun için java sürümümüzü kontrol edelim. Desktop'ta sağ click yapıp "Open Terminal" diyoruz. Açılan terminal ekranına:
$ java -version
Bir konuyu açıklayayım, buradaki $ işaretini yazmıyorsunuz. Bu normal kullanıcı olduğunuz anlamına geliyor. Eğer root ile bağlanırsanız # işareti gözükür. Bunlarla hangi kullanıcı ile işlem yapacağınız kısa yoldan belirtilmiş oluyor. Standart olarak her Linux anlatımında bu şekilde kullanıldığı için ben de geleneği bozmuyorum.
Benim java versiyonum eski çıktı, şimdi bunu kaldırmamız lazım. Bunun içinde root ile bağlanmamız gerekecek:
$ su
Şimdi de kaldıralım:
# yum remove java-1.7.0-openjdk
Bu işlem esnasında şu satırda sizden onay isteyecek:
# Is this ok [y/N]:
Burada y diyerek enter'a basacaksınız. Kaldırma işleminin bittiğine dair mesaj alacaksınız. Şimdi dizin değiştiriyoruz:
# cd /opt/
Java dosyamızı download ediyoruz:
# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u45-b14/jdk-8u45-linux-x64.tar.gz"
Dosyamızı açıyoruz:
# tar xzf jdk-8u45-linux-x64.tar.gz
Şimdi açtığımız dizine geçiyoruz:
# cd jdk1.8.0_45
Java kurulumu için:
# alternatives --install /usr/bin/java java /opt/jdk1.8.0_45/bin/java 2
# alternatives --config java
Bu komuttan sonra kurulabilecek java listesi sunulacak:
Selection Command
-----------------------------------------------
*+ 1 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64/jre/bin/java
2 /opt/jdk1.8.0_45/bin/java
Enter to keep the current selection[+], or type selection number:
ve bir tanesini girmeniz istenecek. Bizimki en sonuncu olacaktır, isim olarakta /opt/jdk1.8.0_45/bin/java olarak gözükecektir. Bende 2 numara olarak gözüküyor, bu yüzden selection number için 2 giriyoruz.
Bundan sonra da sırası ile şu komutları uyguluyoruz:
# alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_45/bin/jar 2
# alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_45/bin/javac 2
# alternatives --set jar /opt/jdk1.8.0_45/bin/jar
# alternatives --set javac /opt/jdk1.8.0_45/bin/javac
Kurulumumuz başarıyla tamamlandı. Yine de doğrulamak için:
# java -version
Eğer çıktı şu şekilde ise problem yok demektir:
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
Eğer bunu göremiyorsanız muhtemelen bir yerde hata yapmış olmalısınız, lütfen adımları baştan alarak sonuna kadar aynı şekilde uygulayınız.
Java ile son yapacağımız işlem ise envoirment variable'ların ayarlanması işlemidir.
JAVA_HOME'u ayarlayalım:
# export JAVA_HOME=/opt/jdk1.8.0_45
JRE_HOME'u ayarlayalım:
# export JRE_HOME=/opt/jdk1.8.0_45/jre
PATH değişkenini ayarlayalım:
# export PATH=$PATH:/opt/jdk1.8.0_45/bin:/opt/jdk1.8.0_45/jre/bin
Artık java ile ilgili işlemlerimiz tamamlanmış oldu.
Şimdi Apache Hadoop kurulumuna başlayacağız. Önce Hadoop için bir kullanıcı yaratacağız ve konfigürasyonu bu kullanıcı ile yapıyor olacağız:
# useradd hadoopuser
hadoopuser için şifre atayalım:
# passwd hadoopuser
hadoopuser kullanıcısının şifresini hadoop olarak belirledim. Şimdi oluşturduğumuz bu kullanıcının hesabına geçeceğiz:
# su - hadoopuser
Şimdi de Apache Hadoop'u indiriyoruz.
$ wget https://www.apache.org/dist/hadoop/common/hadoop-2.7.0/hadoop-2.7.0.tar.gz
Dosyayı açıyoruz:
$ tar xzf hadoop-2.7.0.tar.gz
Hadoop klasörünü taşıyoruz:
$ mv hadoop-2.7.0 hadoop
Hadoop dosyalarımızı indirdik, bashrc dosyamıza envoirment variable'larımızı yazalım. Yalnız bunları her bir satıra ve hiç boşluk olmadan yazmalısınız. Bunun için vi editörünü kullanacağız, insert işlemi için i karakterine basmanız yeterli:
$ vi ~/.bashrc
export HADOOP_HOME=/home/hadoopuser/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
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
Bu satırları ekledikten sonra kayıt edebilmek için sırası ile:
ESC butonuna basın
:wq!
Yazın ve enter'a basın. Hemen ardından variableları devreye almak için:
$ source ~/.bashrc
Şimdi birde Hadoop için JAVA_HOME envorirment variable'ının eklenmesi gerekiyor. Bunun daha önce tanımladığımız JAVA_HOME variable ile aynı olması gerekiyor. Yine vi editörünü kullanacağız:
$ cd hadoop/etc/hadoop/
$ vi hadoop-env.sh
export JAVA_HOME=/opt/jdk1.8.0_45
Şimdi de core-site.xml dosyasını edit ediyoruz:
$ vi core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
Şimdi de hdfs-site.xml dosyasını editliyoruz:
$ vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///home/hadoopuser/hadoopdata/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hadoopuser/hadoopdata/hdfs/datanode</value>
</property>
</configuration>
Şimdi de mapred-site.xml dosyasını editliyoruz:
$ vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
Şimdi de yarn-site.xml dosyasını editliyoruz:
$ vi yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
İşlemlerimiz bitti sayılır, şimdi bir restart yapalım. Yaptıktan sonra hadoopuser ile terminale bağlanalım ve:
$ cd $HADOOP_HOME
HDFS'i formatlayalım:
$ hdfs namenode -format
Şimdi sbin dizinine geçiyoruz:
$ cd sbin
ve nihayet Hadoop'u başlatıyoruz:
$ start-dfs.sh
$ start-yarn.sh
Artık sistemimiz ayakta, kontrol için:
http://localhost:50070
http://localhost:8088
Bende durum pozitif, başarıyla çalıştırdım. Umarım sizin için de başarılı olur.