APLIKASI PEMBACA GEMPA PADA HADOOP PROGR

APLIKASI PEMBACA GEMPA PADA HADOOP

Oleh :
Dedi Tiarno 105090607111037
Alex Sandro I. 105090600111053
S. johansyah I. 105090600111037

PROGRAM TEKNOLOGI INFORMASI DAN ILMU KOMPUTER
UNIVERSITAS BRAWIJAYA
MALANG
2013

BAB I PENDAHULUAN
1.1.Latar Belakang
Hadoop adalah sebuah framework opensource untuk menuliskan dan
menjalankan aplikasi terdistribusi yang memproses data dalam jumlah yang besar
dan terdistribusi dalam suatu cluster komputer. Cluster dalam hal ini adalah
sekumpulan sejumlah komputer yang terhubung dalam sebuah jaringan. Framework
Hadoop terdiri dari dua buah komponen utama untuk menyelesaikan kedua
permasalahan yang disebutkan pada paragraf sebelumnya, yaitu HDFS (Hadoop
Distributed File System) dan MapReduce. HDFS adalah sebuah file system

terdistribusi untuk menyimpan data dalam jumlah besar secara terdistribusi dalam
suatu cluster komputer.
Gempa bumi adalah getaran atau guncangan yang terjadi di permukaan bumi
akibat pelepasan energi dari dalam secara tiba-tiba yang menciptakan gelombang
seismik. Gempa Bumi biasa disebabkan oleh pergerakan kerak Bumi (lempeng
Bumi). Frekuensi suatu wilayah, mengacu pada jenis dan ukuran gempa Bumi yang di
alami selama periode waktu. Gempa Bumi diukur dengan menggunakan alat
Seismometer. Moment magnitudo adalah skala yang paling umum di mana gempa
Bumi terjadi untuk seluruh dunia.
Sehubungan dengan hal diatas, kami menawarkan project pembuatan Aplikasi
Pembaca Gempa Pada Hadoop yang dapat digunakkan untuk kalkulasi gempa
tersebut.

1.2.Rumusan Masalah
Aplikasi di buat untuk mempercepat proses pengambilan data gempa pada berbagai
region dengan lebih efisien,Aplikasi ini dibangun dengan :
 Bahasa pemrograman java
 Environment hadoop

1.3.Batasan Masalah

Adapun batasan masalah dari pembuatan aplikasi ini adalah :
 Tidak memprediksi gempa susulan
 Melakukan perhitungan dari data gempa yang telah terjadi

1.4.Ruang Lingkup Proyek Sistem
Adapun ruang lingkup dari pembuatan aplikasi ini adalah :
 Menganalisa tiap data gempa yang di inputkan
 Mencari data gempa max pada tiap region
1.5.Manfaat Pengembangan Sistem
Adapun manfaat dari pembuatan aplikasi ini adalah :
 Dapat melakukan kalkulasi gempa secara cepat
 Dapat menangani big data
1.6.Tujuan Pengembangan Sistem
Adapun tujuan dari pembuatan aplikasi ini adalah :
 Mempercepat proses kalkulasi data gempa
 Mengoptimalkan penggunaan hardware untuk pengolahan data gempa

BAB II IMPLEMENTASI
2.1.Implementasi
Requirement Multinode Hadoop :

1. Dua operating System Linux Ubuntu 12.04 (master dan slave)
2. Hadoop
3. Java versi 6
Sebelum melakukan Instalasi pada masing-masing operating system konfigurasi
terlebih dahulu masing-masing host pada master dan slave yang letaknya di diriktori
/etc/hosts seperti dibawah ini:
192.168.0.2 Master
192.168.0.2 Slave

Hadoop membutuhkan aplikasi Java, karena java tidak satu paket dengan
Ubuntu maka agar hadoop bisa dijalankan di Ubuntu harus di install dahulu paket java
di Ubuntu dengan perintah.
# Add the Ferramosca Roberto's repository to
repositories
# See https://launchpad.net/~ferramroberto/
#
$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:ferramroberto/java

your


apt

# Update the source list
$ sudo apt-get update
# Install Sun Java 6 JDK
$ sudo apt-get install sun-java6-jdk
# Select Sun's Java as the default on your machine.
# See 'sudo update-alternatives --config java'
information.
#
$ sudo update-java-alternatives -s java-6-sun

for

more

kemudian cek versi java untuk memastikan java telah terinstall di Ubuntu
dengan perintah $ java-version kemudian untuk melihat paket java yang di install
lihat di /usr/lib/jvm/

Menambahkan User sistem pada master dan slave yang nantinya dijadikan
sebagai tempat kerja hadoop. Tambahkan Group hadoop dengan perintah $ addgroup
hadoop dan $ adduser –ingroup hadoouser hadoop Kemudian masukkan
password sesuai keinginan.

Setelah itu Konfigurasi SSH pada master dan slave, Hadoop memerlukan
protocol SSH untuk mengelola Node-nya, SSH di sini dibuat untuk mengakses host
melalui remote jaringan dan ke user yang telah di buat. Pertama instalasi terlebih
dahulu paket SSH Server di system dengan perintah
$ sudo apt-get install openssh-server

Selesaikan proses instalasi SSH, kemudian masuk ke dalam user hadoop untuk
membuat konfigurasi SSH $ su –hadoopuser Perintah ini akan melakukan login ke
dalam user hadoop dari user yang sebelumnya digunakan. kemudian buat sertifikasi
SSH dari user hadoop dengan perintah $ ssh-keygen –t rsa –P “” Kemudian
salin sertifikasi atau kunci yang baru saja di buat ke dalam authorized key
$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub hadoopuser@slave

Kemudian langkah terakhir adalah mendaftarkan sertifikasi SSH ke dalam
server yang secara otomatis akan ditambahkan pada file known_hosts. Apabila sudah

terdaftar pada file maka lakukan pengetesan koneksi dari master to master atau dari
master to slave dengan perintah ssh master , ssh slave Apabila berhasil SSH
akan masukkan kunci yang disebut RSA key dan akan diminta konfirmasi untuk
mengijinkan atau tidak, Tuliskan “YES” lalu ENTER untuk melanjutkan prosesnya.
Kemudian Nonaktifkan IPV6 pada master dan slave karena hadoop tidak
memerlukan Ipv6. Alasan lain hadoop tidak memerlukan IPV6 dikarenakan hadoop
menggunakan IPV4 yaitu 0.0.0.0 dan jika IPV6 tidak di nonaktifkan di kawatirkan
akan mengganggu system hadoop. Untuk mematikan IPV6 masuk ke diriktori
/etc/sysctl.conf kemudian tambahkan baris
# disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

kemudian reboot masing masing hosts agar konfigurasi diatas dapat
menimbulkan efek, setelah itu cek ipv6 dengan perintah seperti dibawah ini
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6

Jika keluar nilai 0 maka IPV6 masih hidup maka coba ulangi langkah-langkah
di atas namun jika keluar nilai 1 maka IPV6 sudah mati.

Kemudian Install hadoop di master dan slave, sebelum melakukan instalasi
download terlebih dahulu hadoop, versi hadoop yang digunakan dalam percobaan ini
adalah hadoop 1.03. Masuk ke direktori /usr/local untuk menginstall hadoop. Setelah
download selesai extrak file hadoop dan ubah nama dan permission agar bisa di akses
oleh user yang di buat yaitu user hadoopuser, untuk perintahnya seperti dibawah ini.
$ cd /usr/local
$ sudo tar xzf hadoop-1.0.3.tar.gz
$ sudo mv hadoop-1.0.3 hadoop

$ sudochown -R hduser:hadoophadoop

Ada beberapa hal yang harus dikonfigurasi dalam hadoop salah satunya adalah
hadoop-env.sh yang tujuannya menentukan letak file java yang telah di instalasi.
Buka file di direktori /usr/local/hadoop/conf/hadoop-env.sh
# The java implementation to use. Required.
exportJAVA_HOME=/usr/lib/jvm/java-6-sun



Konfigurasi Master


Konfigurasi conf/master untuk mendefinisikan namenode dan Jobtracker yang
akan selalu bin/start-dfs.sh and bin/start-mapred.sh hadoop. Update
conf/master dengan master (nama host yang di jadikan master).
Konfigurasi conf/slave berkas daftar host, satu per baris, di mana daemon
slave Hadoop (DataNodes dan TaskTrackers) akan dijalankan. Master dan slave
bertindak sebagai Hadoop slave karena untuk menyimpan dan mengolah data maka
pada direktori conf/slave update dengan
master
slave

atau sesuaikan dengan nama-nama host yang dijadikan node.


Konfigurasi Master dan Slave


Konfigurasi file conf/core-site.xml Seperti di bawah ini.
o
o

o
o
o
o
o
o

o



fs.default.name
hdfs://master: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
theFileSystem implementation class.
The uri's
authority is used to
determine
the
host,
port,
etc.
for
a
filesystem.


Konfigurasi file conf/mapred-site.xml Seperti di bawah ini.
o
o

o
o


mapred.job.tracker
master:54311
The host and port that the MapReduce
job tracker runs
o at. If "local", then jobs are run in-process as a
single map
o and reduce task.

o
o



Konfigurasi file conf/hdfs-site.xml dan sesuaikan jumlah node
pada value seperti di bawah ini.
o
o
o
o
o


dfs.replication
2
Default block replication.
The actual number of replications can be specified
when the file is created.
o
The default is used if replication is not
specified in create time.
o
o

Langkah awal untuk mulai menggunakan hadoop adalah melakukan format
name node dari hadoop file system yang telah tertanam pada filesystem. Berikut
format yang digunakan untuk melakukan format namenode cluster.
hduser@master:/usr/local/hadoop$ bin/hadoopnamenode –format

Tunggu beberapa saat hingga perintah berjalan sukses.
Menjalankan Multinode dengan perintah bin/start-dfs.sh dan bin/startmapred.sh kemudian hasil dari master

Hasil dari slave

2.2. Keterangan Program Java
Class app.java
package com.umermansoor;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.DoubleWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
/**
* The main application class.
*
* @author Umer Mansoor
*/
public class App
{
/**
* Application entry point.
* @param args
* @throws Exception - Bad idea but produces less cluttered code.
*/
public static void main(String[] args) throws Exception {
if (args.length != 2) {
System.err.println("Usage: hadoopex ");
System.exit(-1);
}
Job job = new Job();
job.setJarByClass(App.class);
job.setJobName("Earthquake Measurment");
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
job.setMapperClass(EarthquakeMapper.class);
job.setReducerClass(EarthquakeReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(DoubleWritable.class);
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
}
Class app.java di gunakan untuk menset path data yang akan digunakan,
mendeklarasikan class mapper dan class reducer yang akan digunakan untuk
memproses data, serta menset value mana yang akan ditampilkan pada output.

Class EarthquakeMapper.java
package com.umermansoor;
import org.apache.hadoop.io.DoubleWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import java.io.IOException;

/**
* This is the main Mapper class.
*
* @author umermansoor
*/
public class EarthquakeMapper extends
Mapper
{
/**
* @param key - Input key - The line offset in the file - ignored.
* @param value - Input Value - This is the line itself.
* @param context - Provides access to the OutputCollector and
Reporter.
* @throws IOException
* @throws InterruptedException
*/
@Override
public void map(LongWritable key, Text value, Context context) throws
IOException, InterruptedException {
String[] line = value.toString().split(",", 12);
// Ignore invalid lines
if (line.length != 12) {
System.out.println("- " + line.length);
return;
}
String outputKey = line[11];
double outputValue = Double.parseDouble(line[8]);
context.write(new Text(outputKey), new
DoubleWritable(outputValue));
}
}

Class EarthquakeMapper ini digunakan untuk menerima input dari file yang
digunakan kemudian memecahnya menjadi string kemudian mengestrak
line11 dari data tersebut yang berupa nama region dan dijadikan sebagai key
output dan mengestrak line 8 dari data yang berupa nilai magnitude dari data
dan digunakan sebagai output value.
Class EarthquakeReducer.java
package com.umermansoor;
import org.apache.hadoop.io.DoubleWritable;
import org.apache.hadoop.mapreduce.Reducer;
import java.io.IOException;
import org.apache.hadoop.io.Text;

public class EarthquakeReducer extends
Reducer
{
/**
* The `Reducer` function. Iterates through all earthquake magnitudes for
a
* region to find the maximum value. The output key is the `region name`
and
* the value is the `maximum magnitude` for that region.
* @param key - Input key - Name of the region
* @param values - Input Value - Iterator over quake magnitudes for
region
* @param context - Used for collecting output
* @throws IOException
* @throws InterruptedException
*/
@Override
public void reduce(Text key, Iterable values,
Context context) throws IOException, InterruptedException {
// Standard algorithm for finding the max value
double maxMagnitude = Double.MIN_VALUE;
for (DoubleWritable value : values) {
maxMagnitude = Math.max(maxMagnitude, value.get());
}
context.write(key, new DoubleWritable(maxMagnitude));
}
}
Class EarthquakeReducer ini digunakan untuk melakukan pemrosesan data
magnitude. Data di proses dengan perulangan diantara data yang memiliki

region yang sama hingga menemukan nilai magnitude tertinggi dari suatu
region yang di proses tersebut kemudian berpindah ke region lain dengan
proses yang sama. Nam region sebagai output key dan nilai magnitude sebagai
output value.
2.3. Pengujian Hadoop
Pengujian Multi node hadoop ini dilakukan pada data gempa yang nantinya
akan dihasilkan gempa terbesar dari setiap region menggunakan metode mapreduce
dengan java.
Pertama, buat terlebih dahulu direktori unutk menyimpan data gempa dengan
perintah seperti di bawah ini.
$mkdir /tmp/input
Masukkan data gempa ke dalam diriktori yang telah di buat. Berikutnya dari
file system lokal masukkan data ke dalam file system hadoop yaitu hdfs dengan cara
menyalinnya dengan menjalankan perintah seperti di bawah ini.
$bin/hadoop dfs -copyFromLocal /tmp/input /user/hadoopuser/input
Perintah diatas akan menyalin format sistem standar Ubuntu menjadi format
hadoop dengan menggunakan opsi dfs. Hasilnya dapat dilihat dengan cara dibawah
ini:
$bin/hadoop dfs –ls
Sedangkan untuk melihat isi dari diriktori input dapat dilihat dengan perintah
seperti di bawah ini :

Sebelumnya program mapreduce dijadikan ke bentuk jar dan di letakkan di diriktori
/usc/local/hadoop dengan nama hasoopex-1.0-SNAPSHOT.jar . Perintah dengan
membaca semua file pada folder input sebagai diriktori hdfs dan memprosesnya
kemudian meletakkan hasilnya pada diriktori hdfs yaitu output.
$bin/hadoop jar hadoopex-1.0-SNAPSHOT.jar
/user/hadoopuser/input /user/hadoopuser/output

com.umermansoor.App

Tunggu hingga proses sampai selesai dan lihat apakah terjadi eror, dan untuk
memastikan kesalahan jalankan perintah seperti di bawah ini.
$bin/hadoop dfs -ls

Pada hasil output akan terlihat dua buat diriktori input dan output seperti di
bawah ini. Lihat kembali isi dari folder output akan terlihat seperti di bawah ini
$bin/hadoop dfs -ls output

u
ntuk memeriksa file hasil proses dari hdfs, caranya menyalin file dari filesystem hdfs
ke dalam file system lokal menggunakan perintah :
$bin/hadoop dfs -cat gutenberg-output /part-r-00000
untuk membaca file secara langsung tanpa harus melakukan copy dari
filesystem lokal, perintah di bawah ini hanya akan melakukan copy file resultnya saja
ke dalam file syatem lokal. Pertama buat folder untuk meletakkan file outputnya
seperti di bawah ini.
$mkdir /tmp/eartquake-output
$bin/hadoop dfs -getmerge output /tmp/earthquake-output
untuk membaca file output yang dipindahkan ke dalam file system lokal dengan
menggunakan perintah di bawah ini.
$head /tmp/earthquake-output

2.4.Hasil Pengujian

BAB III PENUTUP
3.1. Kesimpulan
Program ini dapat menghasilkan seleksi gempa terbesar pada suatu
region dengan cepat padahal data yang digunakan cukup banyak. Hadoop
mapreduce dapat digunakan untuk melakukan pemrosesan data yang sangat besar (
hingga multi-terabyte) dengan waktu yang dapat diandalkan. Program java perlu
dijadikan bentuk jar terlebih dahulu agar bisa langsung dijalankan di hadoop, selain
itu file jar dan file intput juga perlu diletakkan di tempat yang semestinya.

DAFTAR PUSTAKA

https://github.com/umermansoor/hadoop-java-example
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/
http://architects.dzone.com/articles/your-first-hadoop-mapreduce

Dokumen yang terkait

PENGARUH PEMBERIAN SEDUHAN BIJI PEPAYA (Carica Papaya L) TERHADAP PENURUNAN BERAT BADAN PADA TIKUS PUTIH JANTAN (Rattus norvegicus strain wistar) YANG DIBERI DIET TINGGI LEMAK

23 199 21

KEPEKAAN ESCHERICHIA COLI UROPATOGENIK TERHADAP ANTIBIOTIK PADA PASIEN INFEKSI SALURAN KEMIH DI RSU Dr. SAIFUL ANWAR MALANG (PERIODE JANUARI-DESEMBER 2008)

2 106 1

FREKUENSI KEMUNCULAN TOKOH KARAKTER ANTAGONIS DAN PROTAGONIS PADA SINETRON (Analisis Isi Pada Sinetron Munajah Cinta di RCTI dan Sinetron Cinta Fitri di SCTV)

27 310 2

MANAJEMEN PEMROGRAMAN PADA STASIUN RADIO SWASTA (Studi Deskriptif Program Acara Garus di Radio VIS FM Banyuwangi)

29 282 2

ANALISIS PROSPEKTIF SEBAGAI ALAT PERENCANAAN LABA PADA PT MUSTIKA RATU Tbk

273 1263 22

PENERIMAAN ATLET SILAT TENTANG ADEGAN PENCAK SILAT INDONESIA PADA FILM THE RAID REDEMPTION (STUDI RESEPSI PADA IKATAN PENCAK SILAT INDONESIA MALANG)

43 322 21

KONSTRUKSI MEDIA TENTANG KETERLIBATAN POLITISI PARTAI DEMOKRAT ANAS URBANINGRUM PADA KASUS KORUPSI PROYEK PEMBANGUNAN KOMPLEK OLAHRAGA DI BUKIT HAMBALANG (Analisis Wacana Koran Harian Pagi Surya edisi 9-12, 16, 18 dan 23 Februari 2013 )

64 565 20

PEMAKNAAN BERITA PERKEMBANGAN KOMODITI BERJANGKA PADA PROGRAM ACARA KABAR PASAR DI TV ONE (Analisis Resepsi Pada Karyawan PT Victory International Futures Malang)

18 209 45

STRATEGI KOMUNIKASI POLITIK PARTAI POLITIK PADA PEMILIHAN KEPALA DAERAH TAHUN 2012 DI KOTA BATU (Studi Kasus Tim Pemenangan Pemilu Eddy Rumpoko-Punjul Santoso)

119 459 25

PENGARUH BIG FIVE PERSONALITY TERHADAP SIKAP TENTANG KORUPSI PADA MAHASISWA

11 131 124