Hadoop adalah salah satu implementasi dari konsep Map Reduce yang bersifat Open Sorce untuk memproses model atau data berskala besar secara terdistribusi. Hadoop diimplementasikan di JAVA dengan mengunakan class library, dengan menggunakan Hadoop data akan diolah secara simultan, melalui lebih dari satu mesin (terdistribusi). Map Reduce sendiri ialah sebuah teknik untuk menangani masalah pengaturan pada data berskala besar, hasil yang diharapkan agar data dapat diolah menjadi data yang reliable dan relevan.
Hadoop dapat
digunakan secara Open Source, yaitu dapat digunakan dan dikembangkan untuk
kepentingan bersama. Hadoop dapat diunduh langsung dari situs resminya di :
Sebelum menjalankan Hadoop pastikan anda
telah menginstall Java Jdk seperti diuraikan pada bab 3.1. Kemudian tempatkan folder hadoop pada /opt/ dan lakukan beberapa konfigurasi seperti
di bawah ini.
a) Install openssh pada setiap komputer.
Secure Shell (ssh) adalah protocol untuk komunikasi client-server
untuk mengakses shell secara remote.Semua pertukaran pesan (message exchange) akan di enkripsi menggunakan
enkripsi 128bit. Algorithm yang paling sering digunakan adalah rsa, namun juga
bisa menggunakan algorithm enkripsiasynchronouslainnya.
SSH client dan server yang paling populer dan akan
digunakan dalam dokumentasi ini adalah OpenSSH, berikut ini adalah cara
instalasi OpenSSH pada linux server distro Debian dan CentOS.
Debian:
su #
apt-get install openssh-server
openssh-client
Kemudian ikuti langkah
instalasi.
CentOS / Redhat / Fedora:
su #
yum install
openssh-server
yum install
openssh-client
b)
Konfigurasi key ssh untuk setiap computer
Konfigurasi ini berguna
agar komunikasi Secure Shell (ssh) antar computer tidak memerlukan authentikasipassword lagi.Agar dapat berkomunikasi
tanpa authentikasi, public keyssh
clientharus didaftarkan kedalam file authorized_keys server.
Gunakan perintah berikut pada terminal pada setiap
komputer yang akan dijadikan hadoop node.
·
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
·
cat
~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
·
chmod -R
700 .ssh/
Untuk melakukan tes gunakan perintah =>ssh localhost pada
terminal, bila konfigurasi di atas berhasil maka tidak ada lagi permintaan
untuk memasukan password.
Cara ini hanya dapat digunakan untuk Virtual Machine (VM)yang
dibuat dengan cara di clone. Hal ini disebabkan karena hardware yang dibuat
dengan cara di clone memiliki hardware-hardware ID yang sama, yang perlu
digunakan untuk authentikasi public key
SSH.
c)
Konsep Hadoop
Hadoop memiliki beberapa terminologi yang akan digunakan
didalam dokumentasi ini:
HDFS Hadoop File System adalah DistributedFile
System untuk hadoop, bedanya dengan File
System biasa adalah replikasi. HDFS memiliki jumlah replikasi, setiap file
didalam HDFS akan di replikasi sesuai dengan jumlah replikasi pada setting.
Map Reduceadalah konsep pembagian job atau proses pada sistem
distribusi hadoop.Proses pendistribusian proses terdapat dalam Map dan pada Reduce terdapat proses pengabungan output atau hasil.
Baik Map Reduce dan HDFS pada
hadoop menggunakan konsep master slave.Master adalahkomputer yang
mendistribusikan proses dan juga berfungsi sebagai gateway antara sistem
distribusi hadoop dan aplikasi. Slave adalah komputer yang mengerjakan proses
yang didistribusikan oleh master node.
d)
Setting Konfigurasi Hadoop (Mapred & HDFS Master digabung)
Sebagai contoh, kita akan melakukan instalasi Hadoop pada 4 buah mesin.Pada konfigurasi ini Map Reduce cluster dan HDFS
cluster akan digabugkan, sehingga hanya terdapat 1 master node. Dengan
konfigurasi ini, 1 Virtual Machine (VM)
akan difungsikan sebagai master, dan 3 VM menjadi Slave dengan pengaturan IP
sebagai berikut:
·
komputer 1 (sebagai master) = 192.168.1.1
·
komputer 2 (sebagai slave) = 192.168.1.2
·
komputer 3 (sebagai slave) = 192.168.1.3
·
komputer 4 (sebagai slave) = 192.168.1.4
Setelah langkah diatas selesai, maka lakukan konfigurasi Hadoop yang berada pada folder /opt/hadoop/conf. Di dalam folder conf
tersebut ada beberapa berkas yang perlu kita setting ulang, yaitu pada berkas
1. masters,
2. slaves,
3.
core-site.xml(Setting
hadoop HDFS Mster dan behavior HDFS)
4.
mapred-site.xml
(Setting hadoop mapred master dan behavoiour mapred process).
Penjelasan
perubahan Setting :
·
Pada komputer 1 atau master hadoop bukalah
berkas master dengan perintah => vim
/opt/hadoop/conf/masters dan masukkan ip address dari hadoop master yang sudah
anda set sebelumnya. Perhatikan pada contoh dibawah.
192.168.1.1
·
Pada komputer 1 atau master hadoop bukalah berkas slaves dengan
perintah => vim /opt/hadoop/conf/slaves dan masukkan ip addressdari hadoop slave yang sudah anda set
sebelumnya. Perhatikan pada contoh dibawah.
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
·
Pada komputer 1 atau master hadoop bukalah berkas core-site.xml
dengan perintah => vim /opt/hadoop/conf/ core-site.xml dan editlah
sesuai dengan text dibawah ini.
Sebagai perbandingan perhatikan lampiran berkas konfigurasi
berikut ini, sesuaikan VM yang menjadi Master, dan VM yang menjadi
Slaves.Kesalahan setting dapat menyebabkan Hadoop tidak dapat digunakan.
Penjelasan:
·
hadoop.tmp.dirdirektori
yang digunakan oleh hadoop node sebagai blok file system.
·
fs.default.nameIP
address HDFS Master node.
·
io.compression.codecskompresi
data yang digunakan untuk mengurangi besar packet.
·
fs.inmemory.size.mbbesar
cache yang di alokasikan didalam memory
·
Pada komputer 1 atau master hadoop bukalah berkas mapred-site.xml
dengan perintah => vim /opt/hadoop/conf/mapred-site.xml dan editlah
sesuai dengan text dibawah ini.
Penjelasan:
·
mapred.job.trackerIP
adress dan port hadoop mapred master node.
·
mapred.tasktracker.map.tasks.maximumjumlah
maksimum map task yang boleh dijalankan node
·
mapred.tasktracker.reduce.tasks.maximumkompresi
data yang digunakan untuk mengurangi besar packet.
·
mapred.reduce.child.java.optskonfigurasi
java runtime, khususnya memori untuk reduce task.
·
mapred.map.child.java.optskonfigurasi
java runtime, khususnya memori untuk maptask.
·
mapredreduce.map.output.compress
compress output map atau tidak.
·
io.sort.mbbuffer
memory saat sorting data (dari map ke reduce process).
·
io.spill.percent
e)
Copy semua config hadoop master node ke semua
slave
Setiap hadoop hanya membutuhkan 1 set konfigurasi dengan dapat
dengan mudah di copy atau disamakan antara master dan slave. Hal ini dapat
dilakukan dengan 2 cara, cara pertama adalah menyalin (copy)
folder /opt/hadoop/conf master
ke seluruh slave atau menyalin (copy) seluruh folder hadoop ke setiap
node slave.
Untuk mengcopy folder conf saja lakukan command ini untuk
setiap IP SLAVE:
(lakukan untuk
semua slave)
Untuk mengcopy
seluruh folder hadoop, apabila folder hadoop belum ada di komputer slave,
lakukan langkah ini pada setiap IP SLAVE:
(masukkan password root IP_SLAVE1)
(masukkan password root IP_SLAVE1)
chown -R ukp4:ukp4
/opt/hadoop/
(lakukkan untuk slave 1, 2, dan semuanya)
f)
Format berkas system hadoop
Berikut ini adalah perintah terminal untuk format berkas
system Hadoop.
Lakukan proses ini untuk setiap hadoop node, baik master
maupun slave.
·
Masuklah dengan super user pada komputer yang
ingin diformat hadoop file systemnya dan buatlah forder denga perintah =>mkdir /data/hadoop. Folder ini akan berfungsi untuk menjadi tempat
penyimpanan berkas system hadoop.
·
Ubahlah hak kepemilikan folder /data/hadoop dengan perintah =>chown mypc:mypc /data/hadoop
·
setelah langkah pertama dan kedua di jalankan
barulah format hadoop bisa di lakukan dengan perintah =>/opt/hadoop/bin/hadoop namenode
-format
·
“Storage directory /data/hadoop/tmp/dfs/name has been successfully formatted.”Jika tulisan tersebut ada dalam terminal maka proses format telah berhasil
“Storage directory /data/hadoop/tmp/dfs/name has been successfully formatted.”Jika tulisan tersebut ada dalam terminal maka proses format telah berhasil
g)
Menjalankan hadoop
Hadoop dapat dijalankan melalui semua node, namun lebih baik
apabila untuk menjalankan Hadoop
cukup dari komputer yang di set sebagai hadoop master saja. Berikut adalah
perintah menjalankan hadoop untuk men-start HDFS cluster dan Mapred cluster:
·
/opt/hadoop/bin/start-all.sh
Selain itu dapat juga menstartHDFS
dan mepred secara terpisah:
·
HDFS: /opt/hadoop/bin/start-dfs.sh
·
Mapred: /opt/hadoop/bin/start-mapred.sh
Setelah hadoop berjalan
cobalah buka melalui browser apakah hadoop sudah berjalandengan benar atau
belum dengan link sebagai berikut http://192.168.1.1:50030, Pada
tampilan dibrowser bisa dilihat informasi hadoop yang sedang berjalan,
misalnya :
·
State adalah status Hadoopnya sekarang adalah running.
·
Nodes adalah jumlah komputer yang terdaftar pada sub-sistem administrasi Hadoop.
·
Running jobs adalah tempat dimana kita bisa
melihat job apa yang sedang di kerjakan oleh Hadoop.
h)
Menghentikan Hadoop
Sama seperti saat menjalankan, saat
menghentikan Hadoop juga
lebih baik apabila dijalankan dari komputer yang di set sebagai master. Berikut
adalah perintah menghentikan hadoop
cluster yang sedang berjalan (HDFS & Mapred):
·
/opt/hadoop/bin/stop-all.sh
Untuk hanya
Menghentikan HDFS atau Mapred:
·
HDFS: /opt/hadoop/bin/stop-dfs.sh
·
Mapred: /opt/hadoop/bin/stop-mapred.sh