Instalasi dan Konfigurasi Hadoop pada Compute Engine — Google Cloud Platform

Hadoop merupakan framework dalam pengolahan Big Data yang memungkinkan pemrosesan secara terdistribusi terhadap data yang berukuran besar. Yang dimaksud dengan terdistribusi adalah sistem tidak melakukan penyimpanan hanya pada satu disk melainkan dipecah-pecah menjadi beberapa cluster. Sehingga tujuan utama penggunaan Hadoop adalah memungkinkan pengolahan data berukuran besar (Big Data) dapat diproses secara cepat.
Google Cloud Platform atau kita singkat saja GCP merupakan layanan komputasi awan dari google yang menyediakan berbagai macam produk, mulai dari layanan VPS konvensional yang mereka namai Compute Engine, File Storage, Database Server, hingga platform untuk pengolahan data dan kecerdasan buatan.
Sebenarnya GCP mempunya Dataproc yang kira-kira tujuan utamanya sama seperti Hadoop, yaitu memungkinkan pemrosesan data besar secara lebih cepat.
Dalam artikel ini kita akan melakukan konfigurasi Hadoop pada Compute Engine GCP yang memiliki Instance VM dan sudah terinstall Ubuntu Server 18.04 LTS. Memang ini Server VPS Ubuntu biasa, namun jika kita menggunakan Compute Engine ada beberapa hal yang harus disetting, dalam hal ini hanya firewall karena kita belum akan menggunakan domain. Jika menggunakan domain ada hal lain lagi yang harus disetting yaitu VPC Network.
Requirements
Sebelum melakukan instalasi dan konfigurasi, pastikan sudah siap beberapa hal berikut:
- Google Cloud Platform
- Instance Ubuntu 18.04 LTS pada Compute Engine (referensi: https://cloud.google.com/compute/docs/quickstart-linux)
- Konfigurasi remote ssh pada komputer lokal (referensi: https://cloud.google.com/compute/docs/instances/connecting-to-instance)
Registrasi dan Konfigurasi akun GCP dan Compute Engine tidak akan dibahas disini, mungkin akan dibahas di lain kesempatan.
Instalasi & Konfigurasi OpenJDK/Java
Karena Hadoop berada pada ekosistem Java, maka dibutuhkan jdk. Jika sudah terinstall, lewati saja tahap ini.
$ sudo apt update
$ sudo apt-get install default-jdk
$ sudo update-alternatives --config java
Setelah instalasi selesai maka set JAVA_HOME
$ nano /etc/envronment
Lalu tambahkan di baris terakhir:
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/"
Save kemudian, reload dengan cara:
$ source /etc/environment
Cek kembali instalasi path:
$ echo $JAVA_HOME
Pastikan hasilnya mengeluarkan path sesuai dengan lokasi instalasi: JAVA_HOME=”/usr/lib/jvm/java-11-openjdk-amd64/”
Kemudian, cek versi java untuk memastikan Java sudah terinstal dan siap digunakan
$ java --version
Maka hasilnya seperti ini:
openjdk 11.0.7 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu218.04)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing)
Java sudah sukses terinstall 🎉🎉🎉
Instalasi & Konfigurasi Hadoop
Prerequsities
Tambhakna user hadoop, lalu login
$ adduser hadoop
$ su - hadoop
Setelah membuat user akun, dibutuhkan ssh ke localhost, seperti ini
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
Pastikan bisa ssh ke localhost, kemudian exit setelahnya
$ ssh localhost
$ exit
Download Hadoop
Download hadoop dengan menggunakan wget, sesuaikan versi yang dibutuhkan, tapi disini kita akan menggunakan versi 3.1.3.
Sebelum download pastikan sedang berada pada direktori home user hadoop
$ pwd
home/hadoop
Biar rapih :D
Download dengan wget, lalu extract dan rename
$ wget https://downloads.apache.org/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz$ tar xzf hadoop-3.1.3.tar.gz$ mv hadoop-3.1.3 hadoop
Install Hadoop
$ nano ~/.bashrc
Kemudian tambahkan potongan kode berikut pada baris terakhir file .bashrc:
export HADOOP_HOME=/home/hadoop/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
Reload .bashrc
$ source ~/.bashrc
$ export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
Setup file konfigurasi Hadoop
Arahkan ke direktori etc hadoop
$ cd $HADOOP_HOME/etc/hadoop
Edit core-site.xml
$ nano core-site.xml
Tabahkan potongan kode .xml berikut diantara tag <configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
Edit hdfs-site.xml
Sama seperti diatas, tambahkan kode dibawah diantar tag <configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
Edit hdfs-site.xml
Tambhakan diantara tag <configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///home/hadoop/hadoopdata/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hadoop/hadoopdata/hdfs/datanode</value>
</property>
Edit mapred-site.xml
Tambahkan diantara <configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
Terakhir, edit yarn-site.xml
Tambahkan diantara <configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
Lakukan Format nodename
$ hdfs namenode -format
Akan melakukan beberapa proses lalu shuting down.
Menjalankan Hadoop Cluster
Masuk ke direktori:
$ cd $HADOOP_HOME/sbin/
Kemudian eksekusi 2 script dibawah
$ ./start-dfs.sh$ ./start-yarn.sh
Dan hadoop pun sudah bisa berjalan.
Jika dalam menjalan 2 script tersebut tidak bisa berjalan kemungkinan kaena karena konfigurasi ssh default, maka ketikan perintah berikut untuk menyesuaikan:
$ export PDSH_RCMD_TYPE=ssh
Lalu jalankan lagi 2 script di atas, dam hadoop pun bisa di akses pada port 9870 melalui browser ketikan url
http://ip_external_compute_engine:9870/
Tapi jika diakses tetap tidak bisa, maka perlu dilakukan konfigurasi Firewall pada dashboard GCP
Konfigurasi Firewall GCP
Akses halaman firewall GCP pada https://console.cloud.google.com/networking/firewalls/list
Klik button Create Firewall Rule pada section atas

Berikan nama sesuai keinginan, misalnya disini allow-hadoop
- Pada IP range isikan 0.0.0.0/0
- Kemudian pada section Protocols and ports isikan port hadoop yaitu 9870
Kira-kira seperti ini:

Kemudian klik CREATE dan firewall sudah terbuat. Hadoop dapat diakses pada http://external_IP_compute_engine:9870 melalui browser dan hasilnya seperti ini:

Selesai. Hadoop benar-benar sudah berjalan.👏👏👏
Membunuh Service Hadoop
Sebagai pelengkap dari artikel ini. Maka jika ingin melakukan perintah pemberhentian service hadoop, kita hanya perlu melakukan command:
$ ./hadoop/sbin/stop-all.sh
Penutup
Tulisan ini merupakan dokumentasi belajar. Kemungkinan akan banyak kekurangan dan jika ada kekurangan yang perlu disampaikan atau pertanyanaan silakan kontak:
- Email: ajipratama.net@gmail.com
- Linkedin: https://id.linkedin.com/in/aji-pratama-net