Sponsor

Install Hadoop Multi Cluster CentOS 7

Apache Hadoop adalah kumpulan utilitas perangkat lunak open-source yang memfasilitasi penggunaan jaringan multi komputer untuk memecahkan masalah yang melibatkan data dan komputasi dalam jumlah besar. Hadoop merupakan framework perangkat lunak untuk penyimpanan terdistribusi dan pemrosesan data besar menggunakan model pemrograman MapReduce. Awalnya dirancang untuk klaster komputer yang dibangun dari perangkat keras komoditas dan juga digunakan pada kluster perangkat keras kelas atas. Semua modul di Hadoop dirancang dengan asumsi mendasar bahwa kegagalan perangkat keras adalah kejadian umum dan harus ditangani secara otomatis oleh framework.

Persiapan

Arsitektur

  • hadoop02 - 192.168.7.35 - NameNode
  • hadoop03 - 192.168.7.36 - DataNode 
  • hadoop04 - 192.168.7.37 - DataNode 
  • hadoop05 - 192.168.7.38 - DataNode

Setup Server (All Server)

  • Konfigurasi Hostname dan Host masing-masing server
  • $ sudo hostnamectl set-hostname hadoop02 # sesuaikan dengan arsitektur
    $ sudo vi /etc/hosts
    # tambahkan pada akhir baris
    192.168.7.35 hadoop02
    192.168.7.36 hadoop03
    192.168.7.37 hadoop04
    192.168.7.38 hadoop05
    
  • Disable firewall dan SELinux 
  • $ sudo systemctl stop firewalld
    $ sudo systemctl disable firewalld
    $ sudo vi /etc/selinux/config
    # ubah SELINUX menjadi
    SELINUX=disabled
    $ sudo reboot now
    
  • Buat user hadoop 
  • $ sudo useradd hadoop
    $ sudo usermod -aG wheel hadoop
    $ sudo passwd hadoop # set password hadoop
    
  • Konfigurasi Paswordless SSH
  • $ sudo su - hadoop
    $ ssh-keygen -t rsa # kosongkan passphrase / enter sampai selesai
    $ ssh-copy-id hadoop@hadoop02
    $ ssh-copy-id hadoop@hadoop03
    $ ssh-copy-id hadoop@hadoop04
    $ ssh-copy-id hadoop@hadoop05
    
  • Install Java 8 
  • $ sudo yum update
    $ sudo yum install -y epel-release java-1.8.0-openjdk
    
  • Konfigurasi environment variables ~/.bashrc
  • $ vi ~/.bashrc
    # tambahkan pada akhir baris
    export JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which javac)))))
    export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
    export HADOOP_HOME=/usr/local/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 HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
    export HADOOP_OPTS="-Djava.library.path=$HADOOP_COMMON_LIB_NATIVE_DIR"
    export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar
    export YARN_HOME=$HADOOP_HOME
    export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$JAVA_HOME/bin
    $ source ~/.bashrc

Setup NameNode (Master) - 192.168.7.35

  • Download hadoop-3.2.1
  • $ cd ~/
    $ wget https://www-us.apache.org/dist/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz
    $ tar -zxvf hadoop-3.2.1.tar.gz
    $ sudo mv hadoop-3.2.1 /usr/local/hadoop
    $ sudo chown -R hadoop:hadoop /usr/local/hadoop
    $ sudo chmod -R g+rwx /usr/local/hadoop
    
  • Konfigurasi Hadoop Core Site core-site.xml
  • $ cd $HADOOP_HOME/etc/hadoop
    $ vi core-site.xml # core-site.xml
    # tambahkan di dalam tag <configuration>
    ...
    <configuration>
       <property>
          <name>fs.default.name</name>
          <value>hdfs://hadoop02:9000</value>
       </property>
     
       <property>
          <name>dfs.permissions</name>
           <value>false</value>
       </property>
    </configuration>
    ...
    
  • Konfigurasi HDFS hdfs-site.xml
  • $ cd $HADOOP_HOME/etc/hadoop
    $ vi hdfs-site.xml # hdfs-site.xml
    # tambahkan di dalam tag <configuration>...
    <configuration>
       <!-- Setting path direktori namenode -->
       <property>
          <name>dfs.name.dir</name>
          <value>/usr/local/hadoop/data/nameNode</value>
       </property>
    
       <!-- Setting path direktori datanode -->
       <property>
          <name>dfs.data.dir</name>
          <value>/usr/local/hadoop/data/nameNode</value>
       </property>
     
       <!-- Jumlah replikasi -->
       <property>
          <name>dfs.replication</name>
          <value>3</value>
       </property>
    </configuration>
    ...
    
  • Konfigurasi Worker (slave / data node) workers
  • $ cd $HADOOP_HOME/etc/hadoop
    $ vi workers
    #isi dengan list hostname slave / data node
    hadoop03
    hadoop04
    hadoop05
    
  • Copy hadoop direktori ke semua server data node
  • $ sudo scp -R /usr/local/hadoop hadoop03:/usr/local/hadoop
    $ sudo scp -R /usr/local/hadoop hadoop04:/usr/local/hadoop
    $ sudo scp -R /usr/local/hadoop hadoop05:/usr/local/hadoop
    
  • Format HDFS filesystem
  • $ hdfs namenode -format
    

Setup DataNode (Slave) - 192.168.7.[36-38]

  • Atur owner / permission direktori hadoop
  • $ sudo chown -R hadoop:hadoop /usr/local/hadoop
    $ sudo chmod -R g+rwx /usr/local/hadoop
    
  • Konfigurasi Hadoop Yarn Site yarn-site.xml
  • ...
    <configuration>
       <!-- Site specific YARN configuration properties -->
       <property>
          <name>yarn.resourcemanager.hostname</name>
          <value>hadoop02</value>
       </property>
    </configuration>
    ...
    

Start DFS (on NameNode server)

$ start-dfs.sh

Start Yarn (on NameNode server)

$ start-yarn.sh

Check JVM Process

$ jps

Check / List Yarn Node

$ yarn node -list

Running Hadoop Web Monitoring

http://hadoop02:9870

hadoop web monitoring
Hadoop Web Health Check

hadoop data node
Hadoop Data Node Usage

Posting Komentar

0 Komentar