Jumat, 09 Mei 2014

Apa Itu Hadoop dan Cara Instalasi Hadoop

 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.
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this berkas. -->

<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
</property>

<property>
<name>fs.default.name</name>
<value>hdfs://IP HADOOP MASTER:54310</value>
</property>

<property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec,org.apache.hadoop.io.compress.BZip2Codec
</value>
</property>
<property>
<name>io.compression.codec.lzo.class</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
<property>
<name>fs.inmemory.size.mb</name>
<value>200</value>
</property>
</configuration>


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.


<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this berkas. -->

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>IP address Hadoop Master:54311</value>
</property>

<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>4</value>
</property>

<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>4</value>
</property>

<property>
<name>mapred.reduce.child.java.opts</name>
<value>-Xmn600m -Xms768m -Xmx768m</value>
</property>
<property>
<name>mapred.map.child.java.opts</name>
<value>-Xmn600m -Xms768m -Xmx768m</value>
</property>
<property>
<name>mapreduce.map.output.compress</name>
<value>true</value>
</property>
<property>
<name>mapreduce.map.output.compress.codec</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
<property>
<name>io.sort.mb</name>
<value>200</value>
</property>
<property>
<name>io.sort.spill.percent</name>
<value>0.95</value>
</property>
</configuration>


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:

· scp-r /opt/hadoop/conf mypc@IP Adress_SLAVE1:/opt/hadoop/
·scp-r /opt/hadoop/conf mypc@IP_Adress SLAVE2:/opt/hadoop/

(lakukan untuk semua slave)

Untuk mengcopy seluruh folder hadoop, apabila folder hadoop belum ada di komputer slave, lakukan langkah ini pada setiap IP SLAVE:

scp -r /opt/hadoop root@IP_Adress SLAVE1:/opt/
(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 

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:50030Pada 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

2 komentar:

  1. Cara installasi yang lengkap.

    terima kasih

    BalasHapus
  2. bisa buatkan tutorial penggunaan hadoop pada big data ga gan? akan sangat membantu. terima kasih

    BalasHapus