Setelah pada tutorial lalu kita membahas mengenai instalasi Hadoop single node, kali ini kita akan membahas langkah instalasi Hadoop cluster di dalam VMWare.
Sebagai catatan, karena pada tutorial ini kita akan menjalankan 3 buah virtual machine secara bersamaan, maka PC atau laptop yang akan digunakan haruslah memiliki setidaknya 8 GB RAM, dan alokasi total untuk ke 3 VM ini sebaiknya tidak melebihi 4GB.
Berikut ini langkah instalasi Hadoop di Ubuntu 14.04 vmWare. Dalam tutorial ini digunakan hadoop 2.6.0.
Untuk konfigurasi ini kita akan menggunakan 1 server namenode dan 2 server datanode.
Yang akan kita lakukan adalah menginstall 1 mesin sampai selesai, lalu copy 2 kali untuk mendapatkan 3 instance server, dan kemudian kita setting agar ke-3 nya dapat berkomunikasi satu sama lain.
IP |
Type Node |
Hostname |
192.168.4.148 |
Name node |
ubuntu1 |
192.168.4.149 |
Data node 1 |
ubuntu2 |
192.168.4.155 |
Data node 2 |
ubuntu3 |
1. Install VMWare Player
Install VMWare player, tergantung OS host anda, 32 atau 64 bit :
https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0
2. Install Ubuntu
Install Ubuntu 14.04 di VMWare player, anda.
Download iso image Ubuntu 14.04 LTS di
http://releases.ubuntu.com/14.04/ (sekali lagi, perhatikan keperluan anda, 32 atau 64 bit OS)
Agar dapat berkomunikasi satu sama lain, termasuk dapat diakses melalui puTTY, set network setting ke
Bridged
3. Install jdk
Ada beberapa pilihan yang bisa anda install, di antaranya openjdk atau oracle jdk. Untuk open jdk pilih setidaknya openjdk 7, dengan perintah sbb:
user@ubuntu:~$ sudo apt-get install openjdk-7-jdk
|
Anda bisa juga menginstall jdk 7 oracle, dengan langkah sbb:
5. Create dedicated group dan user untuk hadoop
Membuat user hduser dan group hdgroup untuk menjalankan
hadoop. Langkah ini tidak harus dilakukan, tapi disarankan untuk memisahkan instalasi
hadoop dengan aplikasi2 lain di mesin yang sama.
user@ubuntu:~$ sudo addgroup hdgroup
user@ubuntu:~$ sudo adduser --ingroup hdgroup hduser
|
Masukkan
hadoop ke dalam sudoers (untuk create direktori, set permission, dll)
user@ubuntu:~$ sudo adduser hduser sudo
|
6. Setting jdk path
Sebelumnya cek instalasi dengan perintah:
user@ubuntu:~$ java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
|
Login ke user hduser dengan perintah:
Set JAVA_HOME di file .bashrc dengan memasukkan path yg sesuai, misalnya untuk java di direktori /usr/local/java , maka tambahkan baris berikut ini:
export JAVA_HOME=/usr/local/java
Apply setting dengan jalankan perintah berikut ini:
hduser@ubuntu:~$ . .bashrc
|
7. Configure SSH
Hadoop memerlukan akses SSH untuk memanage node-node-nya. Kita perlu melakukan konfigurasi akses SSH ke localhost untuk user
hadoop yang sudah kita buat sebelumnya, dan ke data node-nya nantinya.
a. install ssh
hduser@ubuntu:~$ sudo apt-get install ssh
|
b. generate an SSH key untuk user hadoop
hduser@ubuntu:~$ ssh-keygen -t rsa -P ""
|
Perintah di atas akan membuat RSA key pair dengan password kosong. Sebenarnya penggunaan password kosong ini tidak disarankan dari sisi keamanan, namun dalam hal ini kita memerlukan akses tanpa password untuk keperluan interaksi Hadoop dengan node-node-nya. Tentunya kita tidak ingin memasukkan password setiap kali Hadoop mengakses node-nya, bukan?
c. enable akses SSH ke local machine dengan key yang baru dibuat
hduser@ubuntu:~$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
|
d. test setting SSH
Langkah terakhir adalah testing setup SSH tersebut dengan melakukan koneksi ke localhost menggunakan user
hadoop. Langkah ini juga diperlukan untuk menyimpan host key dingerprint ke file known_host milik user
hadoop.
hduser@ubuntu:~$ ssh localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is 34:72:32:43:11:87:fa:83:7e:ea:13:e6:43:68:28:0f.
Are you sure you want to continue connecting (yes/no)? yes
|
Langkah terakhir adalah testing setup SSH tersebut dengan melakukan koneksi ke localhost menggunakan user hadoop. Langkah ini juga diperlukan untuk menyimpan host key fingerprint ke file known_host milik user hadoop.
8. Instalasi Hadoop
Download
hadoop di
https://www.apache.org/dist/hadoop/core/hadoop-2.6.0/hadoop-2.6.0.tar.gz, extract ke sebuah direktori, misalnya /usr/local/
hadoop.
hduser@ubuntu:~$ cd /usr/local
hduser@ubuntu:~$ sudo tar xzf hadoop-2.6.0.tar.gz
hduser@ubuntu:~$ sudo cp -Rh hadoop-2.6.0 /usr/local/hadoop
|
Update File .bashrc
Tambahkan baris berikut ini ke akhir file $HOME/.bashrc dari user hadoop. Jika anda menggunakan shell selain bash, maka anda perlu meng-update config file yang bersesuaian.
Berikut ini setting untuk instalasi openjdk7:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
#HADOOP VARIABLES END
|
Untuk instalasi java di /usr/local/java, sesuaikan setting JAVA_HOME sbb:
export JAVA_HOME=/usr/local/java
Create direktori untuk hadoop filesystem
Berikut ini beberapa direktori yang perlu dibuat untuk hadoop file system, yang akan di-set dalam parameter dfs.namenode.name.dir , dfs.datanode.name.dir di file
/usr/local/hadoop/etc/hadoop/conf/hdfs-site.xml dan parameter
hadoop.tmp.dir di file
/usr/local/hadoop/etc/hadoop/conf/core-site.xml: /app/hadoop/namenode, /app/hadoop/datanode dan
/app/hadoop/tmp
hduser@ubuntu:~$ sudo mkdir -p /app/hadoop/namenode
hduser@ubuntu:~$ sudo chown hduser:hdgroup /app/hadoop/namenode
hduser@ubuntu:~$ sudo mkdir -p /app/hadoop/datanode
hduser@ubuntu:~$ sudo chown hduser:hdgroup /app/hadoop/datanode
hduser@ubuntu:~$ sudo mkdir -p /app/hadoop/tmp
hduser@ubuntu:~$ sudo chown hduser:hdgroup /app/hadoop/tmp
|
Catatan : jika langkah di atas terlewat, maka kemungkinan anda akan mendapatkan error permission denied atau java.io.IOException ketika anda akan memformat HDFS namenode.
Update Hadoop File Configuration
Berikut ini beberapa file yang perlu di-update di direktori
/usr/local/hadoop/etc/hadoop/etc/hadoop
a. File hadoop-env.sh
hduser@ubuntu:~$ vi $HADOOP_INSTALL/etc/hadoop/hadoop-env.sh
# The java implementation to use. Required.
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
|
b. File-file *-site.xml
Dalam file
/usr/local/hadoop/etc/hadoop/core-site.xml:
hadoop.tmp.dir
/app/hadoop/tmp
A base for other temporary directories.
fs.default.name
hdfs://ubuntu1:54310
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.
Dalam file /usr/local/hadoop/etc/hadoop/mapred-site.xml:
mapred.job.tracker
ubuntu1:54311
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.
Dalam file /usr/local/hadoop/etc/hadoop/conf/hdfs-site.xml:
dfs.replication
2
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.
dfs.data.dir
file:///app/hadoop/datanode
true
dfs.name.dir
file:///app/hadoop/namenode
true
dfs.namenode.http-address
ubuntu1:50070
The address and the base port where the dfs namenode web ui will listen on.
Lho, gitu aja? Oh tentu tidak..!
Langkah selanjutnya akan dijelaskan pada bagian 2, so stay tune 
Contributor :
M. Urfah
Penyuka kopi dan pasta (bukan copy paste) yang sangat hobi makan nasi goreng.
Telah berkecimpung di bidang data processing dan data warehousing selama 12 tahun.
Salah satu obsesi yang belum terpenuhi saat ini adalah menjadi kontributor aktif di forum idBigdata.