Hadoop 3.2 Multinode Cluster Kurulumu
Hadoop Cluster kurulumu için 4 adet sunucu kullanılmıştır. Hadoop kurulumu single node, pseudo distributed mode ve Multi node Cluster olmak üzere 3 farklı biçimde yapılabilir. Bu makalede multi node cluster kurulumu anlatılmıştır.
192.168.1.10 test01 Namenode
192.168.1.11 test02 Secondary NameNode
192.168.1.12 test03 Datanode
192.168.1.13 test04 Datanode
Gereksinimler :
Sunucular 3GB memory ve 50 gb /data (hdfs depolama alanı olarak kullanılacak) disk alanına sahiptir. Kuruluma başlamadan önce bütün sunucularda firewall servisleri durdurulmalı. /etc/hosts dosyasına hostname tanımları girilmeli. Selinux disable edilmelidir. Aynı zamanda sunucular üzerinde java kurulu olmalıdır.
Sunucularda hadoop user’ı oluşturulur ve Master node ile namenode’ların hadoop user’ı ile şifresiz şekilde ssh yapabilmesi için passwordless-ssh konfigürasyonu yapılır.
[root@test01 ~]# useradd hadoop [root@test01 ~]# passwd hadoop [root@test01 ~]# ssh-keygen [root@test01 ~]# ssh-copy-id hadoop@test02 [root@test01 ~]# ssh-copy-id hadoop@test03 [root@test01 ~]# ssh-copy-id hadoop@test04
Wget komutu ile Namenode olarak kullanılacak sunucuya hadoop kurulum dosyası aşağıdaki gibi indirilir. Arşivden çıkarılan dosyalar yeniden adlandırılır ve /home/hadoop altına taşınır.
[root@test01 ~]# wget https://archive.apache.org/dist/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz [root@test01 ~]# tar -zxvf hadoop-3.2.2.tar.gz [root@test01 ~]# mv hadoop-3.2.2 /home/hadoop/hadoop [root@test01 ~]# chown -R hadoop:hadoop /home/hadoop/hadoop [hadoop@test01 ~]# vi .bash_profile export HADOOP_HOME=/home/hadoop/hadoop export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
$HADOOP_HOME/etc/hadoop/hadoop-env.sh dosyasında hadoop için sistem değişkenleri tutulmaktadır. Bu dosya içerisinde JAVA_HOME değişkeni set edilir.
[root@test01 ~]# vi /home/hadoop/hadoop/etc/hadoop/hadoop-env.sh export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64
$HADOOP/etc/hadoop dizininde yer alan core-site.xml dosyasında HDFS ile ilgili değişkenler ayarlanır. fs.default.name parametresi namenode’un adresini belirtir. Datanode’lar bu adrese heartbeat mesajlarını gönderir ve aynı zamanda bütün hdfs komuları bu namenode adresini referans alır.
<property> <name>fs.default.name</name> <value>hdfs://test01:9000/</value> </property>
$HADOOP/etc/hadoop dizinde yer alan hdfs-site.xml dosyasında HDFS Data ve Name Node’lar için parameter ayarları yapılır. dfs.replication parametresi ile cluster’da tutulacak verinin kaç kopyasının tutulacağı belirlenir.
$HADOOP_HOME/etc/hadoop dizininde mapred-site.xml dosyasında MapReduce işlemleri için . mapreduce.framework.name parametresi yarn olarak ayarlanır. Bu parameter kullanılacak mapreduce framework’ün ayarlanmasını sağlar. (mapreduce – yarn konuları ilerleyen makalelerde anlatılacaktır.)
$HADOOP_HOME/etc/hadoop dizininde yarn-site.xml dosyasında yarn.resourcemanager.hostname parametresi YARN bileşenlerinden Resource Manager’ın hangi node üzerinde çalışacağı bilgisini tutar.
$HADOOP_HOME/etc/hadoop dizininde yer alan workers dosyasına datanode’ların isimleri yazılır.
yarn.nodemanager.resource.memory-mb parametresi tek bir node üzerinde yer alan bir container’ın kullanabileceği memory değerini belirler.
yarn.scheduler.maximum-allocation-mb ve yarn.scheduler.minimum-allocation-mb parametreleri ise Container’ın kullanabileceği maximum ve minimum değerleri belirler.
mapred-site.xml dosyasında yer alan yarn.app.mapreduce.am.resource.mb parametresi ise Application Master’ın kullanacağı memory değerini belirler.
Default değerlerin dışında bir değer verilmek istenir ise yarn-site.xml dosyasında bu değerler ayarlanabilir
Master node için yapılan kurulum /home/hadoop/hadoop dizini datanode’lara taşınır.
scp -r hadoop hadoop@test02:/home/hadoop/.
scp -r hadoop hadoop@test03:/home/hadoop/.
scp -r hadoop hadoop@test04:/home/hadoop/.
Klasik dosya sistemlerinde olduğu gibi HDFS de kullanılmaya başlanmadan önce formatlanır. Bunun için master sunucuda (test01) hdfs namenode –format komutu çalıştırılır.
Format işlemi tamamlandıktan sonra name node üzerinde start-dfs.sh komutu ile cluster servisleri başlatılır. jps komutu servislerin durumu gözlemlenebilir.
stop-dfs.sh komutu ile hdfs servisleri durdurulur.
start-yarn.sh scripti ile yarn servisleri başlatılabilir. Yarn ve hdfs servislerini birlikte başlatmak için start-all.sh komutu kullanılabilir. HDFS servisleri ile birlikte resourcemanager ve nodemanager servisleri de başlatılmış olur.
test01:9870 adresinden hdfs için web arayüzüne erişilebilir. $HADOOP_HOME/logs dizininde servislerin log dosyaları bulunmaktadır.
HDFS cluster kurulumu bu adımla tamamlanır. Bir sonraki yazıda HDFS komutları ve yönetimsel işlemler anlatılacaktır. İyi Çalışmalar
- AWS nedir? – Cloud 101 - Mayıs 16, 2024
- Vector Databases - Mayıs 15, 2024
- Data Dünyası Nereye Gidiyor? - Mayıs 8, 2024