Mari Mengenal Hadoop

02:50PM May 25, 2011 in category Linux by iftakhul anwar


Berbicara dengan hadoop pasti tidak akan terlepas dari istilah distributed 
computing.Distributed computing secara sederhana dapat diartikan sebagai teknologi yang digunakan untuk tujuan memecahkan sebuah proses besar untuk dibagi ke sebuah proses-proses kecil yang selanjutnya akan disatukan kembali ketika proses-proses kecil tersebut sudah memenuhi kriteria tertentu.
Jadi untuk keperluan distributed computing ini akan membutuhkan banyak resource yang saling bekerjasama dengan skalabilitas yang cukup tinggi.

Jika di Google kita pernah mendengar istilah GFS(Google File System) dan juga MapReduce untuk pengolahan data yang sangat besar, Yahoo pun juga telah mengembangkan teknologi serupa, yaitu menggunakan HDFS(Hadoop File System) dan juga MapReduce untuk memenuhi kebutuhan data dengan skalabilitas yang cukup besar.Kedua teknologi ini sekarang telah berada di bawah Apache Software dan bersifat opensource tentunya.

Sebelum berjalan-jalan lebih jauh dengan Hadoop karena di dalamnya ada banyak sekali barang-barang lain seperti Hive, Pig, atau yang lainnya yang tampaknya akan sangat menark untuk dipelajari, sekarang mari kita coba install hadoop di komputer kita, tapi di single node aja :)


1.Tambahkan user dan group untuk hadoop 

sudo addgroup hadoop

sudo adduser --ingroup hadoop hadoop

2.Konfigurasi SSH

Pastikan SSH sudah berjalan dengan baik di komputer, selanjutnya kita akan generate SSH-Key untuk user hadoop yang baru saja kita buat.

hadoop@komputer1:~$ ssh-keygen -t rsa -P ""
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): 
Created directory '/home/hadoop/.ssh'.
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
6e:25:4d:fb:96:8c:79:d9:c0:3d:4d:d5:76:84:75:8b hadoop@komputer1
The key's randomart image is:
+--[ RSA 2048]----+
|               +*          |
|              o B          |
|          .  E oo         |
|         o o . o          |
|        S + o o .       |
|       . o = = .        |
|        o o B .          |
|       .   o               |
|                            |
+--------------------+


3.Selanjutnya, kita harus mengaktifkan akses SSH ke komputer lokal Anda dengan key yang baru dibuat

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys


4.Disable IPv6.
Tambahkan baris berikut pada /etc/sysctl.conf

#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Biasanya kita harus reboot komputer untuk mengaktifkan konfigurasi ini.

Setelah reboot cek kembali apakah komputer kita masih meng-enable Ipv6 atau tidak dengan perintah 

$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6

Jika ouputnya 0, berarti ipv6 masih enable, maka pastikan output yang keluar dari perintah di atas adalah 1


5. Ekstrak hadoop dan mulai proses instalasi

$ sudo tar xzf hadoop-0.21.0.tar.gz
$ sudo chown -R hadoop:hadoop hadoop

6. Tambahkan Path java home di file konfigurasi yang ada di $Hadoop/conf/hadoop-env.sh sesuai Path java yang ada pada komputer 

export JAVA_HOME="/opt/jdk1.6.0_21" 


7. Edit file konfigurasi yang  ada di hdfs-site.xml, core-site.xml, mapred-site.xml 

Core-site.xml
#########################

<configuration>

<property>
  <name>hadoop.tmp.dir</name>
  <value>/opt/hadoop/tmp</value>
  <description>A base for other temporary directories.</description>
</property>

<property>
  <name>fs.default.name</name>
  <value>hdfs://localhost:54310</value>
  <description>The name of the default file system.  A URI whose
  scheme and authority determine the FileSystem implementation.  The
  uri's scheme determines the config property (fs.SCHEME.impl) naming
  the FileSystem implementation class.  The uri's authority is used to
  determine the host, port, etc. for a filesystem.</description>
</property>

</configuration>

##########################

Mapred-site.xml
##########################

<configuration>
<property>
  <name>mapred.job.tracker</name>
  <value>localhost:54311</value>
  <description>The host and port that the MapReduce job tracker runs
  at.  If "local", then jobs are run in-process as a single map
  and reduce task.
  </description>
</property>
</configuration>

##########################

Hdfs-site.xml

##########################

<configuration>
<property>
  <name>dfs.replication</name>
  <value>1</value>
  <description>Default block replication.
  The actual number of replications can be specified when the file is created.
  The default is used if replication is not specified in create time.
  </description>
</property>
</configuration>

##########################

8. Format Hadoop Filsystem

hadoop@komputer1:~$ /opt/hadoop/bin/hadoop namenode -format

Setelah semua step berjalan dengan baik, sekarang kita coba jalankan hadoop dengan perintah 

hadoop@komputer1:~$ /opt/hadoop/bin/start-all.sh 

This script is Deprecated. Instead use start-dfs.sh and start-mapred.sh
starting namenode, logging to /opt/hadoop/bin/../logs/hadoop-hadoop-namenode-localhost.out
localhost: starting datanode, logging to /opt/hadoop/bin/../logs/hadoop-hadoop-datanode-localhost.out
localhost: starting secondarynamenode, logging to /opt/hadoop/bin/../logs/hadoop-hadoop-secondarynamenode-localhost.out
starting jobtracker, logging to /opt/hadoop/bin/../logs/hadoop-hadoop-jobtracker-localhost.out
localhost: starting tasktracker, logging to /opt/hadoop/bin/../logs/hadoop-hadoop-tasktracker-localhost.out


9. Cek apakah hadoop sudah benar-benar berjalan dengan netstat

$ netstat -plten | grep java

...
..
tcp        0      0 0.0.0.0:50070           0.0.0.0:*               LISTEN      1001       48305       4685/java       
tcp        0      0 0.0.0.0:50010           0.0.0.0:*               LISTEN      1001       48535       4871/java       
tcp        0      0 0.0.0.0:1626            0.0.0.0:*               LISTEN      1001       47047       4685/java       
tcp        0      0 0.0.0.0:50075           0.0.0.0:*               LISTEN      1001       48564       4871/java       
tcp        0      0 0.0.0.0:45821           0.0.0.0:*               LISTEN      1001       47330       4871/java       
tcp        0      0 0.0.0.0:50020           0.0.0.0:*               LISTEN      1001       48679       4871/java       
tcp        0      0 127.0.0.1:56932         0.0.0.0:*               LISTEN      1001       48540       5358/java       
tcp        0      0 127.0.0.1:54310         0.0.0.0:*               LISTEN      1001       47715       4685/java       
tcp        0      0 127.0.0.1:54311         0.0.0.0:*               LISTEN      1001       48217       5170/java       
tcp        0      0 0.0.0.0:19943           0.0.0.0:*               LISTEN      1001       47960       5170/java       
tcp        0      0 0.0.0.0:50090           0.0.0.0:*               LISTEN      1001       48561       5070/java       
tcp        0      0 0.0.0.0:50060           0.0.0.0:*               LISTEN      1001       48445       5358/java       
tcp        0      0 0.0.0.0:50030           0.0.0.0:*               LISTEN      1001       48324       5170/java       
tcp        0      0 0.0.0.0:18766           0.0.0.0:*               LISTEN      1001       47838       5070/java  
..

Kita lihat beberapa port yang digunakan map reduce sudah berjalan seperti Port 54311,54310,50030(Map reduce Admin), 50060(Map reduce Job Tracker), dll.

Dapat dipastikan bahwa konfigurasi sudah berjalan, coba ketikkan http://localhost:50060 untuk melihat-lihat Map Reduce Administration.

 

 

Pada tulisan selanjutnya mungkin akan kita coba beberapa perintah yang ada di hadoop file system yang rada-rada mirip dengan perintah yang ada pada System operasi Linux.

To be continued ...



Comments[0]

Comments:

Post a Comment:
  • HTML Syntax: Allowed