Mari Mengenal Hadoop
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 ...