• Tidak ada hasil yang ditemukan

Implementasi K Means Clustering pada lingkungan big data menggunakan model pemrograman MapReduce

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi K Means Clustering pada lingkungan big data menggunakan model pemrograman MapReduce"

Copied!
144
0
0

Teks penuh

(1)

IMPLEMENTASI K-MEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE

SKRIPSI

Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika

Oleh : Engelbertus Vione

125314112

PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA

2016

(2)

K-MEANS CLUSTERING IMPLEMENTATION IN BIG DATA ENVIRONMENT WITH MAPREDUCE PROGRAMMING MODEL

A THESIS

Presented as Partial Fulfillment of Requirements to Obtain Sarjana Komputer Degree in Informatics Engineering Department

By :

Engelbertus Vione 125314112

INFORMATICS ENGINEERING STUDY PROGRAM INFORMATICS ENGINEERING DEPARTMENT

FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY

YOGYAKARTA 2016

(3)

SKRIPSI

IMPLEMENTASI K-MEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE

Oleh:

Engelbertus Vione

125314112

Telah disetujui oleh :

Pembimbing,

J.B. Budi Darmawan, S.T., M.Sc. Tanggal: ……….

(4)

HALAMAN PENGESAHAN

IMPLEMENTASI K-MEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE

Dipersiapkan dan ditulis oleh : ENGELBERTUS VIONE

NIM : 125314112

Telah dipertahankan di depan panitia penguji pada tanggal 9 Januari 2017

dan dinyatakan memenuhi syarat

Susunan Panitia Penguji

Nama Lengkap Tanda Tangan

Ketua : Puspaningtyas Sanjoyo Adi, S.T., M.T. ...

Sekretaris : Drs. Haris Sriwindono, M.Kom ...

Anggota : J.B. Budi Darmawan, S.T., M.Sc. ...

Yogyakarta, ………. Fakultas Sains dan Teknologi

Universitas Sanata Dharma

Dekan,

Sudi Mungkasi, S.Si.,M.Math.Sc.,Ph.D.

(5)

MOTTO

I have no special talents. I am only passionately curious. – Albert Einstein

(6)

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa di dalam skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta, ... Penulis

Engelbertus Vione

(7)

LEMBARAN PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma: Nama : Engelbertus Vione

NIM : 125314112

Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah yang berjudul:

IMPLEMENTASI KMEANS CLUSTERING PADA LINGKUNGAN BIG DATA MENGGUNAKAN MODEL PEMROGRAMAN MAPREDUCE

Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.

Demikian pernyataan ini saya buat dengan sebenarnya.

Dibuat di Yogyakarta

Pada tanggal...…

Yang Menyatakan

Engelbertus Vione

(8)

Perkembangan data yang sangat pesat membuat teknologi big data menjadi inovasi baru dalam menyimpan data. Apache Hadoop merupakan framework big data yang mampu menyimpan data tanpa memperhatikan jenis data. Apache

Hadoop menggunakan model pemrograman MapReduce dalam menganalisa data. Apache Mahout merupakan library analisa data yang mampu menjalankan komputasi berbasis pemrograman MapReduce. Apache Mahout telah menyediakan komputasi penambangan data yang dapat digunakan dalam menganalisa data. K-Means merupakan metode penambangan data yang dapat mengelompokkan data berdasarkan kemiripan sifat.

Penelitian ini menggunakan 4 komputer klaster yang berjalan pada jaringan lokal. Apache Hadoop yang berjalan pada sistem Linux dibagi menjadi 1 master slave dan 3 slave node. Master node mengatur komputasi MapReduce.

Slave node bertugas sebagai media penyimpan data. Hasil K-Means dengan

menggunakan library Mahout diuji dengan hasil dari metode manual. Hasil pengujian menunjukkan bahwa library Mahout mampu memberikan hasil analisa dengan benar. Sedangkan pengujian unjuk kerja dilakukan dengan menjalankan K-Means sebanyak 10 kali pada jumlah slave node yang berbeda. Kesimpulan unjuk kerja sistem Hadoop dilakukan dengan mencari nilai rata-rata dari percobaan-percobaan tersebut. Hasil unjuk kerja menunjukkan bahwa semakin banyak jumlah slave node maka semakin cepat proses komputasi.

Kata Kunci: Big Data, Hadoop, MapReduce, Mahout, Data Mining, K-Means

(9)

The growth of massive data makes big data technology as a new innovation in storing data. Apache Hadoop is a big data framework that able to stroing data without considering the variety of data. Apache Hadoop uses MapReduce programming model to analyze data. Apache Mahout is a data analyze library that able to analyze data in MapReduce programming model. Apache Mahout has provided data mining method as analyze data algorithm. K-Means is a data mining algorithm that can group item data into specific cluster based on similarity measure.

This research is developed in 4 computer cluster which is clustered in local network. Apache Hadoop that is adopted in Linux system is divided into 1 master node and 3 slave nodes. Master node handles MapReduce. Slave nodes roles as storage system. The output of K-Means Mahout library is evaluated with manual calculation. The evaluation result describe that Mahout library can analyze data well. The performance of Hadoop system is evaluated by running 10 times of K-Means with Mahout library in difference quantity of slave node. The conclusion is taken by calculate the mean value of each 10 trainings. The performance evaluation result explained that increasing the number of slave node can make time execution of computation to be faster.

Keyword : Big Data, Hadoop, MapReduce, Mahout, Data Mining, K-Means

(10)

KATA PENGANTAR

Puji dan syukur penulis penjatkan kepada Tuhan Yang Maha Esa, telah memberikan berkat dan karunia sehingga penulis mampu menyelesaikan tugas akhir ini dengan baik.

Penulis menyadari selama proses pengerjaan tugas akhir telah mendapatkan banyak bantuan dari berbagai pihak, baik berupa dukungan, kritik, saran, dan doa yang mampu menjadi semangat dan motivasi demi terselesainya tugas akhir ini. Sehingga, pada kesempatan ini penulis akan menyampaikan ucapan terima kasih kepada:

1. Tuhan Yang Maha Esa yang senantiasa memberikan limpahan berkat dan karunia-Nya, serta menyertai penulis dalam mengerjakan tugas akhir ini. 2. Sudi Mungkasi, S.Si., M.Math.Sc., Ph.D. selaku Dekan Fakultas Sains dan

Teknologi Universitas Sanata Dharma Yogyakarta.

3. JB. Budi Darmawan S.T., M.Sc. selaku dosen pembimbing tugas akhir yang telah dengan sabar dan penuh perhatian membimbing penulis dalam menyusun tugas akhir.

4. Dr. Anastasia Rita Widiarti M.Kom selaku Ketua Program Studi Teknik Informatika yang selalu memberikan dukungan dan perhatian serta saran kepada mahasiswa tugas akhir dalam pengerjaan tugas akhir.

5. Kedua orang tua tercinta Bapak Siprianus Madu dan Ibu Ni Made Partini yang selalu mendoakan, memotivasi, menasihati, dan memberikan dukungan baik moral maupun materi kepada penulis.

6. Seluruh dosen program pendidikan Teknik Informatika atas ajaran dan didikan selama perkuliahan, serta pengalaman-pengalaman yang memotivasi bagi penulis.

7. Teman-teman program pendidikan Teknik Informatika angkatan 2012 Universitas Sanata Dharma, terima kasih kebersamaan atas dukungan yang kalian berikan.

(11)

pengalaman selama mengerjakan tugas akhir ini.

9. Terima kasih kepada semua pihak yang tidak dapat penulis sebutkan satu persatu yang mendukung dan memotivasi penulis baik secara langsung maupun secara tidak langsung.

Penulis menyadari bahwa masih adanya kekurangan dalam penulisan laporan tugas akhir ini. Kritk dan saran sangat penulis harapkan untuk menjadi motivasi dalam berkarya lagi. Akhir kata, penulis berharap laporan tugas akhir bisa berguna bagi perkembangan ilmu pengetahun dan wawasan pembaca.

Yogyakarta, ……… Penulis

Engelbertus Vione

(12)

DAFTAR ISI

LEMBARAN PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS...vii

ABSTRAK...viii

BAB 1 PENDAHULUAN...1

1.1 Latar Belakang...1

BAB 2 LANDASAN TEORI...6

2.1 Penambangan Data...6

2.1.1 Definisi Penambangan Data...6

2.1.2 Clustering...7

2.2 Big Data...10

(13)

2.3 Hadoop...11

2.3.1 Definisi Hadoop...11

2.3.2 Hadoop Distributed File System...12

2.3.3 Yarn...14

2.4 MapReduce...15

2.4.1 Definisi MapReduce...15

2.4.2 Proses MapReduce...17

2.5 Apache Mahout...19

2.5.1 Konsep MapReduce Pada Library Mahout Berdasarkan Algoritma K-Means...20

2.5.2 Metode Menjalankan Library Mahout...22

BAB 3 ANALISA PERANCANGAN...24

3.1 Gambaran Penelitian...24

3.1.1 Data...25

3.1.2 K-Means Mahout...26

3.2 Kebutuhan Sistem...27

3.3 Skema Sistem Big Data...30

3.3.1 Skema Single Node Cluster...30

3.3.2 Skema Multi Node Cluster...31

BAB 4 IMPLEMENTASI...33

4.1 Perancangan Sistem Big Data...33

4.1.1 Konfigurasi Single Node Cluster...33

4.1.2 Konfigurasi Multi Node Cluster...42

4.2 Implementasi Library Mahout Pada Sistem Hadoop...45

4.2.1 Install Maven...45

4.2.2 Install Eclipse...46

4.2.3 Install Mahout...46

4.3 Implementasi Metode K-Means Menggunakan Library Mahout...47

4.3.1 Preprocessing...47

4.3.2 Proses Menjalankan Komputasi K-Means...50

(14)

5.1 Analisa Implementasi K-Means Menggunakan Library Mahout Pada

Lingkungan Big Data...56

5.2 Analisa Unjuk Kerja Implementasi K-Means Menggunakan Library Mahout Pada Lingkungan Big Data...58

BAB 6 PENUTUP...60

6.1 Kesimpulan...60

6.2 Saran...60

DAFTAR PUSTAKA...61

LAMPIRAN-LAMPIRAN...64

(15)

DAFTAR TABEL

Tabel 2.1: Metode Menjalankan Library Mahout berdasarkan algoritma

K-Means menggunakan Command Line (Mahout, 2016)...23

Tabel 3.1: Informasi data liver disorder...26

Tabel 3.2: Spesifikasi Komputer Cluster...28

Tabel 5.1: Perbandingan hasil penghitungan manual dan library Mahout...58

Tabel 5.2: Unjuk kerja implementasi K-Means menggunakan library mahout pada lingkungan big data...59

(16)

DAFTAR GAMBAR

Gambar 2.1: Visualisasi K-Means (The Glowing Python, 2012)...9

Gambar 2.2: Distribusi chunk data (Yahoo!, 2014)...12

Gambar 2.3: Yarn berfungsi sebagai ResourceManager pada sistem Hadoop...15

Gambar 2.4: Proses Task Mapper dan Task Reducer (Yahoo!, 2014)...16

Gambar 2.5: Proses Mapping (Yahoo!, 2014)...18

Gambar 2.6: Proses Reducing (Yahoo!, 2014)...18

Gambar 2.7: Proses Shuffle(Yahoo!, 2014)...19

Gambar 2.8: Konsep MapReduce pada library Mahout berdasarkan algoritma K-Means (Vishnupriya N. et al., 2015)...22

Gambar 3.1: Flowchart pelitian...24

Gambar 3.2: Skema single node cluster...31

Gambar 3.3: Skema multi node cluster...32

Gambar 4.1: Menjalankan metode seqdumper pada command line...48

Gambar 4.2: Membuat direktori data dan direktori centroid pada hdfs...49

Gambar 4.3: Menyimpan sebuah file data trining dari sistem lokal ke dalam HDFS...49

Gambar 4.4: Menyimpan sebuah file centroid pada sistem lokal ke dalam HDFS...50

Gambar 4.5: Menjalankan K-Means menggunakan library Mahout...51

Gambar 4.6: Akhir dari iterasi K-Means...51

Gambar 4.7: Perintah $hdfs dfs -ls output...52

Gambar 4.8: Hasil proses K-Means pada direktori /user/hduser/output...52

Gambar 4.9: Summary berisi ringkasan informasi DataNode...53

Gambar 4.10: Informasi DataNode pada aplikasi NameNode Web Interface...54

Gambar 4.11: Informasi direktori /user/hduser pada HDFS...54

Gambar 4.12: Informasi direktori /user/hduser/data...55

Gambar 4.13: Informasi file sampleseqfile...55

(17)

Gambar 5.2: Beberapa hasil analisa cluster data dengan identitas VL-27...57 Gambar 5.3: Beberapa hasil analisa cluster data dengan identitas VL-49...57 Gambar 5.4: Diagram hasil unjuk keja sistem Hadoop...59

(18)

DAFTAR LAMPIRAN

Lampiran 1 : Install Java...64

Lampiran 2 : Konfigurasi Group Dan User Sistem Hadoop...66

Lampiran 3 : Melakukan Disable IPv6...68

Lampiran 4 : Install Hadoop...68

Lampiran 5 : Konfigurasi Environment Hadoop Single Node Cluster...70

Lampiran 6 : Konfigurasi Hostname, Hosts, & SSH...74

Lampiran 7 : Identifikasi Master Node & Slave Node...75

Lampiran 8 : Konfigurasi Environment Hadoop Multi Node Cluster...76

Lampiran 9 : Install maven...84

Lampiran 10 : Install Mahout...85

Lampiran 11 : Source code kelas KmeansDriver.java...86

Lampiran 12 : Source code kelas ClusterIterator.java...93

Lampiran 13 : Source code Kelas CIMapper.java...98

Lampiran 14 : Source code Kelas CIReducer.java...100

Lampiran 15 : Source code Kelas VectorDataCreator.java...102

Lampiran 16 : Source code Kelas VectorCentroidCreator.java...104

Lampiran 17 : Source code file core-site.xml...106

Lampiran 18 : Source code file mapred-site.xml...107

Lampiran 19 : Source code file hdfs-site.xml...108

Lampiran 20 : Source code file yarn-site.xml...109

Lampiran 21 : Hasil kalkulasi manual...110

Lampiran 22 : Hasil K-Means dengan menggunakan library Mahout...118

(19)

BAB 1 PENDAHULUAN

1.1 Latar Belakang

Perkembangan data yang sangat pesat membuat organisasi mencari metode untuk menyimpan dan mengolah data. Teknologi big data menjadi solusi untuk menyimpan data dan juga mampu mengolah data tersebut. Hadoop merupakan sebuah framework yang dapat menyimpan data dalam skala besar tanpa memperhatikan struktur dari data.

Koleksi data yang besar dapat diolah dan dianalisis untuk mendapatkan nilai atatu value pada data. Hasil analisa data tersebut berupa informasi yang dapat dijadikan pengambilan kebijakan pada organisasi. Hadoop menggunakan konsep pemrograman MapReduce untuk mengolah data menjadi informasi. MapReduce mampu melakukan komputasi secara paralel dan terdistribusi pada sistem Hadoop.

Mahout merupakan library yang menggunakan konsep pemrograman MapReduce dan dapat beradaptasi pada sistem Hadoop. Sehingga, Mahout dapat digunakan untuk menganalisa data dengan ukuran yang besar. Mahout menyediakan komputasi data mining atau penambangan data untuk menganalisa data. Means merupakan salah satu algoritma yang disediakan oleh Mahout. K-Means menganalisa data dengan mengelompokkan data berdasarkan kemiripan sifat.

(20)

1.2 Rumusan Masalah

Berikut beberapa rumusan masalah yang dapat dijadikan acuan dalam melakukan penelititan :

1) Bagaimana mengimplementasikan K-Means clustering pada lingkungan big data dengan menggunakan library Mahout berbasis model

pemrograman MapReduce?

2) Bagaimana unjuk kerja implementasi K-Means clustering pada lingkungan big data?

1.3 Tujuan

Berdasarkan rumusan-rumusan masalah, maka tujuan dari penelitian dapat dijabarkan sebagai berikut:

1) Mengimplementasikan K-Means clustering pada lingkungan big data dengan menggunakan library Mahout berbasis model pemrograman MapReduce.

2) Mengetahui unjuk kerja implementasi K-Means clustering pada lingkungan big data.

1.4 Manfaat

Manfaat yang dapat diperoleh dari penelitian ini ialah sebagai berikut: 1) Sebagai referensi oleh instansi dan organisasi tertentu yang hendak

menyimpan dan menganalisa koleksi data yang besar.

(21)

1.5 Batasan Masalah

Batasan masalah dalam penelitian ini ialah sebagai berikut:

1) Koleksi data diperoleh dari repositori UCI Machine Learning dengan alamat https://archive.ics.uci.edu/ml/data sets/liver+Disorders.

2) Format koleksi data ialah .CSV

3) Teknologi big data yang digunakan ialah Apache Hadoop versi 2.6.0. 4) Model pemrograman yang digunakan ialah MapReduce.

5) Library MapReduce yang digunakan ialah Apache Mahout yang berbasis bahasa pemrograman Java.

6) Proses coding menggunakan Eclipse IDE.

7) Proses compile library Mahout menggunakan Apache Maven.

8) Proses Monitoring Hadoop Distributed File System dilakukan pada browser Mozilla Firefox.

9) Sistem operasi yang digunakan ialah Ubuntu versi 14.04.

1.6 Metodologi Penelitian

Metodologi penelitian akan dijabarkan sebagai berikut: 1. Studi pustaka

Studi pustaka menjelaskan teori-teori yang digunakan dalam penelitian. Adapun teori-teori yang digunakan ialah data mining, K-Means clustering, big data, Hadoop, Hadoop Distributed File System (HDFS), Yarn,

MapReduce, dan Mahout. 2. Perancangan sistem

Perancangan sistem meliputi segala perangkat lunak dan perangkat keras yang dibutuhkan dalam mengembangkan sistem.

(22)

Luaran sistem ini ialah sebuah sistem big data dengan menggunakan menggunakan framework Hadoop. Sistem Hadoop ini berjalan pada jaringan lokal. Library Mahout yang berjalan pada sistem Hadoop digunakan untuk menganalisa koleksi data pada sistem Hadoop.

4. Evaluasi

Evaluasi sistem ini akan dibagi kedalam 2 bagian yakni:

a) Membandingkan hasil komputasi K-Means dengan menggunakan library Mahout dengan menggunakan penghitungan manual. Hasil

pengujian memperlihatkan kecocokan centroid dari hasil komputasi dengan menggunakan library Mahout berdasarkan hasil dari penghitungan manual.

b) Menguji unjuk kerja implementasi K-Means clustering pada lingkungan big data. Pengujian dilakukan dengan menjalankan komputasi K-Means menggunakan library Mahout sebanyak 10 kali pada jumlah slave node yang berbeda. Hasil pengujian memperlihatkan rata-rata waktu eksekusi komputasi K-Means pada jumlah slave node yang berbeda.

1.7 Sistematika Penulisan

Tugas akhir ini akan disusun ke dalam 6 bab dengan sistematika penulisan sebagai berikut:

(23)

Pendahuluan berisi tentang latar belakang, rumusan masalah, tujuan, manfaat, batasan masalah, metode penelitian dan sistematika penulisan.

BAB II : LANDASAN TEORI

Tinjauan pustaka dan dasar teori menjelaskan teori-teori yang digunakan dalam menyusun tugas akhir ini.

BAB III : ANALISA PERANCANGAN

Analisa perancangan menjelaskan skema perancangan implementasi K-Means pada lingkungan big data dengan menggunakan library Mahout berbasis konsep pemrograman MapReduce. Bagian ini menjelaskan pula media-media yang akan digunakan untuk mengembangkan sistem

BAB IV : IMPLEMENTASI

Implementasi menjelaskan tahap-tahap pengembangan sistem big data. Bagian ini menjelaskan pula mengenai implementasi library Mahout pada sistem Hadoop.

BAB V : ANALISA HASIL

Analisa hasil perancangan dan pengembangan sistem dibahas secara lengkap.

BAB VI : KESIMPULAN DAN SARAN

(24)

BAB 2 LANDASAN TEORI

Bab ini membahas teori-teori yang berkaitan dengan penulisan tugas akhir ini. Teori-teori tersebut yakni penambangan data, metode clustering, K-Means sebagai salah satu algoritma clustering, big data, Hadoop, Hadoop Distributed File System (HDFS), MapReduce, dan Apache Mahout.

2.1 Penambangan Data

2.1.1 Definisi Penambangan Data

Perkembangan data menjadi sebuah hal yang lumrah dewasa ini. Data pada komputer yang terhubung melalui jaringan internet mampu mencapai ukuran terabyte (TB) bahkan pentabyte (PB). Perkembangan data ini menghasilkan data mentah. Sehingga organisasi tertentu berusaha untuk mencari informasi tersembunyi pada data yang kemudian dapat digunakan untuk mengembangkan organisasi mereka.

Penambangan data atau data mining sering disebut Knowledge Discovery in Database (KDD) adalah kegiatan yang meliputi pengumpulan, pemakaian data

historis untuk menemukan keteraturan, pola atau hubungan dalam set data berukuran besar. Hasil data mining ini bisa dipakai untuk memperbaiki pengambilan keputusan di masa depan (Santosa, 2007).

(25)

2.1.2 Clustering

Clustering merupakan salah satu metode pada penambangan data. Tujuan

utama dari metode clustering ialah mengelompokkan sejumlah objek data ke dalam sebuah cluster atau grup. Sebuah objek pada sebuah cluster memiliki kemiripan yang sama dengan objek lain dan sebuah objek memiliki perbedaan dengan objek pada cluster lain. Clustering menggunakan teknik unsupervised learning yang digunakan untuk mengelompokkan data atau objek ke dalam

kelompok tertentu tanpa adanya label cluster sebelumnya. Teknik ini baik digunakan pada koleksi data yang tidak memiliki label sebelumnya. Sedangkan untuk data yang memiliki label, teknik ini dapat dijadikan sebagai pembanding antara hasil clustering dengan label sebenarnya. Sehingga diketahui tingkat akurasi pada metode clustering tersebut. Teknik yang membutuhkan data label disebut supervised learning. Metode yang digunakan dalam menentukan kemiripan antar objek ialah dengan menghitung jarak terpendek. Salah satu metode untuk menghitung jarak terpendek ialah Euclidean Distance.

Dalam matematika, Euclidean Distance adalah jarak antara dua titik yang dapat diukur menggunakan formula pythagoras. Euclidean Distance sering disebut sebagai dengan vector geometri yang memiliki panjang (magnitude) dan arah (direction). Sedangkan ruang vektor adalah sebuah struktur matematika yang dibentuk oleh sekumpulan vektor. Vektor-vektor tersebut dapat ditambahkan dikalikan dengan bilangan real dan lain-lain (Prasetya, 2013).

(26)

A‖=

X12+Y12 dan B‖=

X22+Y22

Sedangkan untuk menghitung kedua jarak antara kedua vektor tersebut

ialah sebagai berikut: d( ¯A ,¯B)=

(X1−X2)2+(Y1−Y2)2

2.1.2.1 KMeans

K-Means merupakan salah satu algoritma penambangan data yang menerapkan metode clustering. Jika diberikan sekumpulan data X = {x1, x2, ..., xn} dimana xi = (xi1, xi2, ..., xin) adalah vector, maka algoritma K-Means akan mempartisi x dalam k buah cluster (Prasetya, 2013). Sehingga proses awal dalam menggunakan algoritma ini ialah dengan menentukan jumlah cluster atau K terlebih dahulu. Pengelompokkan objek berdasarkan ukuran jarak terpendek dengan pusat cluster atau centroid (Han J. et al., 2000).

Algoritma K-Means dapat diterangkan melalui pseudocode berikut (Santosa, 2007):

1) Langkah pertama ialah memilih jumlah cluster atau K.

2) Inisialisasi K pusat kelompok atau pemilihan nilai awal centroid dilakukan dengan cara random.

3) Penentuan kemiripan antar objek dilakukan dengan menghitung jarang terdekat antara objek. Demikian untuk penentuan suatu objek dengan centroid tertentu. Tahap ini menghitung jarak suatu objek dengan

centroid. Jika suatu objek memiliki jarak terpendek dengan centroid A

(27)

4) Penentuan centroid baru kembali dilakukan dengan cara menghitung nilai rata-rata dari semua objek pada kelompok tertentu.

5) Objek pada setiap cluster dikelompokkan berdasarkan centroid baru. Langkah 3 dan 4 kembali dilakukan sampai nilai centroid tidak mengalami perubahan.

Gambar 2.1 memperlihatkan masing-masing objek dikelompokkan berdasarkan kemiripan dengan centroid. Centroid ditandai dengan dengan objek data berwarna ungu. Sedangkan kemiripan objek ditandai dengan warna yang sama.

(28)

2.2 Big Data

2.2.1 Definisi Big Data

Big data dapat diartikan sebagai sebuah koleksi atau kumpulan data yang

besar dan kompleks. Berdasarkan perkembangannya, big data memiliki 3 dasar definisi yakni volume, velocity, dan variety (Rathi R. et al., 2014).

1) Volume

Volume menjelaskan bahwa big data memiliki ukuran data yang besar.

Kumpulan data seperti data kesehatan merupakan jenis data yang sesuai dengan konsep big data karena data tersebut terus berkembang (Rathi R. et al., 2014). Teknologi big data hadir untuk menyimpan data-data yang belum diketahui nilai bisnisnya dan dalam volume besar, platform berbasis big data seperti Hadoop memberikan solusi (Data Science Indonesia,

2015). 2) Variety

(29)

berupa data teks lainnya, data gambar, data suara, dan data video (Ronk, J. 2014).

3) Velocity

Data velocity atau kecepatan data berbanding lurus dengan volume data.

Data tidak hanya datang dalam jumlah besar, tetapi juga dalam tempo yang lebih singkat dan bahkan ada yang real-time. Hal ini menjadi tantangan pada teknologi big data (Data Science Indonesia, 2015).

2.3 Hadoop

2.3.1 Definisi Hadoop

Apache Hadoop software library adalah sebuah framework yang sesuai

digunakan untuk proses terdistribusi dari kumpulan data yang besar pada komputer cluster dengan model-model pemrograman yang sederhana (Apache, 2015). Hadoop merupakan open source framework yang dikembangkan oleh Apache Software Foundation. Hadoop digunakan untuk memproses kumpulan data yang besar dalam sebuah server paralel komputer (Rathi R. et al., 2014). Hadoop dikembangkan untuk memproses skalabilitas data web atau web-scale data yang mampu mendistribusikan data dengan kapasitas ukuran yang besar.

(30)

2.3.2 Hadoop Distributed File System

Pada cluster Hadoop, data didistribusikan ke seluruh node. Hadoop Distributed File System (HDFS) akan membagi data yang besar ke dalam chunk

yang dikelola oleh setiap node pada cluster. Setiap chunk akan direplikasi pada beberapa mesin komputer. Sehingga jika sebuah komputer atau node mengalami kegagalan (failure) maka data masih dapat diakses pada komputer lain. Gambar 2.2 menunjukkan data didistribusikan pada seluruh node saat proses load (load time). Meskipun file chunk direplikasi dan didistribusikan ke setiap mesin

komputer, namun chunk tersebut memiliki namespace yang tunggal.

Data pada Hadoop programming framework menggunakan konsep record-oriented. Setiap input file akan dipecah dalam baris atau format lain yang spesifik

(31)

kemudian akan memproses subset dari record tersebut. Hadoop kemudian menjadwalkan proses-proses tersebut di berdasarkan kedekatan lokasi data/ record menggunakan konsep kerja dari sistem file terdistribusi. Sejak file-file

tersebar pada sistem file terdistribusi sebagai chunk, setiap proses komputasi yang berjalan pada sebuah node beroperasi pada sebuah subset dari data. Data yang dioperasikan oleh sebuah node dipilih berdasarkan locality dari node: data paling banyak dibaca dari disk lokal langsung ke CPU, untuk mengurangi ketegangan bandwidth jaringan dan mencegah transfer jaringan yang tidak perlu. Locality data yang tinggi ini menjadi sebuah keunggulan pada Hadoop (Yahoo!, 2014).

HDFS memiliki 2 tipe operasi node yakni service NameNode pada master node dan service DataNode pada slave node. NameNode bertugas dalam

mengatur namespace sistem file. NameNode mengatur susunan sistem file dan metadata untuk semua file dan direktori pada susunan tersebut. Informasi tersebut disimpan pada local disk kedalam 2 bentuk file yakni namespase image dan edit log. NameNode juga mengetahui proses kerja dari DataNode, seperti letak lokasi

dari block data (chunk). Namun NameNode tidak bertugas dalam menyimpan data tersebut, DataNode berfungsi sebagai tempat kerja dari sistem file. DataNode bertugas menyimpan dan menerima block data ketika mendapatkan perintah dari pengguna atau NameNode. DataNode melaporkan kepada NameNode secara periodik tentang daftar block data yang disimpan.

(32)

membaca susunan block data pada DataNode. HDFS memiliki sebuah service Secondary NameNode. Tugas utama dari secondary NameNode ialah menggabungkan namespace image dengan edit log untuk mencegah edit log berukuran sangat besar. Secondary NameNode membutuhkan memory yang hampir sama besar dengan NameNode. Secondary NameNode membuat gabungan file tersebut agar dapat digunakan ketika NameNode mengalami kegagalan (White, 2015).

2.3.3 Yarn

(33)

Sedangkan NodeManager berjalan pada slave node. NodeManager betugas mencari sumber daya yang memungkinkan untuk memproses data pada slave node dan mengirimkan laporan aktivitas secara periodik kepada ResourceManager. Sumber data proses pada sistem Hadoop membutuhkan potongan bite-size yang disebut containers. Container adalah sebuah koleksi dari semua sumber daya yang diperlukan untuk menjalankan aplikasi seperti CPU cores, memory, network bandwidth, dan ruang pada disk. Container bersifat umum

atau generic sehingga dapat menjalankan berbagai jenis model komputasi, selama sumber daya yang diperlukan cukup untuk menjalankan model komputasi tersebut. Semua proses Container yang berjalan pada slave node dimonitor oleh service NodeManager pada slave node (deRoos, D. et al., 2014).

2.4 MapReduce

2.4.1 Definisi MapReduce

Hadoop mengurangin komunikasi yang dapat dikerjakan oleh sebuah proses. Setiap record diproses oleh sebuah task yang terisolasi dari task yang lain. Model pemrograman yang digunakan untuk manajemen data disebut MapReduce.

(34)

Pada MapReduce, record diproses dalam sebuah task yang disebut Mapping. output dari Mapping task akan dibawa dan diproses pada task kedua yang disebut

sebagai Reducing, dimana hasil dari Mapping yang berbeda akan digabung (Yahoo!, 2014).

Gambar 2.4 menunjukkan task Mapper dan task Reducer berjalan pada node-node dimana record dari data telah tersedia. Node-node yang terpisah dalam

cluster Hadoop masih berkomunikasi antara satu dengan yang lain. Pecahan data

diberi tag atau tanda dengan sebuah key yang bertujuan menginformasikan Hadoop bagaimana mengirim data (bit of information) ke node tujuan. Hadoop secara internal mengelola semua transfer data dan masalah topologi cluster (Yahoo!, 2014).

(35)

2.4.2 Proses MapReduce

Fase pertama dari program MapReduce disebut mapping. Sebuah list elemen data melalui sebuah fungsi yang disebut Mapper yang akan mentransformasikan setiap elemen individual ke elemen data output. Fungsi Mapper tidak memodifikasi list input string tetapi menghasilkan sebuah string

baru yang menjadi bagian dari sebuah list output yang baru (Yahoo!, 2014). Setiap element data output akan dipecah ke dalam sebuah pasangan data key dan value (DeZyre, 2015). Key berfungsi sebagai identitas unik pada data, sedangkan

value merupakan nilai dari data itu sendiri.

Gambar 2.5 menunjukkan task Mapping membuat sebuah list output yang baru pada seluruh list data elemen input. Reducing memungkinkan pengumpulan value bersama. Fungsi Reducer menerima sebuah iterator dari value masukkan

(input value) dari sebuah list input. Kemudian Reducer task menggabungkan nilai-nilai ini bersama. Reducer task mengembalikan nilai output tunggal. Reducing sering digunakan untuk menghasilkan data summary atau mengubah

(36)

Gambar 2.6 menunjukkan Proses reducing sebuah iterasi list pada seluruh value masukkan untuk menghasilkan sebuah kumpulan value sebagai output.

Dalam MapReduce, tidak ada value yang berdiri sendiri. Setiap value memiliki key yang berasosiasi. key bertugas untuk mengidentifikasi value. Fungsi mapping dan reducing tidak hanya menerima value, tetapi pasangan key dan

value. Sebuah fungsi reducing berfungsi untuk mengubah sebuah list dari value

yang besar ke dalam sebuah (atau beberapa) value output. Semua output value tidak mengalami proses reduce bersamaan. Tetapi semua value yang memiliki key

Gambar 2.5: Proses Mapping (Yahoo!, 2014).

(37)

sama yang akan mendapatkan proses reduce bersama (Yahoo!, 2014). Proses ini biasa disebut shuffle task. Hal ini dikarenakan semua value yang memiliki key yang sama akan dikelompokkan sebelum melalui proses reduce (Voruganti, S., 2014).

Gambar 2.7 memperlihatkan bahwa warna berbeda mereprentasikan key berbeda. Semua value dengan key sama akan dipresentasikan ke dalam sebuah task reduce tunggal.

2.5 Apache Mahout

Mahout memiliki tiga kualitas yang dapat dijelaskan sebagai berikut. Pertama, Mahout merupakan library machine learning dari Apache. Mahout memiliki dasar komputasi yakni recommender engine, clustering, dan classification. Selain itu, Apache Mahout bersifat scalable. Apache Mahout dapat

digunakan sebagai pilihan alat machine learning ketika koleksi data yang akan diproses sangat besar yang ukurannya tidak dapat disimpan dalam sebuah komputer. Mahout ditulis dengan menggunakan bahasa Java dan beberapa dari

(38)

Mahout dikembangkan pada proyek komputasi Apache’s Hadoop Distributed. Oleh karena Mahout merupakan sebuah library Java. Sehingga library ini tidak menyediakan sebuah antarmuka pengguna atau user interface, prepackaged server, dan sebuah installer. Mahout merupakan sebuah framework yang cocok

digunakan dan diadaptasikan oleh pengembang.

Mahout menempatkan skalabilitas pada prioritas yang paling tinggi. Metode machine learning yang mutakhir diterapkan pada level skalabititas. Library Mahout yang bersifat open source atau sumber terbuka digunakan pada

lingkungan Hadoop, sehingga Mahout mampu menggunakan konsep komputasi MapReduce (Owen, S. et al., 2012).

2.5.1 Konsep MapReduce Pada Library Mahout Berdasarkan Algoritma K-Means

Berdasarkan penelitian Vishnupriya, N. dan Francis, S. (2015), proses algorima K-Means clustering pada library Mahout yang menggunakan konsep pemrograman MapReduce dapat dijabarkan ke dalam beberapa fase:

1) Initial

(39)

penelitian Vishnupriya, N. et al. (2015), inisial centroid dipilih secara random pada koleksi data.

2) Mapper

Pada fase Mapper, proses dilanjutkan dengan menghitung jarak antara setiap item data dengan K centroid. Penghitungan jarak terdekat dilakukan pada selutuh item data. Luaran dari penghitungan ialah item data dengan format <ai, zj>. ai merupakan pusat dari kelompok (cluster) data zj. 3) Reducer

(40)

Berdasarkan penelitian Vishnupriya, N. dan Francis, S. (2015), maka konsep K-Means pada library Mahout dengan menggunakan model pemrograman MapReduce dapat visualisasikan pada gambar 2.8.

2.5.2 Metode Menjalankan Library Mahout

Berdasarkan website resmi Mahout (2016), library Mahout dapat berjalan pada sistem lokal atau pun pada Hadoop Distributed File System (HDFS). Metode yang digunakan dalam menjalankan library Mahout ialah melalui command line. Metode yang digunakan untuk menjalankan perintah K-Means ialah dengan menjalankan perintah $mahout kmeans pada command line lalu diikuti dengan parameter pada yang tertera pada tabel 2.1.

(41)

Tabel 2.1: Metode Menjalankan Library Mahout berdasarkan algoritma K-Means menggunakan Command Line (Mahout, 2016)

Perintah Penjelasan

--input atau -i Merupakan alamat file input yang harus berupa Sequence File

--clusters atau -c Merupakan alamat input file centroid yang harus berupa sequence file

--output atau -o Merupakan alamat file output yang harus berupa Sequence File

--distanceMeasure atau -dm

Algoritma pengukuran jarak.

--convergenceDelta atau -cd

Nilai konvergen merupakan nilai untuk menetukan proses iterasi berhenti. Secara default, convergen delta bernilai 0.5

--maxIter (-x) maxIter Jumlah maksimal iterasi

--maxRed (-r) maxRed Jumlah Task Reducin. Secara default, bernilai 2 --k (-k) k Nilai jumlah kelompok data atau cluster

--overwrite (-ow) Jika direktori ada, maka perintah ini akan menghapus direktori tersebut, sebelum menjalankan perintah atau Job.

--help (-h) Menampilkan informasi help

(42)

BAB 3 ANALISA PERANCANGAN

Bab ini akan menjabarkan tentang mekanisme perancangan sistem yang dibagi dalam gambaran penetilian, kebutuhan sistem, dan skema sistem big data.

3.1 Gambaran Penelitian

Gambar 3.1: Flowchart pelitian

Gambar 3.1 menunjukkan gambaran proses pada penelitian yang divisualisasikan dalam diagram flowchart.

(43)

3.1.1 Data

Peneliti menggunakan sumber data atau dataset dari bank data UCI Machine Learning mengenai liver Disorders Data Set. Berikut beberapa informasi

mengenai data Liver Disorders: 1. Judul data ialah Liver Diorders 2. Beberapa informasi dataset yakni:

a. Data diciptakan oleh BUPA Medical Research Ltd.

b. Penyumbang data ialah Richard S. Forsyth, 8 Grosvenor Avenue, Mapperley Park, Nottingham NG3 5DX, 0602-621676.

c. Data dibuat pada tanggal 15 Mei 1990.

3. Lima variabel pertama ialah hasil tes darah yang dianggap sensitif untuk penyakit liver disorder atau kelainan hati yang kemudian konsumsi alkohol menjadi salah satu penyebab. Setiap baris pada file bupa.data merupakan hasil uji coba pada seseorang pria.

4. Baris data berjumlah 345 baris. 5. Atribut data berjumlah 7.

(44)

Tabel 3.1: Informasi data liver disorder

No Atribut Keterangan

1. mcv mean corpuscular volume yaitu rata-rata volume korpuskuler darah

2. alkphos alkaline phosphotase yaitu kadar alkali fosfat dalam darah

3. sgpt alamine aminotransferase yaitu kadar alamin aminotransferase dalam darah

4. sgot aspartate aminotransferase yaitu kadar aspartat aminotrasferase dalam darah

5. gammagt glutamyl transpeptidase yaitu kadar gamma-glutamil transpeptidase dalam darah

6. drink jumlah minum minuman beralkohol per hari dalam satuan half-pint (257 ml per satuan)

7. selector Attribut ini adalah atribut class yang nantinya menjadi sumber penghitungan akurasi. Bernilai 1 atau 2. Jika 1 maka instance tersebut menderita penyakit hati. Jika 2 maka instance tersebut normal.

7. Data liver disorder tidak memiliki missing value atau hilangnya sebuah item data.

3.1.2 K-Means Mahout

Metode K-Means clustering digunakan dalam menganalisis data liver disorder karena mampu untuk mengelompokkan data berdasarkan kemiripan sifat

(45)

Beberapa hal yang harus diperhatikan dalam K-Means Mahout yakni: 1) Data training yang akan menjadi input harus berformat sequence. File

Sequence merupakan format file yang dapat dibaca oleh library Apache

Mahout. File Sequence sendiri akan memiliki struktur format key dan

value.

2) Data centroid juga harus berformat sequence.

3) Hasil atau output dari proses K-Means akan berupa sebuah direktori yang berisi dari proses iterasi dari K-Means.

1) Pengukuran kesamaan sifat menggunakan rumus jarak terpendek atau similarity measure. Adapun dalam penelitian ini similarity measure yang

digunakan ialah Euclidean Distance,

2) Convergen threshold merupakan nilai yang telah ditetapkan untuk menentukan bahwa iterasi pada proses K-Means berhenti.

3) Jumlah iterasi yang maksimal yang dapat dikerjakan oleh sistem.

4) Jumlah kelompok atau nilai K dari sistem K-Means. Adapun dalam penelitian ini, jumlah K yang akan digunakan ialah 2.

3.2 Kebutuhan Sistem

Alat yang dibutuhkan untuk mengembangkan sistem ialah: 1. Perangkat keras

(46)

Tabel 3.2: Spesifikasi Komputer Cluster Jenis Node Processor Memory Hard Drive Network Master Node Intel®

b) Perangkat keras lainnya yakni 1) Kabel RJ45 berjumlah 4

2) Router D-Link DES-1024D berjumlah 1. 2. Perangkat Lunak

Perangkat lunak yang digunakan ialah sebagai berikut: a) Ubuntu 14.04

Ubuntu merupakan sistem operasi yang menggunakan Linux sebagai kernelnya.

(47)

Hadoop memerlukan Java agar dapat berjalan pada sistem Ubuntu. Sedangkan versi Java yang dibutuhkan Hadoop ialah diatas versi 5. Penelitian ini menggunakan Java versi 7.

c) SSH (Secure Shell)

Sistem big data ini menggunakan SSH akses untuk mengatur seluruh node. Cara mengaturnya ialah dengan melakukan remote sebuah slave

node pada sebuah master node.

d) Apache Hadoop 2.6.0

Versi Hadoop yang digunakan ialah 2.6.0. Versi ini sudah mendukung fitur Yarn. Yarn merupakan bagian penting dalam Hadoop selain daripada Hadoop Distributed File System (HDFS), dan MapReduce. Yarn berfungsi untuk mengatur penggunaan resource atau sumber daya dari komputer cluster.

e) Apache Mahout 0.10.1

Versi Mahout yang digunakan ialah 0.10.1. f) Apache Maven 3.3.9

Apache maven merupakan library yang digunakan untuk proses build dan compile library Mahout.

g) Eclipse Kepler

Eclipse merupakan IDE yang berfungsi untuk menulis dan mengelola sumber kode atau source code dari Apache Mahout.

(48)

LibreOffice Calc merupakan aplikasi perkantoran dari LibreOffice yang umum digunakan untuk mengolah data angka yang ditampilkan dalam bentuk spreadsheet.

i) Editor nano dan pluma

Editor nano dan pluma berfungsi untuk menampilkan data. Namun, editor nano hanya dapat berjalan pada terminal atau command line. j) MATE Terminal

Aplikasi MATE Terminal digunakan sebagai command line untuk menjalankan perintah-perintah sistem Linux dan mengeksekusi aplikasi atau paket program pada sistem Linux termasuk perintah dari Hadoop dan Mahout.

3.3 Skema Sistem Big Data

Berdasarkan proses implementasinya, sistem big data pada mulanya dikembangkan dalam masing-masing node. Implementasi sistem big data pada sebuah komputer disebut single node cluster. Setelah sistem big data diimplementasikan pada masing-masing node, maka langkah selanjutnya ialah menyatukan selutuh node menjadi satu. Proses ini disebut multi node cluster.

3.3.1 Skema Single Node Cluster

(49)

SecondaryNamenode, ResourceManager, dan NodeManager. Router digunakan untuk membuat koneksi jaringan lokal. Sehingga setiap komputer tunggal (single node) memiliki IP Address. Adapun setiap komputer memiliki IP Address yang

tergabung dalam satu jaringan. Sehingga ketika setiap komputer memiliki IP Address yang saling terhubung dalam jaringan komputer, maka setiap komputer dapat dikonfigurasi ke dalam multi node cluster.

3.3.2 Skema Multi Node Cluster

Skema multi node cluster yang memperlihatkan sistem Hadoop yang diimplementasikan pada multi komputer dapat dilihat pada gambar 3.3. Perancangan multi node cluster menggunakan 4 komputer yang terdiri dari 1

(50)

master node dan 3 slave node. Router digunakan untuk membuat koneksi jaringan

lokal. Router bertindak sabagai gateway pada sistem jaringan, yang berfungsi untuk menghubungkan sebuah node dengan node yang lain. IP Address digunakan untuk memberi alamat pada masing-masing node. Master node akan menjalankan service NameNode, SecondaryNamenode dan ResourceManager. Sedangkan

slave node akan menjalankan service DataNode dan NodeManager.

(51)

BAB 4 IMPLEMENTASI

Bab ini menjabarkan implementasi perancangan sistem big data yakni konfigurasi single node cluster dan multi node cluster, serta implementasi library Mahout pada sistem Hadoop yang terdiri dari proses install Maven, IDE Eclipse, dan Mahout.

4.1 Perancangan Sistem Big Data

Perancangan sistem Hadoop dimulai dengan melakukan konfigurasi pada masing-masing komputer, setelah itu proses dilanjutkan dengan menggabungkan semua node menjadi satu.

4.1.1 Konfigurasi Single Node Cluster

Konfigurasi single node cluster diterapkan pada seluruh komputer cluster. Oleh karena itu, konfigurasi ini akan diimplementasikan pada 4 komputer cluster yaitu 1 master node dan 3 slave node. Secara teknis, proses konfigurasi menerapkan metode yang sama. Adapun beberapa paket aplikasi yang diinstall berada pada direktori /home/mnode/big\ data\ applikasi.

4.1.1.1 Install Java

Paket Java dibutuhkan karena framework Hadoop dan library Mahout berjalan diatas lingkungan Java. Screenshot proses install Java dapat dilihat pada bagian Lampiran 1. Adapun berikut merupakan proses menginstall Java :

1. Melakukan proses extract file pada file arsip Java

(52)

Perintah yang digunakan untuk melakukan proses extract file Java ialah tar -xzf file-paket-Java.tar.gz. tar merupakan command atau perintah yang digunakan untuk melakukan extract file pada arsip file yang berekstensi .tar.gz. Parameter -x atau --exclude-from merupakan perintah mengecualikan susunan pola pada file. Parameter f atau –file menunjukkan ekstrak data dilakukan pada file arsip atau archive file. Sedangkan parameter -z atau --uncompress digunakan untuk perintah uncompress atau ekstrak file.

2. Membuat direktori java pada direktori /usr/local

Tujuan dari langkah ini ialah untuk membuat direktori khusus untuk menyimpan paket Java pada sistem Linux Ubuntu. Perintah yang digunakan ialah $sudo mkdir /usr/local/java. Mkdir merupakan perintah untuk membuat sebuah atau beberap direktori. Perintah sudo menunjukkan bahwa perintah harus dilakukan pada sisi administrator pada sistem Linux Ubuntu.

(53)

Proses ini harus dilakukan karena proses install java menggunakan source code java. Variabel JAVA_HOME merupakan variable yang

menunjukkan direktori tempat menyimpan source code java. Perintah export digunakan untuk mengenali Java pada sistem Ubuntu.

5. Uji coba environment Java

echo merupakan perintah yang digunakan untuk menampilkan sebuah data suatu variable. Sehingga echo dapat digunakan untuk menampilkan data variabel JAVA_HOME yang merupakan lokasi Java pada sistem Linux.

4.1.1.2 Konfigurasi Group Dan User Sistem Hadoop

User merupakan pengguna sistem Ubuntu yang telah terdaftar. Sedangkan

group merupakan sebuh wadah untuk mengelompokkan user atau pengguna pada

sistem Ubuntu. Implementasi ini menggunakan group dan user khusus untuk memudahkan dalam membangun sistem Hadoop. Screenshot langkah-langkah konfigurasi group dan user sistem Hadoop dapat dilihat pada Lampiran 2. Berikut penjelasan langkah-langkah konfigurasi group dan user atau pengguna dari sistem Hadoop:

1. Menambah group Hadoop

(54)

2. Menambah user hduser pada group hadoop

Adduser merupakan perintah untuk menambahkan pengguna pada sistem Ubuntu. Perintah --ingroup merupakan perintah untuk menambahkan pengguna secara langsung pada sebuah group. Sehingga perintah $sudo adduser –ingroup hadoop hduser merupakan perintah untuk menambahkan pengguna hduser pada group hadoop. Pengguna hduser sendiri akan secara khusus bertugas untuk menjalankan aktivitas pada sistem hadoop.

3. Menginstall openssh-server

Protokol SSH digunakan untuk melakukan manajemen komputer cluster. Dengan menggunakan protokol SSH, maka administrator dapat mudah dalam memanajemen komputer atau node lain dengan melakukan monitoring. Paket yang digunakan dalam mengintal SSH ialah open-ssh

server.

4. Login sebagai pengguna hduser

Langkah ini dimaksudkan bahwa proses konfigurasi selanjutnya dilakukan pada host hduser.

5. Membuat kunci RSA atau RSA Key untuk pengguna hduser

(55)

keseluruhan sistem Hadoop. Namun karena implementasi sistem dilakukan di jaringan local, maka menggunakan password kosong.

6. Membuat authorized_keys

authorized_keys dibutuhkan untuk mengijinkan akses SSH dari node ke

sistem lokal.

7. Mengetes SSH pada sistem lokal

Proses ini tidak hanya mengetes SSH pada sistem lokal. Namun, proses

dilakukan untuk menyimpan host key fingerprint pada sistem local yang

terletak pada file known_hosts yang terletak pada direktori /home/.ssh.

4.1.1.3 Melakukan Disable IPv6

Screenshot langkah ini dapat dilihat pada Lampiran 3. Berikut penjelasan

langkah-langkah dalam melakukan disable IPv6: 1. Konfigurasi pada file /etc/sysctl.conf

Konfigurasi disable IPv6 dilakuakn pada file /etc/sysctl.conf. Adapun Pengembangan sistem Hadoop tidak membutuhkan konfigurasi IPv6 2. Mengecek status disable IPv6

(56)

4.1.1.1 Install Hadoop

Screenshot langkah ini dapat diliaht pada Lampiran 4. Berikut penjelasan langkah-langkah proses install Hadoop:

1. Melakukan extract file pada file arsip Hadoop

Langkah ini sama seperti langkah dalam mengekstrak file Java, karena paket source code Hadoop dikemas dalam file tar.gz.

2. Menyalin source code Hadoop ke folder /usr/local 3. Mengubah privilege atau hak akses pada folder hadoop

Perintah chown digunakan untuk mengubah hak akses sebuah file atau folder berdasarkan pengguna dan group. Direktori hadoop secara khusus

diperuntukkan untuk pengguna hduser dan digunakan pada group Hadoop. 4. Melakukan konfigurasi variable Hadoop pada file .bashrc

Proses sama seperti langkah sebelumnya, yakni agar Hadoop mudah dikenali oleh sistem Linux.

5. Mengetes implementasi Hadoop

Mengetes Hadoop dilakukan pada sisi pengguna hduser dengan cara mengecek versi dari Hadoop. Hasil dari perintah $hadoop version ialah berupa versi Hadoop dan metadata Hadoop lainnya.

4.1.1.2 Konfigurasi Environment Hadoop Single Node Cluster

Konfigurasi ini dilakukan pada node klaster tunggal atau single node cluster. Konfigurasi dilakukan pada direktori sistem Hadoop yang terletak pada

(57)

dilihat pada bagian Lampiran 5. Berikut langkah-langkah konfigurasi lingkungan atau environment Hadoop Single Node Cluster:

1. Melakukan konfigurasi JAVA_HOME pada file hadoop-env.sh

Konfigurasi dlakuakn pada file hadoop-env.sh dengan mengubah alamat direktori atau path JAVA_HOME dengan lokasi tempat menginstall Java pada sistem Ubuntu. Java sangat dibutuhkan agar sistem Hadoop dapat berjalan. Hal ini dikarena framework Hadoop dikembangkan menggunakan Java dan hanya dapat berjalan diatas Java environment atau lingkungan Java.

2. Konfigurasi core-site.xml

Konfigurasi pada file core-site.xml merupakan konfigurasi lokasi temporary direktory dari Hadoop Distributed File System (HDFS).

Dengan kata lain langkah ini menjelaskan lokasi data Hadoop dan semua metadata Hadoop disimpan. Adapun dalam penelitian ini, lokasi HDFS ditempatkan pada direktori /app/hadoop/tmp. Konfigurasi ditempatkan pada tag <value></value>.

3. Membuat direktori /app/hadoop/tmp

Proses membuat direktori /app/hadoop/tmp dilakukan pada sisi pengguna mnode yang berperan sebagai administrator pada sistem Ubuntu. Hal ini dikarena direktori /app/hadoop/tmp ditempatan pada direktori root yang hanya dapat diakses oleh administrator.

(58)

Direktori /app/hadoop/tmp temporary directory digunakan untuk menempatkan HDFS pada local disk. Sehingga direktori ini secara khusus diperuntukkan untuk pengguna hduser.

5. Mengatur permission pada direktori /app/hadoop/tmp

Proses ini bertujuan untuk menjaga keamanan pada direktori /app/hadoop/tmp. Dengan kata lain, tidak semua jenis dapat dieksekusi pada direktori ini.

6. Konfigurasi mapred-site.xml

Secara default, file mapred-site.xml belum terdapat pada sistem direktori konfigurasi Hadoop. Sehingga langkah yang dilakukan ialah menyalin template mapred-site.xml ke dalam sebuah file mapred-site.xml.

Selanjutnya konfigurasi file mapred-site ialah mengisi parameter <value></value> dengan localhost. Langkah ini menunjukkan proses mapreduce hanya berjalan pada localhost atau sistem lokal.

7. Konfigurasi hdfs-site.xml

konfigurasi file hdfs-site.xml memperlihatkan jumlah replikasi pada sistem. Dengan kata lain, langkah ini menunjukkan berapa jumlah slave node yang akan digunakan. Konfigurasi ini menggunakan parameter 1

karena konfigurasi masih dilakukan pada single node. 8. Konfigurasi yarn-site.xml

(59)

9. Melakukan format HDFS

Langkah ini akan menghapus semua data pada HDFS. Namun langkah ini tidak direkomendasikan dilakukan pada saat yang bersamaan dengan manajemen data karena dapat mengakibatkan kerusakan atau kegagalan data.

10. Menjalankan perintah start-dfs.sh

Perintah start-dfs.sh yang digunakan untuk menjalankan service dari NameNode dan SecondaryNamenode pada master node dan DataNode pada slave node. Karena sistem ini bersifat single node cluster maka semua service berjalan pada localhost atau lokal sistem Ubuntu.

11. Menjalankan perintah start-yarn.sh

Perintah start-yarn.sh yang digunakan untuk menjalankan service ResourceManager dan NodeManager yang dimiliki oleh fitur Yarn. Adapun konfigurasi ini dilakukan pada single node cluster sehingga ResourceManager dan NodeManager berjalan pada localhost.

12. Menjalankan jps

(60)

4.1.2 Konfigurasi Multi Node Cluster

Langkah ini dilakukan ketika konfigurasi single node cluster sudah diterapkan pada seluruh komputer cluster. Proses multi node cluster merupakan proses penggabungan seluruh single node cluster menjadi satu kelompok dalam sistem Hadoop. Berikut langkah-langkah konfigurasi multi node cluster:

4.1.2.1 Konfigurasi Hostname, Hosts, & SSH

Screenshot dari langkah ini dapat dilihat pada bagian Lampiran 6. Berikut merupakan urutan langkah-langkah konfigurasi Hostname, Hosts, dan SSH:

1. Mengubah hostname

Proses mengubah hostname yang merupakan nama mesin komputer. Penelitian ini menggunakan hostname master untuk komputer master node, hostname slave1 untuk komputer slave node 1, hostname slave2

untuk komputer slave node 2, dan hostname slave3 untuk komputer slave node 3. Tujuan mengubah hostname ialah untuk memudahkan mengenali

masing-masing komputer cluster.

2. Konfigurasi IP Address pada seluruh komputer cluster

Penelitian ini seluruh IP Address pada komputer cluster diberi nama host yang berfungsi untuk memudahkan dalam mengingat alamat komputer cluster. Pemberian nama host dilakukan pada file /etc/hosts. Konfigurasi

tidak hanya dilakukan pada sisi master node saja, tetapi juga pada seluruh slave node. Adapaun host yang digunakan untuk master node ialah master.

(61)

3. Konfigurasi akses SSH

Konfigurasi SSH dilakukan dengan menyalin SSH public key dari master node ke semua slave node. Konfigurasi akses SSH dilakukan untuk memudahkan dalam memanajemen sistem Hadoop. Ketika melakukan monitoring menggunakan SSH, sistem tidak perlu untuk meminta password tetapi akan mengarahkan langsung ke dalam sistem yang aktif. Adapun pada konfigurasi single node, Public SSH key atau kunci publik SSH telah ditempatkan pada file authorized_keys. Dengan menggunakan perintah ssh-copy-id maka maka sebuah node dapat mengakses node lain dengan menggunakan SSH akses tanpa menggunakan password. Adapun perintah untuk mengakses node lain ialah $ssh master untuk mengakses node lokal master, $ssh slave1 untuk mengakses node slave1, $ssh slave2

untuk mengakses node slave2, dan $ssh slave3 untuk mengakses node slave3.

4.1.2.2 Identifikasi Master Node & Slave Node

(62)

4.1.2.3 Konfigurasi Environment Hadoop Multi Node Cluster

Konfigurasi environment Hadoop multi node cluster dilakukan pada 4 file konfigurasi yakni core-site.xml, mapred-site.xml, dan hdfs-site.xml. Adapaun screenshot langkah ini dapat dilihat pada Lampiran 8. Berikut penjelasan

langkah-langkah konfigurasi environment Hadoop multi node cluster: 1. Konfigurasi core-site.xml

Terdapat perubahan pada parameter fs.default.name, hal ini dikarenakan nilai dari parameter dikhsusukan buat host dan port dari master node. Sehingga perubahan dilakukan dengan mengubah localhost menjadi master. Adapun perubahan pada file core-site.xml ini dilakukan pada semua node.

2. Konfigurasi mapred-site.xml

Terdapat perubahan konfigurasi pada parameter mapred.job.trackern yakni mengubah localhost menjadi master. Hal ini dikarenakan karena komputasi MapReduce dijalankan pada master node. Adapun perubahan ini diterapkan pada seluruh node.

3. Konfigurasi hdfs-site.xml

Konfigurasi hdfs-site.xml ialah mengganti nilai block replication. Penelitian ini menggunakan 3 slave node. Sehingga parameter value memiliki nilai 3.

(63)

Proses ditujukan untuk memberikan inisialisasi HDFS atau temporary directory. Selama melakukan penelitian, proses format HDFS tidak

sepenuhnya dapat menghapus semua data pada HDFS. Oleh karena itu, cara yang digunakan ialah menghapus secara manual semua file.

5. Mengetes konfigurasi multi node cluster

Mengetes konfigurasi dilakukan dengan menjalankan dfs.sh dan start-yarn.sh di master node. Perintah ini bertujuan untuk menjalankan service HDFS yaitu NameNode, SecondaryNamenode, dan DataNode. Hasil dari perintah start-dfs.sh ialah service NameNode dan SecondaryNamenode berjalan pada master node. Luaran dari perintah start-dfs.sh pada slave node ialah service DataNode yang berjalan pada slave1 node, slave2 node,

dan slave3 node. Sedangkan luaran perintah start-yarn.sh yakni service ResourceManager yang berjalan pada master node dan service NodeManager yang berjalan pada slave node.

4.2 Implementasi Library Mahout Pada Sistem Hadoop Berikut implementasi library Mahout pada sistem Hadoop:

4.2.1 Install Maven

(64)

lingkungan pengguna hduser, sehingga maven diberikan hak akses khusus dengan menggunakan perintah $chown hduser:hadoop.

Konfigurasi variable Maven juga dilakukan karena maven diinstall menggunakan source code. Sama seperti konfigurasi pada Java dan Hadoop, langkah ini bertujuan agar Maven dapat dikenali oleh sistem Linux. Proses mengetes Maven ialah dengan menjalankan perintah mvn –version. Luaran dari perintah tersebut ialah versi Maven dan metadata lain. Adapun sreenshot langkah ini dapat dilihat pada bagian Lampiran 9.

4.2.2 Install Eclipse

IDE Eclipse dibutuhkan karena proses pengembangan dan pengujian sistem ini menggunakan source code tambahan. Eclipse juga memiliki plugin m2e yang dapat berintegrasi dengan Maven, sehingga selain melakukan compile dan build source code menggunakan perintah di terminal. Eclipse pun dapat

melakuakan compile dengan menggunakan perintah yang telah tersedia.

4.2.3 Install Mahout

Proses konfigurasi Mahout dilakukan pada master node. Konfigurasi dilakukan dengan menulis variabel Mahout pada sistem Linux. Oleh karena Mahout berjalan pada lingkungan Hadoop, maka konfigurasi juga dilakukan dengan mengintegrasikan Hadoop dan Mahout.

Source code Mahout dapat dibukan pada Eclipse dengan menggunakan

(65)

menginput atau melakukan import dan secara otomatis Eclipse akan melakukan compile source code Mahout.

4.3 Implementasi Metode K-Means Menggunakan Library Mahout 4.3.1 Preprocessing

Sebelum menjalankan komputasi K-Means, ada beberapa hal yang harus dilakukan yakni mengkonversi data dari format csv ke format sequence dan membuat direktori untuk menyimpan data trining dan data centroid pada HDFS.

Konversi data numerik pada file csv akan dilakukan dengan menggunakan

program tambahan berbasis bahasa pemrograman Java.

Data liver disorder memiliki susunan informasi yakni id, mvc, alkphos, sqpt, sgot, gammagt, drink, dan selector. Namun dalam melakukan konversi, susunan file tersebut diubah menjadi selector, id, mvc, alkphos, sqpt, sgot, gammagt, dan drink. Hasil atau output yang akan dicapai ialah file data liver disorder dan file centroid yang masing-masing berformat sequence. Adapun data

centroid dipilih secara manual. Hasil output tersebut akan diinputkan ke dalam Hadoop Distributed File System.

(66)

olah nama file. | less merupakan perintah dari bash linux yang digunakan untuk menerima output dari perintah sebelumnya, lalu kemudian menginputkan perintah tersebut ke dalam perintah less. Less merupakan perintah bash yang digunakan untuk membaca sebuah file atau output.

Langkah selanjutnya ialah dengan menjalankan perintah start-dfs.sh dan start-yarn.sh, Perintah start-dfs.sh berfungsi untuk menjalankan service NameNode dan SecondaryNamenode pada master node, dan DataNode pada slave node. Sedangkan perintah start-yarn.sh berfungsi untuk menjalankan service

ResourceManager pada master node dan service NodeManager pada slave node. Gambar 4.2 menunjukkan proses membuat direktori pada HDFS. Perintah yang digunakan ialah $hdfs dfs -mkdir diikuti nama direkori. Direktori yang

(67)

digunakan dalam penelitian ini ialah /user/hduser/data dan /user/hduser/centroid. Direktori /user/hduser/data digunakan untuk menyimpan data training. Sedangkan direktori /user/hduser/centroid digunakan untuk menyimpan data centroid. Parameter -p digunakan untuk mebuat direktori dalam direktori. Sehingga perintah yang digunakan ialah $hdfs dfs -mkdir -p diikuti nama direktori. Perintah $hdfs dfs -ls digunakan untuk melihat sebuah file atau direktori. Sehingga perintah dapat digunakan untuk mengecek keberhasilan dalam membuat direktori.

Gambar 4.3 menunjukkan proses menyimpan file data training pada HDFS.

Sedangkan gambar 4.4 menunjukkan proses menyimpan file data centroid pada HDFS. Perintah yang digunakan dalam menyimpan file ialah $hdfs dfs -copyFromLocal kemudian diikuti lokasi input data dan diakhir dengan lokasi output data. Lokasi input data berasal dari sistem lokal, sedangkan lokasi output

ditujukan pada direktori pada HDFS. Perintah $hdfs dfs -ls digunakan mengecek keberhasilan dalam menyimpan file pada HDFS.

Gambar 4.2: Membuat direktori data dan direktori centroid pada hdfs

(68)

4.3.2 Proses Menjalankan Komputasi K-Means

Perintah yang digunakan untuk menjalankan komputasi K-Means ialah $mahout kmeans diikuti lokasi file data, lokasi file centroid, lokasi file output, distance measure atau algoritma yang digunakan untuk menghitung jarang antara

item data dan pusat cluster atau centroid, iterasi maksimal, jumlah K atau cluster dari data, convergen delta atau nilai untuk menentukan proses iterasi berhenti, execution method atau metode yang digunakan untuk mengeksekusi data, dan

clustering menentukan agar proses clustering berjalan setelah proses iterasi telah

berlangsung.

Adapun semua lokasi data yang digunakan dalam perintah $mahout kmeans berada pada HDFS. Sehingga lokasi output data juga terdapat dalam HDFS. Gambar 4.5 menunjukkan bahwa Distance Measure (parameter -dm) yang digunakan dalam penelitian ini ialah Euclidean Distance Measure. Iterasi maksimal (parameter -x) yang digunakan berjumlah 100. Total K (parameter -k) yang digunakan berjumlah 2. Hal ini dikarenakan data dikelompokkan dalam 2 kategori yakni kelompok yang memiliki kelainan hati (liver disorder) dan kelompok yang tidak memiliki kelainan hati (non liver disorder). Convergen delta

(69)

(parameter -cd) yang digunakan bernilai 0.1. Execution method (parameter -xm) yang digunakan ialah mapreduce. Parameter -ow atau –overwrite berfungsi untuk memaksa sistem untuk menulis hasil output walaupun sistem sudah memiliki lokasi output tersebut sebelumnya.

Gambar 4.6 menunjukkan hasil akhir dari iterasi yan gditunjukkan dengan menampilkan beberapa metadata dari proses K-Means dan waktu komputasi dijalankan.

Gambar 4.7 menunjukkan perintah $hdfs dfs -ls dapat digunakan untuk melihat hasil dari proses K-Means. Sedangkan perintah $hdfs dfs -ls output atau

Gambar 4.5: Menjalankan K-Means menggunakan library Mahout

(70)

$hdfs dfs -ls /user/hduser/output digunakan untuk melihat isi dari direktori output. Hasil proses K-Means dapat dilihat dari aplikasi NameNode Web Interface yang beralamat di master:50070.

Gambar 4.8 menunjukkan hasil K-Means melalui aplikasi NameNode web interface.

Gambar 4.9 menunjukkan bahwa aplikasi ini dapat menunjukkan aktivitas dan semua informasi dari sistem Hadoop baik sebelum dan sesudah komputasi

Gambar 4.7: Perintah $hdfs dfs -ls output

(71)

MapReduce dijalankan. Beberapa informasi yang ditunjukkan pada sistem ini ialah DataNode information atau informasi DataNode (slave node). Informasi DataNode ini menunjukkan slave node yang aktif dan tidak aktif, kapasitas HDFS dari masing-masing DataNode, dan storage HDFS yang telah digunakan, Aplikasi ini juga dapat digunakan untuk mencari dan melihat data pada HDFS.

NameNode web interface juga dapat memperlihatkan informasi tentang DataNode. Gambar 4.10 menampilkan beberapa informasi DataNode pada sistem Hadoop. Beberapa informasi DataNode yang ditampilkan ialah alamat slave node. Status slave node digunakan yang diperlihatkan pada Admin State. Informasi ukuran HDFS juga diperlihatkan seperti total ukuran disk yang dapat digunakan untuk menyimpan data (capacity) dan total kapasitas disk yang telah digunakan (used).

(72)

Gambar 4.11 menjelaskan bahwa HDFS memiliki direktori data, centroid, dan output.

Gambar 4.12 menunjukkan informasi direktori /user/hduser/data pada HDFS yakni permission, owner, group, size, replication, block size, dan name. Permission merupakan hak akses atau priviledge yang diijinkan olah sistem

Hadoop. Owner merupakan pemilik atau pengguna sistem Hadoop. Group merupakan pengelompokkan data pada sistem Hadoop. Replication menjelaskan bahwa data mengalami proses replikasi di beberapa node. Block size merupakan ukuran blok data. Sedangkan name merupakan name file tersebut.

Gambar 4.10: Informasi DataNode pada aplikasi NameNode Web Interface

(73)

Aplikasi ini juga mampu menampilkan metadata dari file pada HDFS. Gambar 4.13 menampilkan metadata dan availability dari file sampleseqfile. Availability menunjukkan bahwa file sampleseqfile telah mengalami proses replikasi pada 3 DataNode.

Gambar

Tabel 3.1: Informasi data liver disorder...............................................................26
Gambar 5.1: Analisa hasil K-Means menggunakan clusterdump......................57Gambar 5.2: Beberapa hasil analisa cluster data dengan identitas VL-27.........57Gambar 5.3: Beberapa hasil analisa cluster data dengan identitas VL-49.........57Gambar 5.4: Diagram hasil unjuk keja sistem Hadoop......................................59
Gambar  2.1  memperlihatkan  masing-masing  objek  dikelompokkan
Gambar 2.2: Distribusi chunk data (Yahoo!, 2014).
+7

Referensi

Dokumen terkait

Seminar dengan tema &#34;Pengelolaan Limbah yang Inovatif, Handal, dan Berkelanjutan sebagai Wujud Kepedulian Terhadap Lingkungan&#34; telah dilaksanakan pada tanggal 26 September

Puji dan syukur ke hadirat Allah SWT, karena atas berkat dan rahmat karunia-Nya, penulis dapat menyusun dan menyelesaikan laporan tugas akhir yang berjudul

yang Dikeluarkan Di Kabupaten Bengkulu Tengah, 2014 39 4.2.1 Penduduk Berumur 15 Tahun Ke Atas menurut Jenis Ke.. giatan Selama Seminggu yang Lalu, 2010-2014 40 4.2.2

Variabel yang dominan pengaruhnya terhadap minat beli helm INK pada mahasis- wa Fakultas Ekonomi Universitas Slamet Riyadi Surakarta adalah keunggulan citra merek,

Hasil penelitian menunjukkan bahwa kulit yang berasal dari ketinggian tempat yang berbeda berpengaruh (P&lt;0,05) terhadap kekuatan tarik dan kekuatan sobek, dan tidak

Rencana pengembangan keorgani sasian dilakukan dengan mengacu pada analisis dan evaluasi tugas dan fungsi satuan organisasi termasuk perumusan dan pengembangan jabatan struktural

Dari Gambar 2 terlihat bahwa semakin tinggi konsentrasi bahan penyamak ulang nabati yang digunakan,, maka tanin yang dapat masuk ke dalam jaringan kulit jumlahnya semakin banyak,

Peubah yang diukur meliputi berat kulit, luas pelt dan uji kerontokan.Hasil penelitian menunjukkan bahwa produksi pelt kelinci peranakan New Zealand White (berat, tebal