Langsung ke konten utama

Big Data Series: Instalasi Hadoop via Ambari - Konfigurasi Network


Hasil gambar untuk hadoop
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). 
Hasil gambar untuk what is ambari
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. 

Hasil gambar untuk hadoop master slave architecture horton
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
+++++++++++++++++++++++++++++++++++++++++++

Lakukan test ping ke jati.com (bukan menggunakan IP, untuk memastikan FQDN sudah sukses dikonfigurasi).

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:

+++++++++++++++++++++++++++++++++++++++++++
>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]-----+
+++++++++++++++++++++++++++++++++++++++++++
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-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

Postingan populer dari blog ini

Berkenalan dengan Laravel

Cukup disayangkan, Codeigniter sudah sampai ke tahap "penguburan" - paling tidak ini klaim dari Ellis Lab- dan ini cukup mengusik kenyamanan saya untuk menggunakan CI. Padahal juga sesuai dengan pengakuan rekan-rekan web developer, CI menurut saya cukup mudah dan powerful untuk digunakan dalam membangun sebuah web apps, dan terbukti juga CI sempat jadi trendsetter untuk framework PHP. Saya jadi penasaran framework PHP apa yang jadi the next PHP Framework star setelah CI, setelah menggali informasi beberapa kali, saya temukan Laravel saat ini banyak jadi batu loncatan developer CI. Alasannya sederhana, Laravel banyak kemiripan dengan CI. Dari analisa Google Trends juga terlihat kepopuleran Laravel saat tulisan ini dibuat juga menanjak meskipun masih kalah populer dengan CI (cukup mengherankan CI masih memimpin untuk masalah kepopuleran). Jadi langsung saja saya mencoba mengeksplorasi barang baru ini. Berikut langkah-langkahnya: 0. Install curl 1. Install composer: ...

Perbandingan Algoritme Dynamic Programming, Greedy, dan Backtrack Programming.

Sebetulnya posting ini bisa dibilang sudah kadaluarsa.  But, Better be late than never at all, right mate ? Ok, sebetulnya(lagi) Saya ingin menulis ulang semua yang ada di tugas semester 1 mata kuliah Analisa Algoritme, namun setelah dipikir-pikir lagi rasa-rasanya akan mubadzir, jadi di sini akan Saya gambarkan ulang secara ringkas saja apa perbedaan Dynamic Programming, Greedy dan Backtrack. Sebelum menyentuh ke dalam algoritmenya, Kita lihat terlebih dahulu kasus permasalahannya. Tentu belajar akan lebih mudah apabila tidak hanya dengan mempelajari teorinya saja. Umumnya orang akan lebih semangat apabila ada kasus menarik yang dipelajari. Tentang Knapsack Knapsack sendiri merupakan permasalahan pencuri yang ingin mencuri barang dengan cara memasukkan sebanyak-banyaknya dan seberharga-berharganya barang yang ada ( of course, its a theft ), sejumlah wadah yang pencuri tersebut punya. Diharapkan dengan menerapkan beberapa algoritme ini pencuri dapat meraup keuntungan sebanyak...

Data Analysis Series: Perceptron - Basic Artificial Neural Network

Pendahuluan Pada posting berikut ini saya akan menyampaikan materi tentang (Artificial) Neural Network. Algoritme yang satu ini terinspirasi dari cara kerja sel otak dalam memproses informasi. Sedikit di bawah ini pertama-tama akan saya sampaikam penjelasan bagaimana sel otak bekerja, untuk mempermudah pemahaman bagaimana ANN dapat terinspirasi. Sel Otak (Sumber:  www.wealltest.com ) Seperti yang kita ketahui, otak terdiri atas milyaran sel. Tiap-tiap sel tersebut terbagi atas tiga bagian, yaitu Dendrites, atau receptor, bagian yang menerima sinyal/stimulasi dari sel-sel otak yang lain. Sinyal/stimulasi yang masuk ke dendrite tersebut awalnya berasal dari indra perangsang kita, seperti mata, kulit, telinga, dan lidah. Dari dendrite, sinyal kemudian diteruskan melalui Axon, semacam pipa penghubung, yang mentransmisikan sinyal dari dendrite, untuk ditransmisikan ulang ke sel lain melalui Synapse. Bisa dikatakan, Synapse ini berfungsi sebagai akumulator untuk dari info...