Kali ini saya akan membahas tentang implementasi Hadoop. Hadoop merupakan sebuah ekosistem untuk analisa data dalam ukuran masif, dengan memanfaatkan computing power dari beberapa server yang bekerja secara terdistribusi. Sebenarnya masih banyak pro-kontra tentang penggunaan Hadoop. Saya termasuk yang sebenarnya kurang berminat dengan implementasi Hadoop, karena alasan investasi di mesin server yang terbilang cukup mahal, apalagi jika implementasinya ditambahkan dengan pembelian appliance dari vendor-vendor data analysis.
Untuk appliance, sebenarnya kita dapat membangun sendiri, namun untuk perusahaan-perusahaan besar umumnya mempercayakan urusan support dan maintenance ke pihak ke-tiga. Tak lain, agar mereka mendapat jaminan layanan yang bisa dihandalkan. Namun, jika anda penasaran (termasuk saya), anda bisa mencoba sendiri untuk membangun ekosistem server berbasis Hadoop. Mungkin anda juga bertanya, apakah ada appliance yang 'free'? jawabnya ada, Anda bisa mencoba appliance dari Bitnami, namun belum selengkap appliance-appliance yang berlisensi. Dan, kalaupun anda ingin mencoba appliance yang berlisensi, anda bisa mencoba secara cuma-cuma dari vendor-vendor berikut: Hortonworks, MapR, dan Cloudera.
Pada post kali ini, saya mencoba untuk berbagi langkah-langkah instalasi ekosistem Hadoop, diawali dengan single node server, sampai dengan multi node server. Alasan saya menulis ini juga dikarenakan masih sedikitnya tutorial instalasi Hadoop berbahasa Indonesia.
Strategi Instalasi
Terdapat beberapa cara instalasi:
1. Anda unduh appliance yang sudah "jadi" dari vendor yang saya sebutkan sebelumnya (termasuk dari Bitnami)
2. Anda build and install dari repo Apache.
3. Anda install ekosistem Hadoop dari Ambari management platform
Saya pilih opsi no 3, karena dengan Ambari kita dapat dengan mudah memonitor resource dan melakukan konfigurasi, dengan hanya sedikit bersusah payah untuk melakukan setting dengan cara scripting (lihat Gambar 1).
Gambar 1 Interface Administrasi Server Hadoop melalui Ambari
Sistem Operasi
Sayangnya, Ambari secara resmi hanya mendukung untuk dijalankan di atas platform Linux, itupun terbatas kepada beberapa distro saja: RedHat (5,6,7), Centos (6, 7), SuSE (11), dan Ubuntu (12, 14). Saya pilih distro Centos, karena ada opsi minimum installation. Anda bisa unduh di sini. Untuk Host OS juga bebas, di sini saya menggunakan Ubuntu 16.04 LTS.
Virtual Machine
Karena keterbatasan mesin PC, saya melakukan instalasi Ambari dan Hadoop di beberapa VM, untuk pilihan VM anda bisa gunakan baik itu VirtualBox ataupun VMWare, bebas. Yang harus diperhatikan adalah besarnya RAM yang diperlukan. Untuk berjalan secara 'normal', guest OS butuh minimal RAM 6 GB (ini setelah membaca beberapa artikel blog dan forum), sisanya, paling tidak 4 GB untuk host OS. Jumlah core prosesor setidaknya butuh dua core. Untuk storage, saya pasang 35 GB, memang belum bisa dibilang Big Data, apalagi untuk real case, tapi setidaknya sudah cukup untuk sekedar belajar.
Lakukan instalasi OS dengan pilihan fitur-fitur standar, tidak ada setting khusus di sini.
Konfigurasi Network
Network memegang peranan vital dalam implementasi ekosistem Hadoop. Terutama untuk administrasi server, yang akan sangat merepotkan jika tidak ada persiapan network yang cukup baik. Selain itu, komunikasi antar master-slave (Gambar 2) dan client mengharuskan beberapa konfigurasi server seperti secure remote (ssh), FQDN hostname, dan NTP.

Gambar 2 Arsitektur Master - Slave Hadoop (Sumber: Hortonworks)
Guest OS (Master merangkap Slave)
Yang pertama harus dilakukan adalah setup SSH setelah instalasi guest OS selesai. Secara default, Centos (minimun install) belum menyediakan SSH Server. Untuk itu jalankan script berikut ini dari terminal guest OS:
+++++++++++++++++++++++++++++++++++++++++++
>su - #change user ke root dulu
>yum -y install openssh-server openssh-clients
+++++++++++++++++++++++++++++++++++++++++++
Setelah itu, jalankan ssh server:
+++++++++++++++++++++++++++++++++++++++++++
>service sshd start
+++++++++++++++++++++++++++++++++++++++++++
Langkah kedua adalah pastikan IP Address dari Guest OS sudah tersedia dengan menjalankan perintah ifconfig.
+++++++++++++++++++++++++++++++++++++++++++
>ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:6C:7F:F0
inet addr:192.168.39.129 Bcast:192.168.39.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe6c:7ff0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:21932 errors:0 dropped:0 overruns:0 frame:0
TX packets:27368 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6231963 (5.9 MiB) TX bytes:22355142 (21.3 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:792438 errors:0 dropped:0 overruns:0 frame:0
TX packets:792438 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:814715865 (776.9 MiB) TX bytes:814715865 (776.9 MiB)
+++++++++++++++++++++++++++++++++++++++++++
Berikutnya, yang ketiga adalah konfigurasi hostname, yang menjadi keharusan karena Ambari hanya akan mengenal hostname dengan format FQDN (Fully Qualified Domain Name). Untuk tutorial ini saya menggunakan nama jati.com (I just love trees). Konfigurasi dapat dilakukan dengan melakukan setup file network:
+++++++++++++++++++++++++++++++++++++++++++
>nano /etc/sysconfig/network
NETWORKING=yes HOSTNAME=jati.com
+++++++++++++++++++++++++++++++++++++++++++
Simpan file tersebut, namun perubahan file tersebut hanya berpengaruh apabila guest OS diubah, untuk itu restart terlebih dahulu guest OS, atau jika anda tidak bersabar, ketik perintah berikut:
+++++++++++++++++++++++++++++++++++++++++++
>hostname jati.com
+++++++++++++++++++++++++++++++++++++++++++
Perlu diingat, Ambari dan Hadoop sangat intoleran dengan firewall, untuk itu lakukan langkah ke-empat dengan matikan firewall terlebih dahulu:
+++++++++++++++++++++++++++++++++++++++++++
>setenforce 0
+++++++++++++++++++++++++++++++++++++++++++
Atau, anda juga bisa matikan service iptables (untuk IP versi 4) dan ip6tables (untuk IP versi 6):
+++++++++++++++++++++++++++++++++++++++++++
>service iptables stop
>service ip6tables stop
+++++++++++++++++++++++++++++++++++++++++++
Berikutnya langkah ke-lima adalah instalasi NTP, untuk mensinkronisasi tanggal dan jam antar node. Lakukan instalasi dengan menjalankan script berikut di terminal:
+++++++++++++++++++++++++++++++++++++++++++>yum install ntp>service ntpd start+++++++++++++++++++++++++++++++++++++++++++Sampai di sini guest OS sudah siap untuk menerima instalasi Ambari dan Hadoop dari host OS. Jika akan melakukan setup satu lagi guest OS, lakukan hal yang sama mulai dari bagian instalasi OS sampai bagian start NTP.
Host OS (Client)
Untuk host OS, daftarkan terlebih dahulu FQDN dari host OS di file /etc/hosts+++++++++++++++++++++++++++++++++++++++++++
>nano /etc/hosts
192.168.39.129 jati.com jati
+++++++++++++++++++++++++++++++++++++++++++
Setelah itu lakukan instalasi Open SSH (jika belum ada). Untungnya, di Ubuntu 16.04 sudah terinstall, jadi tidak perlu melakukan instalasi. Yang perlu dilakukan adalah mengenerate ssh-key, karena kita akan mengakses guest OS secara remote tanpa password, jadi perlu key public-with-no-passphrase dari host OS (di sini saya set hostname sebagai trembesi.com). Untuk itu, jalankan script berikut (dari user root) di terminal host OS:
Ingat, jangan memasukkan passphrase, langsung tekan enter saat prompt passphrase. Setelah itu kita perlu push public key tersebut ke host OS, untuk itu, jalankan script berikut:+++++++++++++++++++++++++++++++++++++++++++>ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa_new. Your public key has been saved in /root/.ssh/id_rsa_new.pub. The key fingerprint is: SHA256:iB+70WZ//xn8+2wUT3O8GDbqfYF0Tl2pDjsUEdNOsek root@trembesi.com The key's randomart image is: +---[RSA 2048]----+ | ++.. .| | ..oo..| | +o..o| | . . o.B ==| | . o S . BEO.*| | . + + +.+o| | + + . o +.| | = . ... o=| | . .. .o=B| +----[SHA256]-----++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++>ssh-copy-id -i /root/.ssh/id_rsa.pub root@jati.com
+++++++++++++++++++++++++++++++++++++++++++
Anda akan diminta password untuk user root host OS, masukkan password user root host OS. Jika masih gagal kemungkinan terdapat kesalahan FQDN, atau firewall masih nyala di host OS. Jika sukses, lakukan test koneksi remote dari terminal:
+++++++++++++++++++++++++++++++++++++++++++
>ssh root@jati.com
+++++++++++++++++++++++++++++++++++++++++++
Pertama kali mungkin anda akan diminta password, it's normal, namun untuk berikutnya seharusnya anda sudah tidak perlu memasukkan password user root guest OS. Jika masih, berarti ada yang salah pada saat generate key ssh. Ulangi sekali lagi.
Untuk tutorial berikutnya, saya akan membahas tentang setup Repository Ambari dan Hadoop secara lokal. Mengapa perlu? Karena file installer Ambari dan Hadoop teramat besar (terutama bagi yang koneksi internetnya pas-pasan). Jadi akan jauh sangat efisien apabila instalasi dilakukan secara lokal, tidak perlu koneksi internet.
Komentar
Posting Komentar