Hadoop Yahoo! öncülüğünde geliştirilmiş ardından apache'ye devredilmiş açık kaynak kodlu bir yazılımdır. Şuan için güncel sürüm 3.0.0'dır. Bu yazıda Hadoop 3.0.0 kurulumu anlatılacaktır. Bu yazı a modern story'den esinlenilmiştir. Kurulum sırasında Internet'ten yaklaşık 1 gb dosya indirdiğimizi göz önünde bulundurmayı unutmayın. Öncelikle Hadoop kurabilmek için Mac bilgisayarınızda JDK yüklü olmalıdır. JDK'yı yükledikten sonra Hadoop kurulumuna geçebiliriz. (JDK ~ 400mb) Kurulumun tamamı terminal üzerinden gerçekleşecektir. Bunun için terminal penceresini açıyoruz. Öncelikle Home Brew kurulumunu gerçekleştirmemiz gerekiyor. Home Brew kurulumu için terminal'e aşağıdaki kodları yazıyoruz. (Home Brew ~ 100mb) Kod: $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" Ardından Hadoop kurulumunu gerçekleştiriyoruz. Bunun için de terminale aşağıdaki kodları yazmamız gerekiyor. (Hadoop ~ 700mb) Kod: $ brew install hadoop Eğer bilgisayarınızda JDK yüklü değilse bu aşamada hata alırsınız. JDK'yı yükledikten sonra terminali yeniden başlatmayı unutmayın. Hadoop /usr/local/Cellar/hadoop dizinine kurulacaktır. Güncel 3.0.0 versiyonu bu klasör altında /usr/local/Cellar/hadoop/3.0.0 olarak yer alacaktır. Öncelikle hadoop-env.sh dosyasında bazı değişiklikler yapmamız gerekiyor. Bu dosya /usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop/hadoop-env.sh konumunda yer almaktadır. Dilerseniz terminalden çıkmadan düzenleme işlemini yapabiliriz. Bunu için terminale sırasıyla Kod: cd /usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop/ vi hadoop-env.sh yazdıktan sonra düzenleme editörü açılacaktır. Dilerseniz ayrı bir editör ile de düzenleme işlemi yapılabilmektedir. Pek çok kaynakta aşağıdaki kodu bulun ve başına # (yorum ifadesi) koyarak bu satırı etkisiz hale getirin demektedir. Hadoop 3 ile bu satır zaten pasif olarak geliyor. Eğer hadoop 2.x.x kurulumu gerçekleştiriyorsanız bu adımı yapın değilse atlayın. Kod: export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true" Hemen altına aşağıdaki satırı ekleyin. Kod: export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc=" Daha sonra editörü kapatmak için esc 'ye basıp qw! yazın ve enter'a basın. Diğer düzenleyeceğimiz dosyalar şu şekilde /usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop/core-site.xml konumundaki dosyaya aşağıdaki kodu ekleyin. Bu kodu configration kısmına ekleyin ve 2 kez configration olmadığından emin olun. Kod: <configuration> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/Cellar/hadoop/hdfs/tmp</value> <description>A base for other temporary directories.</description> </property> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration> /usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop/mapred-site.xml konumundaki dosyaya aşağıdaki kodu ekleyin. Bu kodu configration kısmına ekleyin ve 2 kez configration olmadığından emin olun. Bazı kaynaklarda maprep-site.xml dosyasının default olarak bulunmadığı yerine maprep-site.xml.template bulunduğu yazmaktadır. Biz karşılaşmadık ancak karşılaşırsanız siz dosyanın adını da düzeltmeyi unutmayın. Kod: <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9010</value> </property> </configuration> /usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop/hdfs-site.xml konumundaki dosyaya aşağıdaki kodu ekleyin. Bu kodu configration kısmına ekleyin ve 2 kez configration olmadığından emin olun. Kod: <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> Aynı klasöre profile dosyasını oluşturmak için aşağıdaki kodu yazmanız gerekiyor. Kod: vi ~/.profile Ardından editör açılacak bu dosyanın içine aşağıdaki satırları ekledikten sonra kaydediyoruz. Kod: alias hstart="/usr/local/Cellar/hadoop/3.0.0/sbin/start-dfs.sh;/usr/local/Cellar/hadoop/3.0.0/sbin/start-yarn.sh" alias hstop="/usr/local/Cellar/hadoop/3.0.0/sbin/stop-yarn.sh;/usr/local/Cellar/hadoop/3.0.0/sbin/stop-dfs.sh" Bu dosyayı çalıştırmak için de şu komutu yazıyoruz. Kod: $ source ~/.profile HDFS'ye format atıyoruz. (HDFS: Hadoop file system) Diğer bir ifade ile Hadoop'u çalıştırıyoruz. Kod: $ hdfs namenode -format Hadoop ile diğer bilgisayarlara (burada bizim tek bilgisayarımız var) bağlanmak için bir SSH anahtarı oluşturmamız gerekiyor. Bunun için de şu komutu yazıyoruz. Kod: $ ssh-keygen -t rsa Anahtarı aynı klasöre saklayabiliriz. Parola da girdikten sonra 2 boyutlu matris üzerinde SSH oluşuyor. Hemen ardından Ayarlar -> Paylaşım 'a gelip uzak bağlantının (remote login) yanına tik koymayı unutmuyoruz. Bu anahtarı yetkili anahtar olarak SSH'a kaydediyoruz. Kod: $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys SSH'ya bağlanmak için Kod: $ ssh localhost yazıyoruz. Başarılı bağlantıdan sonra bağlantıyı kapatabiliriz. Kod: $ exit Son olarak Hadoop'u çalıştırmak için Kod: $ hstart Hadoop'u durdurmak için de Kod: $ hstop yazabiliriz. Örnek uygulama (yk_example.jar) ektedir. Ekteki uygulamayı çalıştırarak kurulumun başarılı olup olmadığını deneyebilirsiniz. Bu uygulama pi sayısını tahmin etmektedir. Kod: yarn jar yk_example.jar pi 25 25 ve pi sayısı tam olarak doğru olmasa da hesaplandı. Eğer hata alırsanız. "Connection refuse" hatası 9000. porta bağlanamama, remote loginin kapalı olması, firewall engellemesi, ssh anahtarı doğru üretilmemesi kaynaklı olabilir. Hadoop'u hstart yerine elle başlatmanız gerekebilir. Bunun için şunu yazmanız gerekir. Kod: $ hstart $ hdfs dfs -ls /