Judul
Link: http://bit.ly/2x8ta9S
ANALISIS BIG DATA
(Teori & Aplikasi)
DzBig Data vs Big Information vs Big Knowledgedz
Versi 1.01
Oleh:
Imam Cholissodin
Efi Riyandani
PENGANTAR
Buku ini memberi pemahaman konsep dasar, maupun tingkat
lanjut secara mendetail sebagai solusi dalam penyelesaian untuk
kasus apapun dengan konsep Sistem Cerdas melalui pemanfaatan
teknologi Big Data mulai dari tingkat dasar sebagai cara yang paling
mudah untuk awalan dalam pemahaman, sampai pada implementasi
algoritma tanpa Library apapun, misal tidak menggunakan MLlib dari
Spark sama sekali atau lainnya, serta melatih dalam memodifikasi
algoritma maupun penggabungan dua tools atau lebih untuk
membangun ekosistem Big Data yang powerfull. Materi yang tersedia
selain memudahkan bagi para pembaca, juga untuk mendukung materi perkuliahan yang dapat membantu pengayaan mahasiswa yang
fokus pada pengembangan Artificial Intelligence (AI) untuk Big Data,
yang meliputi banyak Machine Learning yang digunakan.
Imam Cholissodin
Dosen Pengampu MK Analisis Big Data FILKOM UB
2016-2018
Kata Pengantar
Alhamdulillahhi robbil alamin, puji syukur kehadirat Allah SWT
atas segala rahmat dan karunia-Nya dengan terselesaikannya penulisan buku ini dengan judul “Analisis Big Data”. Buku ini merupakan
uraian untuk memudahkan pemahaman konsep, tingkat dasar sampai
lanjut dalam sistem cerdas dan penerapannya melalui pemanfaatan
teknologi Big Data, dengan mengedepankan keterampilan dalam
pembuatan dan hasil implementasi dengan berbagai kombinasi
algoritma berbasis sistem cerdas maupun dengan perpaduan berbagai
macam tools untuk membangun ekosistem analisis Big Data yang
powerfull. Konsep sederhana Analisis Big Data mencakup Volume, Velocity, dan Variety (3V), dan pengembangannya ada yang menyebut
(7V) termasuk Volume, Velocity, Variety, Variability, Veracity, Value
dan Visualization, atau 10V bahkan lebih dari itu, tetapi sebaiknya tidak
membatasi pemahaman Big Data ini hanya dengan sedikit banyaknya
istilah dari huruf V yang digunakan . Kemudian dengan adanya
ekosistem tersebut, jika dibutuhkan analisis sederhana maupun yang
lebih kompleks, maka harapannya tidak akan ada kendala dari
besarnya data yang diolah. Adanya kemajuan teknologi dalam hal
penyimpanan, pengolahan, dan analisis Big Data meliputi (a)
penurunan secara cepat terhadap biaya penyimpanan data dalam beberapa tahun terakhir; (b) fleksibilitas dan efektivitas biaya pada pusat
data dan komputasi awan untuk perhitungan dengan konsep elastisitas
dan penyimpanannya; serta (c) pengembangan kerangka kerja baru
seperti Hadoop ecosystem (salah satu peluang bisnis yang besar untuk
developer untuk saat ini dan ke depannya dalam rangka membangun
ekosistem analisis Big Data yang sangat powerfull sekelas Cloudera,
Hortonworks, etc), yang memungkinkan pengguna untuk mengambil
manfaat dari sistem komputasi terdistribusi, misal untuk menyimpan
sejumlah data yang besar melalui pemrosesan parallel, dukungan database NoSQL, dan komputasi berbasis streaming. Sehingga kemajuan teknologi ini telah menciptakan beberapa perbedaan yang sangat
signifikan, misal dalam hal kecepatan maupun ketepatan dari hasil
yang didapatkan antara analisis tradisional dengan tools yang bukan
dengan konsep Big Data versus analisis modern untuk saat ini dan
masa depan dengan membangun ekosistem Big Data yang sangat
powerfull.
Penulis mengucapkan terimakasih yang sebesar-besarnya
kepada kedua orang tua penulis, spesial kepada Istriku tercinta “Alfun
Lailatul Musabbikha”, bapak ibu mertua, dik Wiwik, dik Ganda, kak Mat,
kak Deri, Bude Gi, Pakde Dul, Bude Gani, Pak Abu, mbak Nik, dik
Andre, Mbak As, Mbak Lia, Mas Mualif, Mbak Lis, Pakde Naji, Bulik Yul,
Pakde Tasrun, Pakde Zen, Pakde Zud, Paklik Fiq, mas Bowo dan
semua sanak saudaraku yang tak bisa kusebutkan seluruhnya, serta
beberapa pihak yang telah membantu penyelesaian buku ini:
ii
1. Para penulis artikel Analisis Big Data di forum, web, blog dan buku
yang menjadi referensi buku ini untuk memberikan masukan yang
sangat berharga sekali untuk perbaikan dan penyelesaian buku ini.
2. Mbak Efi Riyandani, yang telah banyak membantu penulisan buku,
dan mahasiswa-mahasiswa terbaik saya semester Ganjil
2016/2017, yaitu: Maryamah, Moh. Fadel Asikin, Daisy Kurniawaty,
Selly Kurnia Sari, Nanda Agung Putra, Ardisa Tamara Putri,
Dhimas Anjar Prabowo, Listiya Surtiningsih, Raissa Arniantya,
Brillian Aristyo Rahadian, Diva Kurnianingtyas, Dyan Putri
Mahardika, Tusty Nadia Maghfira.
3. Mahasiswa-mahasiswa terbaik saya semester Ganjil 2017/2018,
yaitu: Yessica Inggir F., Kholifaul K., Ni Made Gita D. P., Ema
Agasta, Retiana Fadma P. Sinaga, Fachrul Rozy Saputra Rangkuti,
Yunita Dwi Alfiyanti, Dyah Ayu Wahyuning Dewi, Annisaa Amalia
Safitri, Sarah Aditya Darmawan, Danastri Ramya Mehaninda, Eka
Novita Shandra, Fakharuddin Farid Irfani, Rio Cahyo Anggono,
Robih Dini, Yulia Kurniawati, Novirra Dwi Asri, Muhammad Vidi Mycharoka, Vania Nuraini Latifah, Olivia Bonita, Eka Miyahil Uyun,
Cusen Mosabeth, Evilia Nur Harsanti, Ivarianti Sihaloho.
Semoga kontribusi kalian menjadi ilmu yang barokah dan bermanfaat. Aamiin. :). Tidak ada gading yang tak retak. Maka penulis
memohon kritik dan saran untuk perbaikan dan penyempurnaan buku
ini. In Syaa Allah pada edisi berikutnya, kami akan memberikan
manualisasi Map Reduce, Spark, etc. dari setiap algoritma pada setiap
contoh kasusnya. Selamat membaca buku ini dan semoga bermanfaat.
Malang, 19 Juli 2016-24 Mei 2018
Penulis
iii
Daftar Isi
Judul ...................................................................................................... i
Kata Pengantar ..................................................................................... ii
Daftar Isi .............................................................................................. iv
Daftar Tabel ........................................................................................ viii
Daftar Gambar ..................................................................................... ix
Daftar Source Code .......................................................................... xxvi
BAB 1
Konsep Big Data .............................................................. 1
1.1
Pengantar......................................................................... 1
1.2
Gambaran Umum Big Data.............................................. 3
1.3
Karakteristik Big Data (3V)............................................... 5
1.4
Ekosistem Big Data Analytics .......................................... 7
1.5
Ekosistem Tool Big Data Analytics .................................. 9
1.6
Tugas Kelompok ............................................................ 13
BAB 2
Analitik Big Data & Lifecycle ......................................... 14
2.1
Pengantar....................................................................... 14
2.2
Teknologi Advaced (Tools) Big Data ............................. 14
2.3
Arsitektur Big Data ......................................................... 16
2.4
Key Roles Kunci Sukses Proyek Analitik ....................... 20
2.5
Lifecycle Analitik Data .................................................... 22
2.6
Tugas Kelompok ............................................................ 24
BAB 3
Teknologi dan Tools Big Data (Bagian 1) ..................... 26
3.1
Konsep Pengolahan Big Data ........................................ 26
3.2
Introduction to Hadoop................................................... 27
3.3
3.2.1
Hadoop Distributed File System (HDFS) ........... 28
3.2.2
MapReduce (MR) ............................................... 30
Konfigurasi Hadoop Single Node Cluster di Linux ......... 34
3.3.1
Studi Kasus & Solusi Hadoop ............................ 35
3.3.2
Konfigurasi dengan Eclipse IDE ........................ 53
3.3.3
Konfigurasi dengan HUE ................................... 69
iv
3.4
3.5
BAB 4
3.3.4
Konfigurasi dengan Spark.................................. 93
3.3.5
Konfigurasi dengan Mahout ............................. 132
Konfigurasi Hadoop Single Node Cluster di Windows . 140
3.4.1
Konfigurasi dengan Syncfusion ....................... 154
3.4.2
Konfigurasi dengan Eclipse IDE ...................... 161
3.4.3
Konfigurasi dengan Spark................................ 170
Tugas Kelompok .......................................................... 173
Teknologi dan Tools Big Data (Bagian 2) ................... 175
4.1
Konsep Single (Standalone) Vs Multi-Node Cluster .... 175
4.2
Hadoop Multi Node Cluster (Pseudo-Distributed)........ 176
4.3
Hadoop Multi Node Cluster (Full Distributed) .............. 204
4.4
Studi Kasus (Sederhana) ............................................. 217
4.5
Studi Kasus (Run Kode Program)................................ 225
4.6
BAB 5
4.5.1
Klasifikasi: NB dengan Terminal ...................... 225
4.5.2
Klasifikasi: NB dengan Eclipse ........................ 230
4.5.3
Clustering: K-Means ........................................ 237
Tugas Kelompok .......................................................... 242
Analitik Data Tingkat Lanjut (Clustering) ..................... 244
5.1
Konsep Clustering ........................................................ 244
5.2
K-Means vs Kernel K-means ....................................... 245
5.3
Studi Kasus .................................................................. 188
5.4
Tugas Kelompok .......................................................... 195
BAB 6
Analitik Data Tingkat Lanjut (Regresi) ......................... 197
6.1
Konsep Regresi ........................................................... 197
6.2
Analisis Teknikal dan Fundamental ............................. 198
6.3
Regresi Linear & Regresi Logistic ............................... 199
6.4
Extreme Learning Machine (ELM) ............................... 200
6.5
Tugas Kelompok .......................................................... 207
BAB 7
Analitik Data Tingkat Lanjut (Klasifikasi)...................... 208
7.1
Konsep Klasifikasi ........................................................ 208
7.2
Linear dan Non-Linear Classifier ................................. 209
v
7.3
Algoritma Klasifikasi ..................................................... 210
7.3.1
ELM Untuk Regresi Vs Untuk Klasifikasi ......... 210
7.3.2 Support Vector Machine (SVM) Linear dan NonLinear 211
7.4
BAB 8
Tugas Kelompok .......................................................... 221
Teknologi dan Tools Big Data (Bagian 3) ................... 223
8.1
8.2
8.3
8.4
BAB 9
Editor + GUI untuk Spark Java/ Spark Scala/ PySpark223
8.1.1
Install Sublime Text.......................................... 224
8.1.2
Eclipse + Spark Standalone (Java EE) ............ 224
8.1.3
Eclipse + Spark + Scala IDE + Maven ............. 225
8.1.4
Eclipse + Spark + Scala IDE + SBT................. 243
8.1.5
Eclipse + PySpark + PyDev ............................. 254
8.1.6
PySpark + Pycharm ......................................... 318
8.1.7
IntelliJ IDEA + SBT .......................................... 340
8.1.8
Konfigurasi & Solusi Error/Bug ........................ 361
Konfigurasi Tambahan ................................................. 364
8.2.1
Create VM dari file *.vdi dan UUID Baru.......... 364
8.2.2
Share Folder Pada Linux Pada VirtualBox ...... 367
Konfigurasi Hadoop + MongoDB ................................. 373
8.3.1
WordCount ....................................................... 386
8.3.2
Movie Ratings .................................................. 399
Tugas Kelompok .......................................................... 412
Project Pilihan Analisis Big Data .................................. 413
9.1
9.2
9.3
Seleksi Asisten Praktikum............................................ 413
9.1.1
Dasar Teori ...................................................... 414
9.1.2
Impelementasi .................................................. 417
Klasifikasi Kendaraan Bermotor................................... 423
9.2.1
Dasar Teori ...................................................... 424
9.2.2
Implementasi .................................................... 427
Clustering Judul Majalah.............................................. 432
9.3.1
Dasar Teori ...................................................... 434
9.3.2
Implementasi .................................................... 436
vi
9.4
9.5
9.6
9.7
Collaborative Filtering .................................................. 440
9.4.1
Dasar Teori ...................................................... 440
9.4.2
Implementasi .................................................... 443
Klasifikasi Data Kualitatif (C4.5)................................... 446
9.5.1
Dasar Teori ...................................................... 447
9.5.2
Implementasi .................................................... 452
Clustering Tingkat Pengetahuan.................................. 456
9.6.1
Dasar Teori ...................................................... 457
9.6.2
Implementasi .................................................... 460
Klasifikasi Kanker Payudara (SVM) ............................. 462
9.7.1
Dasar Teori ...................................................... 464
9.7.2
Implementasi .................................................... 467
Daftar Pustaka .................................................................................. 470
Biografi Penulis ................................................................................. 476
vii
Daftar Tabel
Tabel 5.1 Contoh Data 2 Dimensi .................................................... 188
Tabel 5.2 xi ....................................................................................... 190
Tabel 5.3
( xi ) ................................................................................ 190
Tabel 5.4 Fungsi Pemetaan Cluster 1 .............................................. 190
Tabel 5.5 Fungsi Pemetaan Cluster 2 .............................................. 191
Tabel 5.6 Nilai Kernel data i terhadap semua data cluster 1 iterasi 1
.......................................................................................................... 192
Tabel 5.7 Nilai Kernel Antar Data Pada Cluster j untuk iterasi 1...... 193
Tabel 5.8 Jarak dan alokasi data untuk centroid terdekat iterasi 1 .. 194
Tabel 6.1 Dataset ............................................................................. 199
Tabel 6.2 Data Training .................................................................... 202
Tabel 7.1 Data Training dan Data Testing ....................................... 214
Tabel 7.2
i
....................................................................................... 214
Tabel 7.3 Hasil Perhitungan Dij ......................................................... 215
Tabel 7.4 Hasil Perhitungan Ei .......................................................... 215
Tabel 7.5 Hasil Perhitungan
Tabel 7.6 Hasil Perhitungan
i .................................................... 216
i ....................................................... 216
Tabel 7.7 Hasil klasifikasi sign(f(x)) .................................................. 217
Tabel 7.8 Hasil Perhitungan xtest1 .................................................... 218
Tabel 7.9 Contoh 3 SVM Biner dengan Metode One-Against-All .... 218
Tabel 7.10 Metode One-Against-One dengan 4 Kelas .................... 219
Tabel 7.11 Metode BDTSVM dengan 7 Kelas ................................. 220
Tabel 8.1 Perbedaan SQL dengan MongoDB.................................. 376
Tabel 9.1 Contoh Dataset Setiap Kategori ....................................... 434
viii
Daftar Gambar
Gambar 1.1 Perkembangan data ......................................................... 1
Gambar 1.2 Data Science vs Business Intelligence ............................ 2
Gambar 1.3 Gambaran Umum Big Data .............................................. 3
Gambar 1.4 Big Data dengan 6V+ 1V(Visualization)=7V ........................ 4
Gambar 1.5 Big Data dengan 10V ....................................................... 4
Gambar 1.6 Tradisional vs Big Data .................................................... 5
Gambar 1.7 Bentuk Infrastruktur Data Center...................................... 6
Gambar 1.8 Google Cloud Platform ..................................................... 6
Gambar 1.9 Analyze small subsets of data .......................................... 6
Gambar 1.10 Analyze all data .............................................................. 6
Gambar 1.11 Batch dan stream processing ....................................... 37
Gambar 1.12 Traditional Approach ...................................................... 6
Gambar 1.13 Big Data Approach ......................................................... 6
Gambar 1.14 Variety Data .................................................................... 6
Gambar 1.15 Rangkuman 3V dan Veracity.......................................... 6
Gambar 1.16 Gambaran Ekosistem Big Data ...................................... 7
Gambar 1.17 Perkembangan Analytics................................................ 7
Gambar 1.18 Contoh Ekosistem Hadoop ke-1................................... 10
Gambar 1.19 Contoh Ekosistem Hadoop ke-2................................... 11
Gambar 1.20 Cloudera vs Hortonworks vs MapR .............................. 13
Gambar 2.1 Daftar Perusahaan ......................................................... 14
Gambar 2.2 Faktor yang mendorong (driving) adopsi Big Data......... 15
Gambar 2.3 Arsitektur Big Data ......................................................... 17
Gambar 2.4 Data Integration Using Apache NiFi dan Apache Kafka 19
Gambar 2.5 Integrating Apache Spark dan NiFi for Data Lakes ........ 19
Gambar 2.6 Key Roles Kunci Sukses Proyek Analitik ....................... 20
Gambar 2.7 Gambaran Umum dari Lifecycle Analitik Data ............... 22
Gambar 3.1 Distributed System (a) dan Paralel System (b) .............. 26
Gambar 3.2 Ilustrasi Hadoop HDFS................................................... 27
ix
Gambar 3.3 Arsitektur HDFS.............................................................. 30
Gambar 3.4 Hadoop 2.x Core Components ....................................... 30
Gambar 3.5 High Level Arsitektur Hadoop dan The Job Tracker ...... 31
Gambar 3.6 The Job Tracker ............................................................. 32
Gambar 3.7 Diagram Cara Kerja Map Reduce .................................. 33
Gambar 3.8 Ilustrasi MR vs YARN ..................................................... 33
Gambar 3.9 Persiapan Pada Virtual Box ........................................... 34
Gambar 3.10 Studi Kasus Wordcount ................................................ 35
Gambar 3.11 Hasil: hduser@Master:/usr/local/hadoop$ jar cf wc.jar
WordCount*.class ................................................................................. 41
Gambar 3.12 Hasil: hduser@Master:/usr/local/hadoop$ jar cf wc.jar
WordCount*.class ............................................................................... 41
Gambar 3.13 Hasil: hduser@Master:/usr/local/hadoop$ jar cf wc.jar
WordCount*.class ............................................................................... 42
Gambar 3.14 Hasil Menjalankan JAR untuk wordcount (file a.txt saja): .. 46
Gambar 3.15 Hasil menjalankan JAR untuk wordcount (file b.txt saja): .... 49
Gambar 3.16 Menjalankan JAR untuk wordcount untuk semua file dalam
satu folder (file a.txt dan b.txts) ............................................................. 50
Gambar 3.17 Menjalankan JAR untuk wordcount untuk semua file dalam
satu folder (file a.txt dan b.txts) Cont. ..................................................... 51
Gambar 3.18 Cara menghapus folder HDFS ........................................... 51
Gambar 3.19 Cara menghapus folder HDFS Cont ................................... 52
Gambar 3.20 Link download Eclipse .................................................. 53
Gambar 3.21 Extract Here - Eclipse ................................................... 53
Gambar 3.22 Copy file, dan cek dengan “ls” ...................................... 54
Gambar 3.23 Install eclipse ................................................................ 54
Gambar 3.24 Pilih Eclipse IDE for Java EE Developers .................... 54
Gambar 3.25 Klik Install, tunggu beberapa waktu ............................. 55
Gambar 3.26 Klik Launch .................................................................... 55
Gambar 3.27 Klik “Launch”, tunggu beberapa saat ........................... 56
Gambar 3.28 Klik “restore” ................................................................. 56
Gambar 3.29 Masuk ke folder instalasi hadoop ................................. 57
Gambar 3.30 Jalankan Eclipse .......................................................... 58
x
Gambar 3.31 Klik Finish ...................................................................... 58
Gambar 3.32 Klik Open Pers.. .............................................................. 59
Gambar 3.33 Project “HadoopIDE” .................................................... 59
Gambar 3.34 Klik kanan “src”, tambahkan new “Package”................ 59
Gambar 3.35 Berikan name “org.hadoop.trainings”, klik “Finish”....... 60
Gambar 3.36 Klik kanan pada “org.hadoop.trainings”, klik new “Class”
............................................................................................................ 60
Gambar 3.37 Berikan nama “WordCount”, klik “Finish” ..................... 60
Gambar 3.38 klik “Configure Build Path..” .......................................... 61
Gambar 3.39 klik “Configure Build Path..” .......................................... 61
Gambar 3.40 Masuk ke folder instalasi hadoop ................................. 62
Gambar 3.41 Add *.jar hadoop part 1 ................................................ 62
Gambar 3.42 Add *.jar hadoop part 2 ................................................ 63
Gambar 3.43 Add *.jar hadoop part 3 ................................................ 63
Gambar 3.44 Add *.jar hadoop part 4 ................................................ 64
Gambar 3.45 Add *.jar hadoop part 5 ................................................ 64
Gambar 3.46 Add *.jar hadoop part 6 ................................................ 65
Gambar 3.47 Add *.jar hadoop part 7 ................................................ 65
Gambar 3.48 Add *.jar hadoop part 8 ................................................ 66
Gambar 3.49 Add *.jar hadoop part 9 ................................................ 66
Gambar 3.50 Daftar “Referenced Libraries” Hadoop ......................... 67
Gambar 3.51 Download code WordCount dari “https://goo.gl/wPa2ef”
............................................................................................................ 67
Gambar 3.52 Sebelum dan setelah dicopykan .................................. 68
Gambar 3.53 About Hue..................................................................... 69
Gambar 3.54 Cara kerja Hue Server.................................................. 69
Gambar 3.55 JVM Process Status Tool (jps) ..................................... 70
Gambar 3.56 Cek Hadoop Version .................................................... 70
Gambar 3.57 sudo apt-get install git .................................................. 71
Gambar 3.58 Lakukan git clone ......................................................... 71
Gambar 3.59 Download Hue Selesai ................................................. 72
Gambar 3.60 Install library development packages dan tools ........... 72
xi
Gambar 3.61 Install library development packages dan tools, selesai
............................................................................................................ 73
Gambar 3.62 Masuk ke hduser .......................................................... 73
Gambar 3.63 Error ketika make apps Hue ke-1 ................................. 74
Gambar 3.64 Update beberapa komponen ........................................ 74
Gambar 3.65 Error ketika make apps Hue ke-2 ................................. 75
Gambar 3.66 Install Hue, selesai. :D .................................................. 76
Gambar 3.67 Jalankan Server Hue .................................................... 76
Gambar 3.68 Starting pada http://127.0.0.1:8000 .............................. 77
Gambar 3.69 Set Username dan Password....................................... 77
Gambar 3.70 Tampilan Hue ke-1 ....................................................... 78
Gambar 3.71 Tampilan Hue ke-2 ....................................................... 78
Gambar 3.72 Load HDFS dari Hue .................................................... 79
Gambar 3.73 Solusi ke-1 Error pada Hue .......................................... 79
Gambar 3.74 Solusi ke-2 Error pada Hue .......................................... 80
Gambar 3.75 Setting file “hdfs-site.xml” ............................................. 81
Gambar 3.76 Setting file “core-site.xml” ............................................. 82
Gambar 3.77 Edit file “hue.ini” Part 1 of 7 .......................................... 83
Gambar 3.78 Edit file “hue.ini” Part 2 of 7 .......................................... 84
Gambar 3.79 Edit file “hue.ini” Part 3 of 7 .......................................... 85
Gambar 3.80 Edit file “hue.ini” Part 4 of 7 .......................................... 86
Gambar 3.81 Edit file “hue.ini” Part 5 of 7 .......................................... 86
Gambar 3.82 Edit file “hue.ini” Part 6 of 7 .......................................... 87
Gambar 3.83 Edit file “hue.ini” Part 7 of 7 .......................................... 87
Gambar 3.84 Jalankan lagi Hadoop ................................................... 88
Gambar 3.85 Jalankan lagi Hue ......................................................... 89
Gambar 3.86 Buka Hue di Web Browser ........................................... 89
Gambar 3.87 Buka Hue di Web Browser 1 ........................................ 90
Gambar 3.88 Buka Hue di Web Browser 2 ........................................ 91
Gambar 3.89 Buka Hue di Web Browser 3 ........................................ 92
Gambar 3.90 Buka Hue di Web Browser 4 ........................................ 92
Gambar 3.91 About Spark .................................................................. 93
xii
Gambar 3.92 Spark dan Tool lainnya................................................. 93
Gambar 3.93 Spark dan Bahasa Pemrograman ................................ 94
Gambar 3.94 Cek versi Linux ............................................................. 94
Gambar 3.95 Cek Hadoop Version dan Run Hadoop ........................ 95
Gambar 3.96 Download Spark ........................................................... 95
Gambar 3.97 Hasil download Spark................................................... 95
Gambar 3.98 Cek Java Version ......................................................... 96
Gambar 3.99 Tekan enter, tunggu sampai selesai ............................ 96
Gambar 3.100 Tekan enter, tunggu sampai selesai .......................... 97
Gambar 3.101 Instalasi Spark selesai :D ........................................... 97
Gambar 3.102 -
Set PATH Spark ................................................. 98
Gambar 3.103 Install java terbaru part 1 ............................................ 98
Gambar 3.104 Install java terbaru part 2 ............................................ 98
Gambar 3.105 Install java terbaru part 2 ............................................ 99
Gambar 3.106 Install java terbaru part 4 ............................................ 99
Gambar 3.107 Install java terbaru part 4 (lanj. 1) ............................... 99
Gambar 3.108 Install java terbaru part 4 (lanj. 2) ............................. 100
Gambar 3.109 Install java terbaru Selesai ....................................... 100
Gambar 3.110 Cek java version sudah terupdate ............................ 101
Gambar 3.111 Update “sudo gedit ~/.bashrc” .................................. 101
Gambar 3.112 Restart Hadoop ........................................................ 102
Gambar 3.113 install python-pip ...................................................... 102
Gambar 3.114 Cek python –version................................................. 104
Gambar 3.115 Install Anaconda ....................................................... 104
Gambar 3.116 Tekan spasi, ketik yes, tekan enter .......................... 105
Gambar 3.117 set folder instalasinya ............................................... 105
Gambar 3.118 Ketik yes (untuk set PATH di /home/hduser/.bashrc)
.......................................................................................................... 106
Gambar 3.119 Install Anaconda (Done) ........................................... 106
Gambar 3.120 Set PATH Anaconda ................................................ 107
Gambar 3.121 Cek python –version................................................. 108
Gambar 3.122 Spark sudah aktif ...................................................... 108
xiii
Gambar 3.123 Spark di web ............................................................. 109
Gambar 3.124 Koding scala sederhana pada Spark ....................... 110
Gambar 3.125 Demo: WordCount (ScalaSpark) ke-1 ...................... 110
Gambar 3.126 Demo: WordCount (ScalaSpark) ke-2 ...................... 111
Gambar 3.127 Demo: WordCount (ScalaSpark) ke-3 ...................... 111
Gambar 3.128 Demo: WordCount (ScalaSpark) ke-4 ...................... 112
Gambar 3.129 Demo: WordCount (ScalaSpark) ke-5 ...................... 112
Gambar 3.130 Demo: WordCount (ScalaSpark) ke-6 ...................... 113
Gambar 3.131 Demo: WordCount (ScalaSpark) ke-7 ...................... 113
Gambar 3.132 cek JPS .................................................................... 113
Gambar 3.133 Hadoop sudah jalan ................................................. 114
Gambar 3.134 Tampilan hadoop di Web ......................................... 114
Gambar 3.135 Browse the file system ............................................. 114
Gambar 3.136 Buat folder di hadoop melalui Terminal.................... 115
Gambar 3.137 Cek isi dari “/user/hduser” ........................................ 115
Gambar 3.138 CopyFromLocal file *.txt to hdfs ............................... 115
Gambar 3.139 Scala: load data input dari hdfs ................................ 116
Gambar 3.140 Lihat di web hasil output Spark ................................ 117
Gambar 3.141 Tampilan di web ....................................................... 117
Gambar 3.142 PySpark sudah aktif ................................................. 118
Gambar 3.143 Python pada Spark ................................................... 118
Gambar 3.144 PySpark counts.collect()........................................... 119
Gambar 3.145 Tampilan di web (Spark) .......................................... 119
Gambar 3.146 koding python sederhana (map) .............................. 120
Gambar 3.147 koding python sederhana (filter) ............................... 121
Gambar 3.148 koding python sederhana (reduce) .......................... 121
Gambar 3.149 koding python sederhana (lambda) .......................... 122
Gambar 3.150 koding python sederhana (lambda): Latihan ............ 123
Gambar 3.151 koding python sederhana (flatmap) .......................... 124
Gambar 3.152 run pyspark part 1 .................................................... 125
Gambar 3.153 run pyspark part 2 .................................................... 126
xiv
Gambar 3.154 run pyspark part 3 .................................................... 126
Gambar 3.155 run pyspark part 4 .................................................... 127
Gambar 3.156 run pyspark part 5 .................................................... 128
Gambar 3.157 run pyspark part 6 .................................................... 128
Gambar 3.158 run pyspark part 7 .................................................... 129
Gambar 3.159 run pyspark part 8 .................................................... 129
Gambar 3.160 run pyspark part 9 .................................................... 129
Gambar 3.161 Hasil k-means clustering .......................................... 130
Gambar 3.162 Apache Mahout ........................................................ 132
Gambar 3.163 Recommender Engines ............................................ 132
Gambar 3.164 User-User, Item-Item, atau diantara keduanya ........ 133
Gambar 3.165 Tanimoto Coefficient ................................................ 133
Gambar 3.166 Cosine Coefficient .................................................... 133
Gambar 3.167 JVM Process Status Tool (jps) ................................. 134
Gambar 3.168 Cek Hadoop Version ................................................ 134
Gambar 3.169 Buka web Apache Mahout ....................................... 135
Gambar 3.170 Download Mahout .................................................... 135
Gambar 3.171 Hasil Download Mahout ........................................... 136
Gambar 3.172 Extract Mahout ......................................................... 136
Gambar 3.173 Buat folder “mahout”................................................. 137
Gambar 3.174 Instalasi Mahout Selesai :D ...................................... 137
Gambar 3.175 Cek Owner dan Nama Group “/usr/local/mahout” .... 138
Gambar 3.176 ubah Owner dan Nama Group “/usr/local/mahout” .. 138
Gambar 3.177 Update “sudo gedit ~/.bashrc” .................................. 139
Gambar 3.178 Restart “~/.bashrc” lalu Restart Hadoop................... 139
Gambar 3.179 Persiapan Install Hadoop di Windows ke-1.............. 140
Gambar 3.180 Ekstraks file “bin-master.zip” .................................... 143
Gambar 3.181 Masuk ke Control Panel ........................................... 143
Gambar 3.182 Set JAVA_HOME ..................................................... 144
Gambar 3.183 Edit file “hadoop-env.cmd” ....................................... 144
Gambar 3.184 Edit file “core-site.xml” .............................................. 145
xv
Gambar 3.185 Hasil edit file “hdfs-site.xml” ..................................... 146
Gambar 3.186 Buat folder namenode dan datanode ....................... 146
Gambar 3.187 Hasil edit file “mapred-site.xml.template” ................. 147
Gambar 3.188 Pilih Advanced system settings ................................ 149
Gambar 3.189 Ketik HADOOP_HOME ................................................ 149
Gambar 3.190 Pada Va ia le Path klik Edit.. .................................... 150
Gambar 3.191 Tambahkan bin hadoop pada Path .......................... 150
Gambar 3.192 Cek hadoop version di CMD .................................... 151
Gambar 3.193 Hasil format namenode ............................................ 151
Gambar 3.194 Hasil start-all.cmd ..................................................... 152
Gambar 3.195 Hasil localhost:50070 ke-1 ....................................... 153
Gambar 3.196 Hasil Hasil localhost:50070 ke-2 .............................. 153
Gambar 3.197 Hasil “http://localhost:8088” ...................................... 153
Gambar 3.198 Download syncfusion ............................................... 154
Gambar 3.199 Hasil klik “Proceed to the …” .................................... 155
Gambar 3.200 Klik “Download link ..” ............................................... 155
Gambar 3.201 Install “syncfusionbigdataplatform.exe” .................... 155
Gambar 3.202 Hasil klik Install ......................................................... 156
Gambar 3.203 Hasil klik Finish ......................................................... 156
Gambar 3.204 Hasil klik Launch Studio ........................................... 157
Gambar 3.205 Klik OK...................................................................... 157
Gambar 3.206 Syncfusion Big Data Agent dan Remote Agent ....... 157
Gambar 3.207 Big Data Platform (1 of 4) ......................................... 158
Gambar 3.208 Big Data Platform (2 of 4) ......................................... 158
Gambar 3.209 Big Data Platform (3 of 4) ......................................... 159
Gambar 3.210 Big Data Platform (4 of 4) ......................................... 159
Gambar 3.211 Hasil Install “syncfusionbigdatacluster.exe” ............. 160
Gambar 3.212 Download Eclipse ..................................................... 161
Gambar 3.213 Klik Install ................................................................. 161
Gambar 3.214 Tunggu beberapa Waktu .......................................... 162
Gambar 3.215 Klik Launch, untuk jalankan Eclipse ......................... 162
xvi
Gambar 3.216 Klik Launch ............................................................... 163
Gambar 3.217 Tunggu beberapa waktu........................................... 163
Gambar 3.218 Eclipse siap digunakan............................................. 164
Gambar 3.219 Hasil “bin\hdfs dfs -mkdir /user”................................ 164
Gambar 3.220 Hasil “bin\hdfs dfs -mkdir /user/hduser” ................... 165
Gambar 3.221 Hasil di HDFS (browser)........................................... 167
Gambar 3.222 Setting koding NB Hadoop ....................................... 167
Gambar 3.223 Hasil run koding NB Hadoop .................................... 168
Gambar 3.224 Set bin Spark ............................................................ 172
Gambar 4.1 Running Java Process ................................................. 175
Gambar 4.2 Setting PC Master + (PC Node1, Node2, Node3): ............... 176
Gambar 4.3 nidos@master:~$ sudo gedit /etc/hostname .................... 179
Gambar 4.4 nidos@master:~$ sudo gedit /etc/hosts ........................... 179
Gambar 4.5 Tampilan Menu ............................................................. 180
Gambar 4.6 Tampilan Menu Edit ..................................................... 180
Gambar 4.7 Tampilan Connection Information ................................ 181
Gambar 4.8 Tampilan Menu ............................................................. 181
Gambar 4.9 Tampilan Edit Pada Gateway dan DNS Server ........... 181
Gambar 4.10 Hasil nidos@master:~$ sudo gedit /etc/hosts ................ 182
Gambar 4.11 Tampilan Edit Method Menjadi Manual ...................... 182
Gambar 4.12 Hasil nidos@master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/masters ............................................... 183
Gambar 4.13 Hasil nidos@master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/slaves .................................................. 184
Gambar 4.14 Clone PC Master ........................................................ 186
Gambar 4.15 Setting PC Master ...................................................... 186
Gambar 4.16 Setting PC Node1, Node2 dan Node3:............................ 186
Gambar 4.17 Tampilan Lihat IP Master ........................................... 187
Gambar 4.18 Setting IP PC Node 1 ................................................. 187
Gambar 4.19 Setting IP PC Node 2 ................................................. 187
Gambar 4.20 Setting IP PC Node 3 ................................................. 188
xvii
Gambar 4.21 Tampilan nidos@node1:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/masters ............................................... 189
Gambar 4.22 Tampilan nidos@node1:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/slaves .................................................. 190
Gambar 4.23 Tampilan Ubah Setting Network pada Virtual Box ..... 196
Gambar 4.24 Tampilan pada Adapter 1 ........................................... 196
Gambar 4.25 Tampilan Call SSH ..................................................... 197
Gambar 4.26 Tampilan Call SSH ..................................................... 198
Gambar 4.27 Format Namenode dari PC Master ............................ 199
Gambar 4.28 Tampilan star start-dfs.sh ............................................ 200
Gambar 4.29 Tampilan Start-yarn.sh ............................................... 200
Gambar 4.30 Tampilan http://localhost:50070 di Firefox .................... 201
Gambar 4.31 Tampilan Datanode Information di Firefox ................. 201
Gambar 4.32 Tampilan http://localhost:50090/status.html di Firefox .. 202
Gambar 4.33 Tampilan http://localhost:8088/cluster di Firefox .......... 202
Gambar 4.34 Tampilan Nodes Of the Cluster pada Firefox ............. 202
Gambar 4.35 Setting IP Windows ke-1 ................................................ 204
Gambar 4.36 Setting IP PC Master ...................................................... 204
Gambar 4.37 Setting IP PC Slave......................................................... 205
Gambar 4.38 Pilih NAT ...................................................................... 205
Gambar 4.39 Pilih PCI (Master) .......................................................... 206
Gambar 4.40 Pilih PCI (Slave) ............................................................. 206
Gambar 4.41 Ketik sudo .. (Master) .................................................... 207
Gambar 4.42 Ketik sudo .. (Slave) ....................................................... 207
Gambar 4.43 Ketik sudo ifdown eth1 .................................................. 208
Gambar 4.44 Ketik sudo nano /etc/hostname ..................................... 208
Gambar 4.45 Ketik sudo nano /etc/hosts ............................................ 208
Gambar 4.46 Ketik sudo nano /etc/hostname ..................................... 209
Gambar 4.47 Ketik sudo nano /etc/hosts ............................................ 209
Gambar 4.48 Cek Koneksi ke PC Slave ................................................. 209
Gambar 4.49 Cek Koneksi ke PC Master .............................................. 209
xviii
Gambar 4.50 Ketik sudo a o /us /lo al/hadoop/et /hadoop/ aste s
.......................................................................................................... 210
Gambar 4.51 Ketik sudo a o /us /lo al/hadoop/et /hadoop/sla es 210
Gambar 4.52 Ketik sudo nano /usr/local/hadoop/etc/hadoop/hdfs-site.xml
.......................................................................................................... 210
Gambar 4.53 Ketik sudo nano /usr/local/hadoop/etc/hadoop/hdfs-site.xml
.......................................................................................................... 211
Gambar 4.54 Ketik sudo nano /usr/local/hadoop/etc/hadoop/core-site.xml
.......................................................................................................... 212
Gambar 4.55 Ketik sudo nano /usr/local/hadoop/etc/hadoop/mapredsite.xml .............................................................................................. 212
Gambar 4.56 Buat namenode ............................................................ 213
Gambar 4.57 Buat datanode .............................................................. 213
Gambar 4.58 Call SSH dari PC Master ................................................. 214
Gambar 4.59 Call SSH dari PC Slave .................................................... 214
Gambar 4.60 Ketik hdfs namenode -format ........................................ 214
Gambar 4.61 Ketik start-all.sh ............................................................ 215
Gambar 4.62 JPS pada Master dan Slave ............................................. 215
Gambar 4.63 Cek datanode ............................................................... 215
Gambar 4.64 Copy File ...................................................................... 216
Gambar 4.65 bin hadoop ................................................................... 216
Gambar 4.66 bin hdfs ........................................................................ 216
Gambar 4.67 Cek pada PC Slave ......................................................... 216
Gambar 4.68 Cek pada PC Master ...................................................... 217
Gambar 4.69 Tampilan Dokumen Uji ............................................... 217
Gambar 4.70 Tampilan File wordcount.java..................................... 220
Gambar 4.71 Tampilan WordCount.Java dalam folder .................... 221
Gambar 4.72 Hasil nidos@master:/usr/local/hadoop$ jar cf wc.jar
WordCount*.class ............................................................................... 221
Gambar 4.73 Tampilan nidos@master:/usr/local/hadoop$ bin/hdfs dfs cat /user/nidos/wordcount/output/part* ............................................. 222
Gambar 4.74 Browse Directory pada Forefox .................................. 223
Gambar 4.75 Browse Directory pada Firefox ................................... 223
xix
Gambar 4.76 File Information Pada Firefox ..................................... 224
Gambar 4.77 File *.java dari Algoritma
Naive_Bayes_Classifier_MapReduce ..................................................... 225
Gambar 4.78 Folder /usr/local/hadoop ............................................. 226
Gambar 4.79 File *.java .................................................................... 227
Gambar 4.80 File *.java pada Folder Hadoop .................................. 227
Gambar 4.81 File *.class pada Folder Hadoop ................................ 228
Gambar 4.82 Hasill 1 of 2 ................................................................. 229
Gambar 4.83 Hasil 2 of 2.................................................................. 229
Gambar 4.84 NBbyArgument pada Eclipse ..................................... 230
Gambar 4.85 Running “NBbyArgument” ke-1 .................................. 231
Gambar 4.86 Running “NBbyArgument” ke-2 .................................. 231
Gambar 4.87 Running “NBbyArgument” ke-3 .................................. 232
Gambar 4.88 Running “NBbyArgument” ke-4 .................................. 232
Gambar 4.89 Running “NBbyArgument” ke-5 .................................. 233
Gambar 4.90 Running “NBbyArgument” ke-6 .................................. 233
Gambar 4.91 Running “NBbyArgument” ke-7 .................................. 234
Gambar 4.92 Running “NBbyArgument” ke-8 .................................. 234
Gambar 4.93 Running “NBtanpaArgument” ke-1 ............................. 235
Gambar 4.94 Running “NBtanpaArgument” ke-2 ............................. 235
Gambar 4.95 Running “NBtanpaArgument” ke-3 ............................. 236
Gambar 4.96 Running “NBtanpaArgument” ke-4 ............................. 236
Gambar 4.97 File *.java dari Algoritma K-Means ............................. 237
Gambar 4.98 Folder Com ................................................................. 237
Gambar 4.99 File *.class .................................................................. 238
Gambar 4.100 File KMeans.jar ........................................................ 238
Gambar 4.101 Hasil 1 of 2................................................................ 239
Gambar 4.102 Folder mapreduce dan model .................................. 239
Gambar 4.103 Folder com dalam folder hadoop ............................. 240
Gambar 4.104 File *.class ................................................................ 240
Gambar 4.105 File KMeans.jar ........................................................ 241
Gambar 4.106 Hasil 1 of 2................................................................ 241
xx
Gambar 4.107 Hasil 2 of 2................................................................ 242
Gambar 5.1 Konsep Hierarchical Clustering .................................... 244
Gambar 5.2 Konsep Non-Hierarchical Clustering ............................ 245
Gambar 5.3 K-Means ....................................................................... 249
Gambar 5.4 Kernel K-Means ............................................................ 249
Gambar 5.5 Visualisasi Hasil Mapping Data Kernel K-means ......... 188
Gambar 5.6 Visualisasi Data 2 Dimensi ........................................... 189
Gambar 5.7 Visualisasi data hasil update anggota cluster iterasi 1 195
Gambar 6.1 Visualisasi Hasil Peramalan Iterasi SVR 100000......... 197
Gambar 6.2 Regresi ......................................................................... 199
Gambar 6.3 Arsitektur ELM .............................................................. 200
Gambar 6.4 Training Algoritma ELM ................................................ 201
Gambar 6.5 Training ELM dengan Bias ........................................... 201
Gambar 6.6 Arsitektur Artificial Neural Network Backpropagation... 202
Gambar 7.1 Gambaran Perbedaan Klasifikasi dan Regresi ............ 208
Gambar 7.2 Contoh Regresi............................................................. 208
Gambar 7.3 Contoh Klasifikasi ......................................................... 209
Gambar 7.4 Linear Clasifier.............................................................. 209
Gambar 7.5 Non-Linear Clasifier ...................................................... 209
Gambar 7.6 Ilustrasi SVM Linear ..................................................... 211
Gambar 7.7 SVM Non-Linear ........................................................... 212
Gambar 7.8 Gambaran SVM dengan Slack Variable ...................... 212
Gambar 7.9 Contoh Klasifikasi dengan Metode One-Against-All .... 218
Gambar 7.10 Klasifikasi One-Against-One untuk 4 Kelas ............... 219
Gambar 7.11 Ilustrasi Klasifikasi dengan BDTSVM ......................... 220
Gambar 7.12 Ilustrasi Klasifikasi dengan metode DAGSVM ........... 221
Gambar 8.1 Get Eclipse OXYGEN ................................................... 223
Gambar 8.2 Bahasa Java/ Scala/ Python/ R .................................... 223
Gambar 8.5 Copy paste file *.vdi ...................................................... 364
Gambar 8.6 Buka cmd as administrator ........................................... 364
Gambar 8.7 Ketikkan “cd C:\Program Files\Oracle\VirtualBox” ....... 365
xxi
Gambar 8.8 Lalu ketikkan “vboxmanage sethduuid” ........................ 365
Gambar 8.9 Buka Virtualbox ............................................................ 365
Gambar 8.10 Set Memory size, misal “5000MB” ............................. 366
Gambar 8.11 Pilih “Use an existing virtual hard disk file”................. 366
Gambar 8.12 Virtual Machine siap untuk dijalankan ........................ 367
Gambar 8.13 Jalankan Virtual Machine ........................................... 367
Gambar 8.14 Folder di Window yang akan di-share ........................ 368
Gambar 8.15 Klik Devices Shared Folders.................................. 368
Gambar 8.16 Klik “Adds new shared folder” .................................... 369
Gambar 8.17 Pilih Folder.................................................................. 369
Gambar 8.18 cek “Auto-mount” dan “Make Permanent”, klik OK .... 370
Gambar 8.19 Kik OK ........................................................................ 370
Gambar 8.20 Cek pada Media “sf_File_Share” ........................... 371
Gambar 8.21 set mount dari Terminal ke-1...................................... 371
Gambar 8.22 set mount dari Terminal ke-2 (Fix) ............................. 372
Gambar 8.23 Relational Vs Non-Relational DB ............................... 373
Gambar 8.24 Collection pada NoSQL .............................................. 373
Gambar 8.25 Visual NoSQL System ................................................ 374
Gambar 8.26 Bentuk NoSQL ........................................................... 374
Gambar 8.27 SQL Vs NoSQL .......................................................... 375
Gambar 8.28 Hasil Running Hadoop (Install GUI MongoBD) .......... 378
Gambar 8.29 Tampilan Install GUI MongoDB .................................. 379
Gambar 8.30 Tampilan Install GUI MongoDB .................................. 380
Gambar 8.31 Hasil perintah (http://127.0.0.1:3333/) ........................ 380
Gambar 8.32 Hasil perintah (http://127.0.0.1:3333/) ........................ 381
Gambar 8.33 Perintah (http://127.0.0.1:3333/) test Connection ...... 381
Gambar 8.34 Perintah (http://127.0.0.1:3333/) ................................ 382
Gambar 8.35 Konfigurasi Koneksi (Hadoop + MongoDB) ............... 382
Gambar 8.36 Cop file
Gambar 8.37 file
o go-hadoop-core- . . .ja
....................... 383
o go-java-d i e ................................................ 383
xxii
Gambar 8.38 copy file jars (“mongo-hadoop-core-2.0.1.jar” dan
“mongo-java-driver-3.4.0.jar”) ke dir. lib pada tiap di hadoop cluster
.......................................................................................................... 386
Gambar 8.39 Buat DB “testmr” ......................................................... 386
Gambar 8.40 Tampilan Add Collection ............................................ 387
Gambar 8.41 I po t file *.jso as olle tio pada DB test
ke
olle tio i ..................................................................................... 387
Gambar 8.42 Text Input.................................................................... 388
Gambar 8.43 Import Document U tuk file i .jso tidak standar
Mongo ............................................................................................... 389
Gambar 8.44 Import Document U tuk file i .jso tidak standar
Mongo ............................................................................................... 389
Gambar 8.45 file in_standard.json standar Mongo .......................... 390
Gambar 8.46 in_standard.json standar Mongo (Klik Open) .............. 390
Gambar 8.47 Import Document ........................................................ 391
Gambar 8.48 Hasil dari Klik Import .................................................. 391
Gambar 8.49 file Wo dCou tMo go.ja a : ........................................ 394
Gambar 8.50 Hasil: nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main WordCountMongo.java ................................. 396
Gambar 8.51 Hasil: nidos@master:/usr/local/hadoop$ jar cf wcmongo.jar
WordCountMongo*.class .................................................................... 396
Gambar 8.52 Running perhitungan kata dari file dalam MongoDB . 397
Gambar 8.53 Hasil MongoDB .......................................................... 397
Gambar 8.54 Browse Directory ........................................................ 398
Gambar 8.55 Browse Directory ........................................................ 398
Gambar 8.56 File Information di Browser......................................... 398
Gambar 8.57 List dataset ................................................................... 399
Gambar 8.58 List dataset (dari MovieLens) ......................................... 400
Gambar 8.59 Tampilan Browse Directory ........................................ 400
Gambar 8.60 Add data ase ate o ie pada Mo goDB ..................... 401
Gambar 8.61 Add data ase ate o ie pada Mo goDB ..................... 401
Gambar 8.62 List File*.java untuk di Compile ke *.jar ...................... 402
Gambar 8.63 file comratingbymovies ............................................... 407
xxiii
Gambar 8.64 Compile Semua file *.java ke *.jar .............................. 407
Gambar 8.65 Hasil: nidos@master:/usr/local/hadoop$ jar cf ratemovie.jar
comratingbymovies/nidos/*.class ........................................................ 408
Gambar 8.66 Hasil: nidos@master:/usr/local/hadoop$ jar cf ratemovie.jar
comratingbymovies/nidos/*.class ........................................................ 408
Gambar 8.67 Hasil Running proses perhitungan rating movie .............. 409
Gambar 8.68 Running proses perhitungan rating movie out2 ............... 410
Gambar 8.69 Lihat hasil dari MongoDB melalui terminal ...................... 410
Gambar 8.70 Tampilan Browse Directory ........................................ 411
Gambar 8.71 File Information di Browser......................................... 411
Gambar 9.1 Mapreduce.................................................................... 415
Gambar 9.2 Hadoop Multi Node ....................................................... 416
Gambar 9.3 start-all.sh ..................................................................... 420
Gambar 9.4 Membuat Folder ........................................................... 420
Gambar 9.5 Cek Folder .................................................................... 421
Gambar 9.6 Compile semua file Java .............................................. 421
Gambar 9.7 Class Pada Direktori .................................................... 421
Gambar 9.8 File*.jar ......................................................................... 421
Gambar 9.9 Direktori ........................................................................ 422
Gambar 9.10 File Pada Folder Input ................................................ 422
Gambar 9.11 File Pada Localhost .................................................... 422
Gambar 9.12 Folder Output.............................................................. 422
Gambar 9.13 Folder Output.............................................................. 422
Gambar 9.14 Cek Folder .................................................................. 423
Gambar 9.15 Menjalankan Program ................................................ 423
Gambar 9.16 Cek Hasil .................................................................... 423
Gambar 9.17 Arsitektur Single Cluster ............................................. 426
Gambar 9.18 Cara Kerja Mapreduce ............................................... 426
Gambar 9.19 Jalankan hadoop (start-all.sh) .................................... 430
Gambar 9.20 Folder Data Latih dan Data Uji ................................... 431
Gambar 9.21 Proses Klasifikasi ....................................................... 431
Gambar 9.22 Contoh Hasil Klasifikasi .............................................. 431
xxiv
Gambar 9.23 Diagram Alir Clustering K-Means Judul Majalah........ 436
Gambar 9.24 Keluaran dari Proses Run File ................................... 438
Gambar 9.25 Keluaran Proses Run Clustering ................................ 439
xxv
Daftar Source Code
Source Code 3.1 Solusi Localhost:50070 tidak ada koneksi .................. 37
Source Code 3.2 Membuat Directories di HDFS .................................. 37
Source Code 3.3 File *.java Part 1 ..................................................... 37
Source Code 3.4 File *.java Part 1 Cont ............................................ 38
Source Code 3.5 File *.Java Part 2 .................................................... 39
Source Code 3.6 File *.Java Cont ...................................................... 40
Source Code 3.7 Solusi Error: Could not find or load main class
com.sun.tools.javac.Main ...................................................................... 40
Source Code 3.8 Solusi Error: Could not find or load main class fs: ....... 42
Source Code 3.9 Solusi Error: Could not find or load main class fs: Cont 43
Source Code 3.10 Hasil: hduser@Master:/usr/local/hadoop$ bin/hdfs
dfs -copyFromLocal /home/nidos/Desktop/data/a.txt
/user/hduser/wordcount/input ............................................................. 43
Source Code 3.11 Solusi jika sering muncul warning: WARN
util.NativeCodeLoader: Unable to load native-hadoop library for your
platfo … usi g uilti -java classes where applicable.............................. 44
Source Code 3.12 Source Code Untuk Melihat Isi dari Dokumen yang
Akan Diproses .................................................................................... 44
Source Code 3.13 Membuat Folder Output ....................................... 45
Source Code 3.14 Menjalankan JAR untuk wordcount (file a.txt saja) .... 45
Source Code 3.15 Menjalankan JAR untuk wordcount (file a.txt saja) Cont
............................................................................................................ 46
Source Code 3.16 Menjalankan JAR untuk wordcount (file b.txt saja): ... 47
Source Code 3.17 Menjalankan JAR untuk wordcount (file b.txt saja): Cont
............................................................................................................ 48
Source Code 4.1 Setting PC Master + (PC Node1, Node2, Node3): .... 177
Source Code 4.2 Setting PC Master + (PC Node1, Node2, Node3): .... 178
Source Code 4.3 Setting PC Master ................................................ 183
Source Code 4.4 Setting PC Master ................................................ 184
Source Code 4.5 Setting PC Master ................................................ 185
Source Code 4.6 Setting PC Master ................................................ 185
Source Code 4.7 Restart Network Disemua PC .............................. 188
xxvi
Source Code 4.8 Setting PC Master (Node1, Node2, Node 3) ........ 189
Source Code 4.9 Setting PC Master ................................................ 190
Source Code 4.10 Setting PC Master .............................................. 190
Source Code 4.11 Setting PC Master .............................................. 191
Source Code 4.12 Call SSH ............................................................. 192
Source Code 4.13 Cek Status SSH Ok ............................................ 192
Source Code 4.14 Cek Status SSH Error ........................................ 192
Source Code 4.15 Re-install SSH dan Cek Status OK .................... 193
Source Code 4.16 Call SSH untuk Node 2 ...................................... 193
Source Code 4.17 Cek Status SSH Ok ............................................ 194
Source Code 4.18 Cek Status SSH Error ........................................ 194
Source Code 4.19 Re-Install SSH dan Cek Status .......................... 194
Source Code 4.20 Call SSH untuk Node 3 ...................................... 194
Source Code 4.21 Call SSH untuk Node 3 Cont. ............................. 195
Source Code 4.22 Cek Status SSH Ok ............................................ 195
Source Code 4.23 Cek Status SSH Error ........................................ 195
Source Code 4.24 Re-Install SSH dan Cek Status .......................... 195
Source Code 4.25 “olusi u tuk e o ssh: o e t to host
aste / ode / ode / ode po t : No oute to host ........................ 196
Source Code 4.26 Call SSH Node 1 dari Master ............................. 197
Source Code 4.27 Call SSH-nya Master dari Node 1 ...................... 198
Source Code 4.28 SSH ID dari PC Master ...................................... 199
Source Code 4.29 Membuat Directories di HDFS ........................... 203
Source Code 4.30 Source Code Membuat Directories di HDFS Cont
.......................................................................................................... 203
Source Code 4.31 Buat File Dokumen Uji........................................ 217
Source Code 4.32 File Wordcount.Java........................................... 218
Source Code 4.33 File *.java Part 1 ................................................. 218
Source Code 4.34 File *.Java Part 2 Cont ....................................... 219
Source Code 4.35 File*.Java Part 2 ................................................. 219
Source Code 4.36 File *.Java Part 2 Cont ....................................... 220
Source Code 4.37 Running Proses Perhitungan Kata ..................... 222
xxvii
Source Code 4.38 Menjalankan JAR untuk wordcount untuk satu file
dalam satu folder .............................................................................. 224
Source Code 4.39 RatingCounterByMovieMongo.java.................... 226
Source Code 4.40 File *.class .......................................................... 227
Source Code 4.41 Membuat file *.class *.jar ................................. 228
Source Code 4.42 Membuat File *.class .......................................... 238
Source Code 4.43 Membuat File *.class .......................................... 240
Source Code 4.44 Perintah Membuat file *.class *.jar ................... 241
Source Code 8.1 Contoh Document BSON ..................................... 376
Source Code 8.2 Contoh Penggunaan BSON ................................. 376
Source Code 8.3 Contoh Penggunaan BSON ................................. 376
Source Code 8.4 Install MongoBD untuk simpan file hasil running
kode program di Hadoop .................................................................. 377
Source Code 8.5 Running Hadoop (Install GUI MongoDB) ............. 378
Source Code 8.6 Running Hadoop (Install GUI MongoDB) ............. 378
Source Code 8.7 Running Hadoop (Install GUI MongoDB) Cont .... 379
Source Code 8.8 Install GUI MongoDB Cont .................................. 379
Source Code 8.9 perintah (http://127.0.0.1:3333/) ........................... 381
Source Code 8.10 Konfigurasi Koneksi (Hadoop + MongoDB) ....... 382
Source Code 8.11 copy file jars (“mongo-hadoop-core-2.0.1.jar” dan
“mongo-java-driver-3.4.0.jar”) ke directory lib pada setiap di hadoop
cluster ............................................................................................... 384
Source Code 8.12 copy file jars (“mongo-hadoop-core-2.0.1.jar” dan
“mongo-java-driver-3.4.0.jar”) ke directory lib pada setiap di hadoop
cluster Cont ...................................................................................... 385
Source Code 8.13 in.json tidak standar Mongo ........... 387
Source Code 8.14 in_standard.json standar Mongo ..... 388
Source Code 8.15 File WordCountMongo.java Part 1 of 2 .................. 392
Source Code 8.16 File WordCountMongo.java Part 2 of 2 .................. 393
Source Code 8.17 Compile ke *.jar file WordCountMongo.java ........ 394
Source Code 8.18 Compile ke *.jar file WordCountMongo.java ........ 395
Source Code 8.19 Running proses perhitungan kata dalam file dokumen
dalam MongoDB ................................................................................. 397
xxviii
Source Code 8.20 Membuat Directories ate o ie/dataset di HDFS. 399
Source Code 8.21 Copy Semua File Dataset dari Local Folder ...... 400
Source Code 8.22 file (MovieMapper.java Part 1 of 1) ........................ 402
Source Code 8.23 file (MovieReducer.java Part 1 of 2)........................ 403
Source Code 8.24 file (MovieReducer.java Part 2 of 2)........................ 403
Source Code 8.25 file (RatingCounterByMovieMongo.java Part 1 of 2) 404
Source Code 8.26 file (RatingCounterByMovieMongo.java Part 1 of 2) 405
Source Code 8.27 file (RatingCounterByMovieMongo.java Part 2 of 2) 405
Source Code 8.28 file (RatingMapper.java Part 1 of 1) ........................ 406
Source Code 8.29 Compile file ke *.jar ............................................ 406
Source Code 8.30 Compile file *.java ke *.jar .................................. 407
Source Code 8.31 Running proses perhitungan rating movie out1 ....... 409
Source Code 8.32 Running proses perhitungan rating movie out2 ....... 409
Source Code 9.1 Map.java ............................................................... 419
Source Code 9.2 Reduce.java ......................................................... 420
Source Code 9.3 Kode Program 1 ................................................... 428
Source Code 9.4 Kode Program 2 ................................................... 429
Source Code 9.5 KMeansHadoop.java ............................................ 438
Source Code 9.6 Map Reduce ......................................................... 443
xxix
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
BAB 1 Konsep Big Data
1.1 Pengantar
Banyak perdebatan yang signifikan tentang apa itu Big Data dan
apa jenis keterampilan yang diperlukan untuk penggunaan terbaik dari
Big Data tersebut. Banyak yang menulis tentang Big Data dan
kebutuhan untuk analisis yang canggih dalam industri, akademisi, dan
pemerintah, maupun lainnya. Ketersediaan sumber data baru dan
munculnya peluang analitis yang lebih kompleks telah menciptakan
kebutuhan untuk memikirkan kembali arsitektur data yang ada untuk
memungkinkan analisis yang dapat dengan optimal memanfaatkan Big
Data.
Bab ini menjelaskan beberapa konsep utama Big Data, mengapa
analisis canggih diperlukan, perbedaan Data Science vs Business
Intelligence (BI), dan apa peran baru yang diperlukan untuk ekosistem
Big Data. Berikut berbagai perkembangan data dan munculnya sumber
data yang besar dari tahun ke tahun yang ditunjukan oleh Gambar 1.1
berikut:
Gambar 1.1 Perkembangan data
Untuk gambaran perbedaan Data Science dan Business
Intelligence (BI) ditunjukan pada Gambar 1.2 berikut:
1
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 1.2 Data Science vs Business Intelligence
Sebuah penelitian eksplanatori (Explanatory Research) menurut
Singarimbun dalam Singarimbun dan Effendi (Ed 1995) merupakan
penelitian yang menjelaskan hubungan kausal (sebab akibat) antara
variabel penelitian dengan pengujian hipotesa (menguji suatu teori
atau hipotesis guna memperkuat atau bahkan menolak teori atau
hipotesis hasil penelitian yang sudah ada sebelumnya). Di dalam
penelitian eksplanatori, pendekatan yang dipakai dalam penelitian ini
adalah metode survey, yaitu penelitian yang dilakukan untuk
memperoleh fakta-fakta mengenai fenomena-fenomena yang ada di
dalam obyek penelitian dan mencari keterangan secara aktual dan
sistematis.
Pengertian riset eksploratori adalah riset yang ditujukan untuk
mengeksplor atau untuk mengumpulkan pemahaman mendalam
(penyelidikan) mengenai suatu masalah, bukan untuk menguji variabel
karena variabel-tersebut biasanya belum diketahui dan baru akan
diketahui melalui riset. Riset eksploratori bersifat fleksibel dan tidak
terstruktur. Umumnya riset ini berbentuk riset kualitatif dengan
metode pengumpulan data yang lazim digunakan yaitu wawancara
dan diskusi kelompok.
ad-hoc reporting adalah model dari BI di mana laporan yang
dibangun dan didistribusikan oleh pengguna akhir yang tidak begitu
mengerti teknis (non teknis). Dan software untuk Business Intelligence
(BI) atau disebut juga dengan dashboard.
2
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
1.2 Gambaran Umum Big Data
Dari sudut pandang ilmu pengetahuan, media penyimpanan
pada hardware yang dapat digunakan adalah HDD, FDD, dan yang
sejenisnya. Sedangkan media penyimpanan pada jaringan biologi,
pada diri kita dikaruniai Otak oleh Sang Creator atau Sang Pencipta.
Seberapa penting mengolah data-data yang kecil kemudian berkumpul
menjadi data yang besar (Big Data) tersebut. Berikut gambaran umum
Big Data yang ditunjukkan oleh Gambar 1.3.
Gambar 1.3 Gambaran Umum Big Data
Dari gambar 1.3 diatas dapat dilihat beberapa elemen penting dalam
big data diantaranya:
-
-
Data (Facts, a description of the World)
Information (Captured Data and Knowledge): Merekam atau
mengambil Data dan Knowledge pada satu waktu tertentu (at a
single point). Sedangkan Data dan Knowledge dapat terus
berubah dan bertambah dari waktu ke waktu.
Knowledge (Our personal map/model of the world): apa yang kita
ketahui (not the real world itself) Anda saat ini tidak dapat
menyimpan pengetahuan dalam diri anda dalam apa pun selain
otak, dan untuk membangun pengetahuan perlu informasi dan
data.
Menurut McKinsey Global (2011), Big Data dapat didefinisikan
dengan data yang memiliki skala (volume), distribusi (velocity),
3
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
keragaman (variety) yang sangat besar, dan atau abadi, sehingga
membutuhkan penggunaan arsitektur teknikal dan metode analitik
yang inovatif untuk mendapatkan wawasan yang dapat memberikan
nilai bisnis baru (informasi yang bermakna). Dan pada
pengembangannya ada yang menyebut (7V) termasuk Volume,
Velocity, Variety, Variability, Veracity, Value, dan Visualization, atau
10V bahkan lebih dari itu.
Jumlah data yang dihasilkan dalam ukuran petabyte (^15) ke
zetabyte (^21)
Perubahan data selama
pemrosesan dan
lifecycle-nya
Volume
Variability
Variety
Value
data yang memiliki nilai guna
(data yang berguna)
Analisis yang dilakukan pada
Data, akan lebih bermanfaat bila
akurasi data ditingkatkan
Data yang masuk dalam berbagai format
(terstruktur, semi
terstruktur, dan
tidak terstruktur)
Veracity
Velocity
Kecepatan data yang
dibuat/ digenerate/ ditangkap, dan dialirkan
(data streaming real time)
Gambar 1.4 Big Data dengan 6V+ 1V(Visualization)=7V
Big data merupakan istilah untuk sekumpulan data yang begitu
besar atau kompleks dimana tidak bisa ditangani lagi dengan sistem
teknologi komputer konvensional (Hurwitz, et al., 2013). Kapan suatu
data dapat dikataka se agai Big Data ?
Kualitas data, Tata Kelola, Pengelolaan
Data Master secara Massive
Ukuran Data
Kecepatan Data
yang dihasilkan
Perilaku Berkembang,
Dinamis dari Sumber Data
Berbagai tipe data
Data heterogen yang
terdistribusi
dari beberapa Platform
Akurasi data
Model Data, Semantik yang
menggambarkan Struktur data
Data yang punya nilai guna
Teka-teki terhadap teknik meaning
Big Data dan Tools yang digunakan
Gambar 1.5 Big Data dengan 10V
4
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
1.3 Karakteristik Big Data (3V)
1. Volume
- Facebook menghasilkan 10TB data baru setiap hari, Twitter 7TB
- Sebuah Boeing 737 menghasilkan 240 terabyte data penerbangan selama penerbangan dari satu wilayah bagian AS ke
wilayah yang lain
- Microsoft kini memiliki satu juta server, kurang dari Google,
tetapi lebih dari Amazon, kata Ballmer (2013).
Catatan: Kita dapat menggunakan semua data ini untuk
memberitahu kita sesuatu, jika kita mengetahui pertanyaan yang
tepat untuk bertanya.
Gambar 1.6 Tradisional vs Big Data
5
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Kata Big Data mengarah kepada managemen informasi skala besar
(large-scale) dan teknologi analisis yang melebihi kapabilitas teknologi
data secara tradisional. Terdapat perbedaan yang paling utama dalam
tiga hal antara Tradisional dengan Big Data, yaitu amount of data (volume), the rate of data generation and transmission (velocity), dan the
types of structured and unstructured data (variety).
Gambar 1.7 Bentuk Infrastruktur
Data Center
Gambar 1.8 Google Cloud
Platform
Berikut gambaran traditioonal approach dan big data approach
yang ditunjukkan oleh Gambar 1.6 dan 1.7.
Traditional Approach
Gambar 1.9 Analyze small
subsets of data
Big Data Approach
Gambar 1.10 Analyze all data
Teknologi Big Data dibagi menjadi 2 kelompok: batch processing
yang mana digunakan untuk menganalisis data yang sudah settle (data
at rest) pada satu waktu tertentu. Dan streaming processing yang
mana digunakan untuk menganalisis data yang terus menerus terupdate setiap waktu (data in motion).
6
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 1.11 Batch dan stream processing
2. Velocity
Velocity adalah Kecepatan data yang masuk (per jam, per
detik, etc). Clickstreams (web log) dan transfer data asynchronous
yang dapat menangkap apa saja yang dilakukan oleh jutaan atau
lebih pengguna yang lakukan saat ini. Dimana clickstream atau
web log merupakan salah satu sumber data yang menarik. Sebuah
clickstream meliputi suatu rekaman untuk setiap permintaan
halaman dari setiap pengunjung website. Jadi, suatu clickstream
merekam setiap gesture yang dibuat oleh pengunjung dan gesture
ini memiliki potensi untuk memberikan deskripsi mengenai
kebiasaan dari pengunjung yang bersangkutan. Diharapkan bahwa
clickstream akan mengidentifikasi sesi yang berhasil dan tidak
berhasil, menentukan apakah pengunjung puas atau tidak puas,
dan menemukan bagian dari website yang secara efektif menarik
perhatian pengunjung.
37
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Traditional Approach Start
with hypothesis and test
against selected data
Gambar 1.12 Traditional Approach
Big Data Approach Explore all
data and identify
correlations
Gambar 1.13 Big Data Approach
3. Variety
Variety merupakan kumpulan dari berbagai macam data,
baik data yang terstruktur, semi terstruktur maupun data tidak
terstruktur (bisa dipastikan lebih mendominasi). Tampilan data
semakin komprehensif (lengkap dan menyeluruh).
data yang terstruktur
semi terstruktur
tidak terstruktur
Gambar 1.14 Variety Data
4. Rangkuman 3V dan Veracity
Terabytes ke
Petabytes Data
Terstruktur, Semi,
dan Tidak Terstruktur
Data streaming pada
sepersekian detik
Kepastian kondisi
data, apakah datanya
benar atau salah
Gambar 1.15 Rangkuman 3V dan Veracity
6
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
1.4 Ekosistem Big Data Analytics
Berikut gambaran dari Ekosistem Big Data yang ditunjukkan
oleh Gambar 1.15:
Gambar 1.16 Gambaran Ekosistem Big Data
Keterangan:
1. Data Devices
2. Data Collectors
3. Data Aggregators: kompilasi informasi dari database dengan
tujuan untuk mempersiapkan dataset gabungan untuk
pengolahan data.
4. Data Users/ Buyers
Apa yang dimasud dengan Analytics? Sebuah titik awal untuk
memahami Analytics adalah Cara untuk mengeksplorasi/
menyelidiki/ memahami secara mendalam suatu objek sampai ke
akar-akarnya. Hasil analytics biasanya tidak menyebabkan banyak
kebingungan, karena konteksnya biasanya membuat makna yang
jelas. Perkembangan analytics dimulai dari DSS kemudian berkembang menjadi BI (Bussines Intelligence) baru kemudian menjadi analytics yang ditunjukkan oleh Gambar 1.16 berikut:
Decision
Support
Systems
1970s
Business
Intelligence
1990s
Analytics
2010
Gambar 1.17 Perkembangan Analytics
7
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
BI dapat dilihat sebagai istilah umum untuk semua aplikasi
yang mendukung DSS, dan bagaimana hal itu ditafsirkan dalam
industri dan semakin meluas sampai di kalangan akademisi. BI
berevolusi dari DSS, dan orang dapat berargumentasi bahwa
Analytics berevolusi dari BI (setidaknya dalam hal peristilahan).
Dengan demikian, Analytics merupakan istilah umum untuk aplikasi
analisis data.
Big Data Analytics merupakan Alat dan teknik analisis yang
akan sangat membantu dalam memahami big data dengan syarat
algoritma yang menjadi bagian dari alat-alat ini harus mampu
bekerja dengan jumlah besar pada kondisi real-time dan pada data
yang berbeda-beda.
Bidang Pekerjaan baru Big Data Analytics:
-
-
-
Deep Analytical Talent / Data scientists (Memiliki bakat
analitik yang mendalam/ Ilmuwan Data): orang-orang
dengan latar belakang yang kuat dalam algoritma-algoritma
sistem cerdas, atau matematika terapan, atau ekonomi, atau
ilmu pengetahuan lainnya melalui inferensi data dan eksplorasi.
Data Savvy Professionals (Para profesional Data Cerdas):
Mereka tahu bagaimana untuk berpikir tentang data,
bagaimana mengajukan jenis pertanyaan (goal) yang tepat
sesuai dengan kebutuhan lembaga/perusahaan/lainnya dan
mampu memahami dan mengklarifikasi jawaban (hasil
analisis) yang mereka terima.
Technology and data enablers: Mampu memberikan
dukungan integrasi antara data dengan teknologi yang
sesuai, dan yang paling berkembang saat ini.
Contoh perusahaan atau developer yang menggunakan analisis Big
Data:
-
Starbucks (Memperkenalkan Produk Coffee Baru). Pagi itu
kopi itu mulai dipasarkan, pihak Starbucks memantau
melalui blog, Twitter, dan kelompok forum diskusi kopi
lainnya untuk menilai reaksi pelanggan. Pada pertengahanpagi, Starbucks menemukan hasil dari analisis Big Data
bahwa meskipun orang menyukai rasa kopi tersebut, tetapi
mereka berpikir bahwa harga kopi tersebut terlalu mahal.
Maka dengan segera pihak Starbucks menurunkan harga,
8
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
dan menjelang akhir hari semua komentar negatif telah
menghilang. Bagaimana jika menggunakan analisis
tradisional?
Contoh tersebut menggambarkan penggunaan sumber data
yang berbeda dari Big Data dan berbagai jenis analisis yang dapat
dilakukan dengan respon sangat cepat oleh pihak Starbucks.
-
Pemilihan Presiden atau walikota atau lainnya di suatu
Negara atau kota melalui analisis tweet dengan Apache
HDF/NiFi, Spark, Hive dan Zeppelin.
o Apache NiFi, get filtered tweets yang berhubungan
dengan Pemilihan Presiden atau walikota, misal di
Indonesia atau di kota tertentu.
o Apache Spark, get the stream of tweets dari Apache NiFi.
o Spark streaming, untuk mentransformasi dan menyimpan
data ke dalam suatu tabel pada Apache Hive.
o Apache Zeppelin notebook, untuk menampilkan data
hasil secara real-time.
Hasil analytics:
o Frekuensi dari tweets sepanjang waktu per kandidat
o Persentase tweet negatif, positive dan neutral per kandidat
o Tren opini sepanjang waktu untuk tiap kandidat
1.5 Ekosistem Tool Big Data Analytics
Berikut gambaran dari Ekosistem Tool Big Data, menggunakan
salah satu variasi dari susunan Ekosistem Hadoop (Apache Hadoop
Ecosystem) yang ditunjukkan oleh Gambar 1.17 berikut:
9
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 1.18 Contoh Ekosistem Hadoop ke-1
Berdasarkan dari Ekosistem Big Data yang begitu kompleks
pada bab sebelumnya, maka hal yang sangat penting dilakukan
pertama kali sebagai kunci sukses untuk membangun Ekosistem
Hadoop adalah mengidentifikasi kegunaan dan bagaimana interaksi
antara, atau dari masing-masing Tool Big Data, serta apa saja yang
nantinya akan digunakan dalam melakukan pembuatan
implementasi pada lingkungan Hadoop. Gambar 1.17 memberikan
contoh gambaran umum tentang interaksi aplikasi, tool dan interface
yang ada di ekosistem Hadoop yang dibangun, misal berdasarkan
kategori atau spesifikasi dari setiap produk-produk Apache
berdasarkan fungsinya, mana yang spesifik digunakan untuk;
(Storage, Processing, Querying, External Integration & Coordination),
dan bagaimana kecocokan interaksi diantara mereka.
Pada Gambar 1.18 berikut adalah contoh Ekosistem Hadoop
yang lain dengan menggunakan beberapa Tool Big Data yang
berbeda dengan Ekosistem sebelumnya,
10
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 1.19 Contoh Ekosistem Hadoop ke-2
Fokus dari adanya visualisasi ekosistem dari Tool Big Data
adalah terkait suatu gambaran sistem yang mempelajari interaksi
antara satu Tool Big Data satu dengan lainnya, maupun interakti
suatu Tool Big Data yang ada dengan Lingkungannya (misal Data,
Kondisi Kasusnya, dll), sedangkan fokus dari pembuatan arsitektur
Tool Big Data (akan dibahas lebih detil pada bab selanjutnya) adalah
lebih ke arah seni dan ilmu yang digunakan untuk merancang,
mendesain dan membangun produk dari mengkombinasikan dari
banyaknya pilihan Tool -Tool Big Data yang ada sesuai dengan
seberapa komplek kasus yang ditangani untuk projek analitik dalam
Scope Big Data, dan memungkinkan akan adanya modifikasi atau
perbaikan kembali arsitektur yang ada sebelumnya dari waktu ke
waktu, misal dalam beberapa bulan atau tahun produk arsitertur
tersebut mungkin akan menjadi usang dan harus diganti dengan
arsitektur yang lain yang lebih baik dan optimal.
Selain dari kedua contoh Ekosistem Hadoop sebelumnya,
contoh pada Ekosistem Hadoop yang lain lebih ke arah Industrial
Best Practices untuk diterapkan dalam bidang apapun, misal
11
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
kesehatan (Healthcare), dsb bisa menggunakan Hadoop Distribution
(HD) dari hasil karya terbaik beberapa perusahaan berikut,
1. Cloudera: didirikan orang-orang yang berkontribusi di project
Hadoop di Apache, Memiliki pangsa pasar paling besar,
membuat HD versi gratis dan juga versi enterprise yang tidak
gratis, menambahkan software khusus milik mereka yang
disebut Impala (Query Engine diatas HDFS, seperti Map
Reduce yang bisa dijalankan dengan low-latency atau dengan
waktu yang lebih pendek dibanding Map Reduce).
2. HortonWorks: didirikan orang-orang yang berkontribusi di
project Hadoop juga, diadopsi di Microsoft Azure dan menjadi
Microsoft HD Insight. Partnership ini yang membuat
Hortonworks sampai saat ini satu-satunya Hadoop yang
compatible dan mudah dijalankan di Microsoft Windows, HD
versi enterprise dari Hortonworks adalah gratis. Hortonworks
mendapatkan keuntungan dari support dan training.
3. MapR Technologies: seperti Hortonworks, memberikan gratis
untuk versi enterprisenya dan mendapat keuntungan dari
support dan training, digunakannya oleh dua perusahaan
cloud computing yang besar Amazon dan Google, maka MapR
banyak digunakan oleh pengguna cloud computing.
4. etc
Hadoop yang dari Apache memiliki kemiripan dengan Linux
dari segi komposisi, konfigurasi dan distribusinya, namun bukan
dalam hal fungsionalitas. Hadoop komposisinya dibangun dengan
menggunakan software open source dibawah lisensi Apache
Fundation. Hadoop Distribution adalah Perusahaan yang membuat
sebuah paket Hadoop siap pakai dan menjualnya, dari hasil
konfigurasi Hadoop standard dengan tool-tool Big Data lain yang
sesuai dengan desain konfigurasi komposisi yang menurut mereka
terbaik, yang didalamnya ada Ekosistem Hadoop dan juga
Arsitekturnya. Anda pun secara mandiri dapat membuat Hadoop
Distribution juga, namun yang harus diperhatikan adalah tentang
keahlian dan penguasaan tingkat dasar sampai tingkat lanjut terkait
konsep Big Data, dan Tool-tool yang berkembang untuk Big Data
tersebut, jika belum maka anda dapat mempelajarinya secara
bertahap dengan fokus pada beberapa core dari Tool pengolahan Big
Data, misal untuk awalan cukup menguasai Hadoop dan Spark,
12
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
kemudian disusul Tool yang lainnya , hal ini akan memudahkan anda
belajar untuk menjadi sangat ahli dalam bidang Big Data dan Toolnya, sehingga setelah mahir, anda akan merasa sangat mudah dalam
membuat Hadoop Distribution secara mandiri.
Gambar 1.20 Cloudera vs Hortonworks vs MapR
1.6 Tugas Kelompok
1. Jelaskan Pengertian dan keberadaan (ada atau tidak adanya)
dari Big Data, dari sudut pandang spesifikasi hardware:
a. Jika belum memenuhi kebutuhan Big Data tersebut.
b. Jika sudah memenuhi kebutuhan Big Data tersebut.
2. Sebutkan permasalahan apa saja yang sering muncul pada Big
Data?
3. Jelaskan apa yang dimaksud dengan Volume, Velocity, Variety,
dan Veracity dalam Big Data!
4. Jelaskan Perbedaan antara analisis dan analitik (analytics)!
5. Apa pendapat anda antara Big Data vs Big Information vs Big
Knowledge, manakah diantara ke-3 hal tersebut yang lebih
utama?
6. Berikan deskripsi sekaligus contoh, terkait data terstruktur,
semi terstruktur dan tidak terstruktur!
13
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
BAB 2 Analitik Big Data
& Lifecycle
2.1 Pengantar
Fakta-fakta terkait dengan kondisi existing Perusahaan:
Gambar 2.1 Daftar Perusahaan
Informasi apa saja yang bisa digali dari Big Data pada
perusahaan di atas? Dan strategi apa saja yang bisa dilakukan dari
masing-masing perusahaan di atas terkait Analitik Data.
-
Advance Technology (Tools) Big Data
-
Key Roles Kunci Sukses Proyek Analitik
-
Lifecycle Analitik Data
2.2 Teknologi Advaced (Tools) Big Data
Teknologi yang digunakan dalam pentyimpanan (storage),
pemrosesan (processing), dan analisis dari Big Data meliputi:
a. Dengan cepat menurunnya biaya penyimpanan dan daya CPU
dalam beberapa tahun terakhir.
b. Fleksibilitas dan efektivitas biaya pusat data (datacenters) dan
komputasi awan (cloud computing) untuk perhitungan dan
penyimpanan elastis;
c. Pengembangan frameworks baru seperti Hadoop, yang
memungkinkan pengguna memanfaatkan sistem komputasi
terdistribusi ini untuk mengolah menyimpan sejumlah data
besar melalui pemrosesan paralel yang fleksibel.
14
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 2.2 Faktor yang mendorong (driving) adopsi Big Data
Beberapa tools yang dapat membantu untuk membuat query
yang kompleks dan menjalankan algoritma dari machine learning di
atas hadoop, meliputi:
-
Pig (sebuah platform dan scripting language untuk complex
queries)
-
Hive (suatu SQL-friendly query language)
-
Mahout dan RHadoop (data mining dan machine learning
algorithms untuk Hadoop)
-
Selain hadoop, terdapat frameworks baru seperti Spark yang
didesain untuk meningkatkan efisiensi dari data mining dan
algoritma pada machine learning pada hadoop, sehingga dapat
digunakan secara berulang-ulang untuk mengerjakan
pengolahan/ analitik secara mendalam dari kumpulan data
Dan juga terdapat beberapa database yang didesain untuk
efisiensi peyimpanan dan query Big Data, meliput:
-
MongoDB
-
Cassandra
-
CouchDB
-
Greenplum Database
-
HBase, MongoDB, dan
-
Vertica.
15
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Pengolahan secara stream (Stream processing) yang artinya
adalah pemrosesan data yang memiliki arus atau aliran
data/informasi secara terus-menerus yang hampir setiap waktu ada
data baru yang masuk dan butuh untuk dilakukan pengolahan terusmenerus pula. Stream processing tidak memiliki teknologi tunggal
yang dominan seperti Hadoop, namun merupakan area untuk
menumbuhkan penelitian menjadi lebih luas serta mendalam dan
pengembangan lebih lanjut (Cugola & Margara 2012). Salah satu
model untuk Stream processing adalah Complex Event Processing
(Luckham 2002), yang menganggap arus informasi sebagai notifikasi
kreasi atau indikasi akan munculnya peristiwa tertentu (melalui
pola/pattern yang diidentifikasi) yang perlu digabungkan untuk
menghasilkan pengetahuan akan adanya indikasi kejadian sangat
penting atau tingkat tinggi (high-level events). Implementasi
teknologi stream antara lainnya meliputi:
-
InfoSphere Streams
-
Jubatus, dan
-
Storm
2.3 Arsitektur Big Data
Cara Terbaik untuk mendapatkan solusi dari Permasalahan Big
Data (Big Data Solution) adalah dengan "Membagi Masalahnya". Big
Data Solution dapat dipahami dengan baik menggunakan Layered
Architecture. Arsitektur Layered dibagi ke dalam Lapisan yang
berbeda dimana setiap lapisan memiliki spesifikasi dalam melakukan
fungsi tertentu. Arsitektur tersebut membantu dalam merancang
Data Pipeline (jalur data) dengan berbagai mode, baik Batch
Processing System atau Stream Processing System. Arsitektur ini
terdiri dari 6 lapisan yang menjamin arus data yang optimal dan
aman.
Data Ingestion Layer - Lapisan ini merupakan langkah awal
untuk data yang berasal dari sumber tertentu dan akan memulai
perjalanannya. Data disini akan dilakukan pemrioritasan dan
pengkategorian, sehingga data dapat diproses dengan mudah
diteruskan ke lapisan lebih lanjut. Tool yang dapat digunakan, yaitu
Apache Flume, Apache Nifi (Pengumpulan dan Penggalian Data dari
Twitter menggunakan Apache NiFi untuk Membangun Data Lake),
Elastic Logstash. Data masuk ke dalam Data Lake dalam bentuk
16
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
mentah, dan semua datanya disimpan, tidak hanya data yang
digunakan saja, tapi juga data yang mungkin digunakan di masa
depan. Di Data Lake semua data tersimpan dalam bentuk aslinya.
Lapisan Kolektor Data (Data Collector Layer) - Di Lapisan ini,
lebih fokus pada penyaluran data dari lapisan penyerapan atau
pengambilan data awal (ingestion) ke jalur data yang lainnya. Pada
Lapisan ini, data akan dipisahkan sesuai dengan kelompoknya atau
komponen-komponennya (Topik: kategori yang ditentukan
pengguna yang pesannya dipublikasikan, Produser - Produsen yang
memposting pesan dalam satu topik atau lebih, Konsumen berlangganan topik dan memproses pesan yang diposkan, Brokers Pialang yang tekun dalam mengelola dan replikasi data pesan)
sehingga proses analitik bisa dimulai. Tool yang dapat digunakan,
yaitu Apache Kafka.
Gambar 2.3 Arsitektur Big Data
Lapisan Pengolahan Data (Data Processing Layer) - fokus
utama lapisan ini adalah untuk sistem pemrosesan data pipeline atau
dapat kita katakan bahwa data yang telah kita kumpulkan di lapisan
sebelumnya akan diproses di lapisan ini. Di sini kita melakukan
ekstraksi dan juga learning dari data untuk diarahkan ke tujuan yang
bermacam-macam, mengklasifikasikan arus data yang seharusnya
17
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
diarahkan dan ini adalah titik awal di mana analitik telah dilakukan.
Data pipeline merupakan komponen utama dari Integrasi Data. Data
pipeline mengalirkan dan mengubah data real-time ke layanan yang
memerlukannya, mengotomatiskan pergerakan dan transformasi
data, mengolah data yang berjalan di dalam aplikasi Anda, dan
mentransformasikan semua data yang masuk ke dalam format
standar sehingga bisa digunakan untuk analisis dan visualisasi. Jadi,
Data pipeline adalah rangkaian langkah yang ditempuh oleh data
Anda. Output dari satu langkah dalam proses menjadi input
berikutnya. Langkah-langkah dari Data pipeline dapat mencakup
pembersihan, transformasi, penggabungan, pemodelan dan banyak
lagi, dalam bentuk kombinasi apapun. Tool yang dapat digunakan,
yaitu Apache Sqoop, Apache Storm, Apache Spark, Apache Flink.
Lapisan Penyimpanan Data (Data Storage Layer) - Media
penyimpanan menjadi tantangan utama, saat ukuran data yang
digunakan menjadi sangat besar. Lapisan ini berfokus pada "tempat
menyimpan data yang begitu besar secara efisien". Tool yang dapat
digunakan, yaitu Apache Hadoop (HDFS), Gluster file systems (GFS),
Amazon S3.
Lapisan Query Data (Data Query Layer) - lapisan ini
merupakan tempat berlangsungnya pemrosesan secara analitik yang
sedang dalam keadaaan aktif. Di sini, fokus utamanya adalah
mengumpulkan data value sehingga dapat dibuat lebih bermanfaat
dan mudah digunakan untuk lapisan berikutnya. Tool yang dapat
digunakan, yaitu Apache Hive, Apache (Spark SQL), Amazon Redshift,
Presto.
Lapisan Visualisasi Data (Data Visualization Layer) - Proses
Visualisasi, atau tahapan merepresentasikan data dalam bentuk
visual, kemungkinan ini adalah tingkat yang paling bergengsi, di
mana pengguna data pipeline dapat merasakan hasil laporan yang
mendetail dan mudah dipahami dari data value yang telah
divisualisasikan. Kita membutuhkan sesuatu yang akan menarik
perhatian orang dari visualisasi data, sehigga membuat temuan Anda
mudah dipahami dengan baik oleh mereka melalui visualisasi
tersebut. Tool yang dapat digunakan, yaitu Tableau, Kibana
sebagai Real-Time Dashboards, Angular.js se agai Intelligence
Agents misalnya agen dapat mengingat hal-hal yang mungkin Anda
sudah lupa, dengan cerdas meringkas data yang kompleks, belajar
dari Anda dan bahkan membuat rekomendasi untuk Anda,
18
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
menemukan dan memfilter informasi saat Anda melihat data
perusahaan atau berselancar di Internet dan tidak tahu di mana
informasi yang tepat, React.js se agai sistem recommender untuk
memprediksi tentang kriteria pengguna, yaitu menentukan model
penggunanya seperti apa.
Gambar 2.4 Data Integration Using Apache NiFi dan Apache Kafka
Gambar 2.5 Integrating Apache Spark dan NiFi for Data Lakes
Apache Spark digunakan secara luas untuk pengolahan Big
Data. Spark bisa mengolah data di kedua mode yaitu Pengolahan
Batch Mode dan Streaming Mode. Apache NiFi ke Apache Spark
melakukan transmisi data menggunakan komunikasi situs ke situs.
Dan output port-nya digunakan untuk mempublikasikan data dari
sumbernya (source). Apache Spark adalah mesin pemrosesan data
dalam memori, yang cepat dan ringkas dengan mode pengembangan
API yang elegan dan ekspresif, yang memungkinkan pengguna
melakukan proses secara streaming, menggunakan pembelajaran
mesin (machine learning), atau SQL yang memerlukan akses
berulang-ulang secara cepat terhadap kumpulan data. Dengan Spark
yang berjalan di Apache Hadoop YARN, developer sekarang dapat
membuat aplikasi dengan memanfaatkan kehandalan dari Spark,
untuk memperoleh wawasan, dan memperkaya data sains mereka
19
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
dengan memasukkan data dalam satu kumpulan data besar di
Hadoop.
2.4 Key Roles Kunci Sukses Proyek
Analitik
Gambar 2.6 Key Roles Kunci Sukses Proyek Analitik
Terdapat beberapa komponen Key roles:
1. Bussines User
Business User: Seseorang yang memahami wilayah domain
(kondisi existing) dan dapat mengambil manfaat besar dari hasil
proyek analitik, dengan cara konsultasi dan menyarankan tim proyek
pada scope proyek, hasil, dan operasional output (terkait dengan
cara mengukur suatu variabel). Biasanya yang memenuhi peran ini
adalah analis bisnis, manajer lini, atau ahli dalam hal pokok yang
mendalam.
2. Project Sponsor
Project Sponsor: Bertanggung jawab terkait asal proyek.
Memberi dorongan, persyaratan proyek dan mendefinisikan
masalah core bisnis. Umumnya menyediakan dana dan konsep
pengukur tingkat nilai output akhir dari tim kerja. Menetapkan
prioritas proyek dan menjelaskan output yang diinginkan.
3. Project Manager
Project Manager: Memastikan bahwa pencapaian utama
projek dan tujuan terpenuhi tepat waktu dan sesuai dengan kualitas
yang diharapkan.
4. Business Intelligence Analyst
20
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Business Intelligence Analyst: Menyediakan keahlian dalam
domain bisnis berdasarkan pemahaman yang mendalam mengenai
data, indikator kinerja utama (KPI), metrik kunci, dan intelijen bisnis
dari perspektif pelaporan. Analis Business Intelligence umumnya
membuat dashboard (panel kontrol) dan laporan dan memiliki
pengetahuan tentang sumber data dan mekanismenya.
5. Database Administrator (DBA)
Database Administrator (DBA): Set up dan mengkonfigurasi
database untuk mendukung kebutuhan analitik. Tanggung jawab ini
mungkin termasuk menyediakan akses ke database keys atau tabel
dan memastikan tingkat keamanan yang sesuai berada di tempat
yang berkaitan dengan penyimpanan data.
6. Data Engineer
Data Engineer: Memilki keterampilan teknis yang mendalam
untuk membantu penyetelan query SQL untuk pengelolaan data dan
ekstraksi data, dan mendukung untuk konsumsi data ke dalam
sandbox analitik. Data Engineer melakukan ekstraksi data aktual dan
melakukan manipulasi data yang cukup besar untuk memfasilitasi
kebutuhan proyek analitik. Insinyur data (Data Engineer) bekerja
sama dengan ilmuwan data (Data Scientist) untuk membantu
membentuk data yang sesuai dengan cara yang tepat untuk analisis
7. Data Scientist
Data Scientist (Ilmuan Data): Menyediakan keahlian untuk
teknik analitis, pemodelan data, dan menerapkan teknik analitis yang
valid untuk masalah yang diberikan. Memastikan melalui
keseluruhan analitik tujuannya dapat terpenuhi. Merancang dan
mengeksekusi metode analitis dan melakukan pendekatan lainnya
dengan data yang tersedia untuk proyek tersebut.
21
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
2.5 Lifecycle Analitik Data
Gambar 2.7 Gambaran Umum dari Lifecycle Analitik Data
Dari gambaran umum lifecycle analitik yang ditunjukkan pada
Gambar 2.3 dapat dilihat terdapat beberapa fase diantaranya sebagai berikut:
1. Fase 1 Discovery
Pada tahap ini, tim lmuwan data (Data Scientist)
harus belajar, mencari dan menyelidiki fakta-fakta,
masalah (identifikasi problem base), mengembangkan
konteks dan pemahaman, dan belajar tentang sumber
data yang dibutuhkan dan yang telah tersedia untuk
kesuksesan proyek analitik. Selain itu, tim merumuskan
hipotesis awal yang nantinya dapat diuji dengan data.
Tim belajar domain bisnis, termasuk kriteria dari
data history yang relevan, seperti, apakah organisasi atau
unit bisnis telah mencoba proyek serupa di masa lalu (apa
saja yang sudah mereka pelajari dari data). Tim menilai
sumber daya yang tersedia untuk mendukung proyek
tersebut dari segi SDM, teknologi, waktu, dan data.
22
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Kegiatan penting dalam fase ini meliputi
membingkai masalah bisnis sebagai tantangan analitik
yang dapat dibahas dalam fase berikutnya dan
merumuskan hipotesis awal (IHs) untuk menguji dan mulai
mempelajari data.
2. Fase 2 Data Preparation
Tahap ini membutuhkan adanya sandbox analitik, di
mana tim dapat bekerja dengan data dan melakukan
analitik selama proyek tersebut. tim perlu melaksanakan
proses ekstrak, load dan transformasi (ELT) atau ekstrak,
transform dan load (ETL) untuk menyiapkan data ke
sandbox.
ETLT adalah proses integrasi data untuk mentransfer
data mentah dari server sumber ke sebuah gudang data
pada server target dan kemudian menyiapkan informasi
untuk keperluan hasil akhir.
Data Sandbox, dalam konteks Big Data, adalah
platform terukur dan berkembang yang digunakan untuk
mengeksplorasi informasi besar suatu perusahaan. Hal ini
memungkinkan perusahaan untuk mewujudkan nilai
investasi yang sebenarnya dalam Big Data.
Sebuah sandbox data, utamanya dieksplorasi oleh
tim Data Scientist yang menggunakan platform sandbox
stand-alone, misal untuk analitik data marts, logical
partitions pada suatu media penyimpanan di perusahaan.
platform Data sandbox menyediakan komputasi yang
diperlukan bagi para ilmuwan Data (Data Scientist) untuk
mengatasi beban kerja analitik yang biasanya kompleks.
3. Fase 3 Model Planning
Dalam tahap ini tim menentukan metode, teknik,
dan alur kerja. Mereka berniat untuk mengikuti tahap
pembentukan model berikutnya. Tim mengeksplorasi data
untuk belajar tentang hubungan antara variabel dan
kemudian memilih variabel kunci dan model yang paling
cocok untuk digunakan.
4. Fase 4 Model Building
tim mengembangkan dataset untuk pengujian
(testing), pelatihan (training), dan tujuan produksi
(menghasilkan data baru dari data yang ada).
23
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Selain itu, dalam fase ini tim membangun dan
mengeksekusi model yang didasarkan pada kerja yang
dilakukan di dalam fase Model Planning.
Tim juga mempertimbangkan apakah ini alat yang ada
akan cukup untuk menjalankan model, atau jika itu akan
membutuhkan lingkungan yang lebih robust untuk
mengeksekusi model dan alur kerja (misalnya, hardware
yang cepat, teknik dekomposisi data dan pemrosesan
paralel, jika dapat diterapkan).
5. Fase 5 Communicate Result
tim bekerja sama dengan pemangku kepentingan
(stakeholders) utama, menentukan apakah hasil proyek
tersebut sukses atau mengalami kegagalan berdasarkan
kriteria yang dikembangkan di Fase 1.
Tim harus mengidentifikasi temuan kunci, mengukur
nilai bisnis, dan mengembangkan narasi untuk meringkas
dan menyampaikan temuan kepada para pemangku
kepentingan.
6. Fase Operationalize
tim memberikan laporan akhir, pengarahan, kode,
dan dokumen teknis. Selain itu, tim dapat menjalankan
pilot project untuk menerapkan model dalam lingkungan
produksi.
Pilot Project adalah sebuah studi percontohan,
proyek percontohan atau studi pendahuluan skala kecil
yang dilakukan untuk mengevaluasi kelayakan, waktu,
biaya, efek samping, dan efek ukuran dalam upaya untuk
memprediksi ukuran sampel yang tepat dan memperbaiki
design penelitian sebelum kepada proyek penelitian skala
penuh.
2.6 Tugas Kelompok
1. Jelaskan apa yang dimaksud dengan Data Sandbox pada
konteks Big Data!
2. Jelaskan perbedaan antara Data Science dengan Business Intelligence!
24
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
3. Jelaskan perbedaan antara Data Science dengan Data
Engineer!
4. Da i e e apa a a
Key Roles Kunci Sukses Proyek Analitik , a akah peke jaa pali g a ak di utuhka pada saat
ini, terutama diperusahaan besar?
5. Da i Ga a a U u da i Lifecycle Analitik Data , Buatlah
studi kasus dengan mengambil salah satu perusahaan besar
yang ada di Indonesia atau perusahaan Asing di dunia untuk
melakukan fase ke-1, yaitu Discovery. Berikan penjelasan
detail terkait hasil penyelidikan anda dari:
a. Fakta-fakta (Analisis kondisi existing yang ada disana)
b. Permasalahan yang ditemukan (identifikasi problem
base), yang membutuhkan teknik optimasi,
pemodelan, prediksi (1. output berupa value, 2.
supervised, atau 3. unsupervised), dan peramalan.
c. Dari hasil penjabaran permasalahan pada point (b),
manakah permasalahan yang menurut anda paling
komplek? Jelaskan!
25
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
BAB 3 Teknologi dan Tools
Big Data (Bagian 1)
3.1 Konsep Pengolahan Big Data
Bayangkan ada sekumpulan data yang sangat besar (Big Data),
bagaimana kita dapat melakukan Parallel atau Distributed
Processing.
File Sistem Terdistribusi (Distributed File System, atau disingkat
dengan DFS) adalah file sistem yang mendukung sharing files dan
resources dalam bentuk penyimpanan persistent (tetap) untuk
tujuan tertentu di sebuah network.
Gambar 3.1 Distributed System (a) dan Paralel System (b)
26
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
3.2 Introduction to Hadoop
Hadoop: Suatu software framework (kerangka kerja perangkat
lunak) open source berbasis Java di bawah lisensi Apache untuk
aplikasi komputasi data besar secara intensif.
Gambar 3.2 Ilustrasi Hadoop HDFS
Hadoop File System dikembangkan menggunakan desain sistem
file yang terdistribusi. Tidak seperti sistem terdistribusi, HDFS sangat
faulttolerant dan dirancang menggunakan hardware low-cost. Atau
dalam arti lain, Hadoop adalah Software platform (platform
perangkat lunak) sebagai analytic engine yang memungkinkan
seseorang dengan mudah untuk melakukan pembuatan penulisan
perintah (write) dan menjalankan (run) aplikasi yang memproses
data dalam jumlah besar, dan di dalamnya terdiri dari:
-
HDFS – Hadoop Distributed File System
-
MapReduce – offline computing engine
Dalam komputasi, platform menggambarkan semacam
(hardware architecture) arsitektur perangkat keras atau (software
framework) kerangka kerja perangkat lunak (termasuk kerangka
kerja aplikasi), yang memungkinkan perangkat lunak dapat berjalan.
Ciri khas dari platform meliputi arsitekturnya komputer,
sistem operasi, bahasa pemrograman dan runtime libraries atau GUI
yang terkait.
Apa yang ada pada Hadoop dari sudut pandang:
-
Platform: Komputer sebagai node, .. ?
27
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Framework: HDFS Explorer, .. ?
3.2.1 Hadoop Distributed File System (HDFS)
Hadoop terdiri dari HDFS (Hadoop Distributed file System)
dan Map Reduce. HDFS sebagai direktori di komputer dimana data
hadoop disimpan. Untuk pertama kalinya, direktori ini akan di fo at agar dapat bekerja sesuai spesifikasi dari Hadoop. HDFS sebagai
file system, tidak sejajar dengan jenis file system dari OS seperti NTFS,
FAT32. HDFS ini menumpang diatas file system milik OS baik Linux,
Mac atau Windows.
Data di Hadoop disimpan dalam cluster.
Cluster biasanya terdiri dari banyak node atau komputer/server.
Setiap node di dalam cluster ini harus terinstall Hadoop untuk bisa
jalan.
Hadoop versi 1.x ada beberapa jenis node di dalam cluster:
-
Name Node: Ini adalah node utama yang mengatur penempatan
data di cluster, menerima job dan program untuk melakukan
pengolahan dan analisis data misal melalui Map Reduce. Name
Node menyimpan metadata tempat data di cluster dan juga
replikasi data tersebut.
-
Data Node: Ini adalah node tempat data ditempatkan. Satu
block di HDFS/data node adalah 64 MB. Jadi sebaiknya data
yang disimpan di HDFS ukurannya minimal 64 MB untuk
memaksimalkan kapasitas penyimpanan di HDFS.
-
Secondary Name Node: Bertugas untuk menyimpan informasi
penyimpanan data dan pengolahan data yang ada di name
node. Fungsinya jika name node mati dan diganti dengan name
node baru maka name node baru bisa langsung bekerja dengan
mengambil data dari secondary name node.
-
Checkpoint Node dan Backup Node: Checkpoint node
melakukan pengecekan setiap interval waktu tertentu dan
mengambil data dari name node. Dengan check point node
maka semua operasi perubahan pada data terekam. Namun,
secondary name node hanya perlu menyimpan check point
terakhir. Backup Node juga berfungsi sama, hanya bedanya data
perubahan yang disimpan dilakukan di memory bukan di file
seperti checkpoint dan secondary node.
28
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Kelemahan HDFS di hadoop versi 1.x adalah jika name node mati.
Maka seluruh cluster tidak bisa digunakan sampai name node baru
dipasang di cluster.
Hadoop versi 2.x ada beberapa jenis node di dalam cluster:
-
Lebih dari satu name nodes. Hal ini berfungsi sebagai
implementasi dari High Availability. Hanya ada satu name node
yang berjalan di cluster (aktif) sedangkan yang lain dalam
kondisi pasif. Jika name node yang aktif mati/rusak, maka name
node yang pasif langsung menjadi aktif dan mengambil alih
tugas sebagai name node.
-
Secondary name node, checkpoint node dan backup node tidak
lagi diperlukan. Meskipun ketiga jenis node tersebut menjadi
optional, tetapi kebanyakan tidak lagi ada di cluster yang
memakai hadoop versi 2.x. Hal ini karena selain fungsi yang
redundan, juga lebih baik mengalokasikan node untuk membuat
tambahan name node sehingga tingkat High Availability lebih
tinggi.
-
Data node tidak ada perubahan yang signifikan di versi hadoop
2.x dari versi sebelumnya.
Meskipun konteks yang kita bicarakan disini adalah dalam cluster,
Hadoop juga bisa dijalankan dalam single node. Dalam single node
maka semua peran diatas berada dalam satu komputer. Biasanya
single node ini digunakan hanya untuk training atau development.
Bukan untuk produksi skala enterprise.
29
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 3.3 Arsitektur HDFS
Gambar 3.4 Hadoop 2.x Core Components
3.2.2 MapReduce (MR)
Paradigma (pandangan mendasar) terkait MR:
- Model pemrograman yang dikembangkan Google, Sortir /
merge berbasis komputasi terdistribusi.
30
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Awalnya, MR dimaksudkan untuk aplikasi pencarian /
pengindeksan internal Google, tapi sekarang digunakan
secara luas (misalnya, Yahoo, Amazon.com, IBM, dll).
- MR termasuk gaya pemrograman fungsional, yang secara
alami dapat diparalelkan di sekelompok besar workstation
atau PC.
- Sistem yang mendasari untuk melakukan partisi (clustering)
dari input data, membuat jadwal eksekusi program di
beberapa mesin untuk pemrosesan data, handling
kegagalan mesin, dan memanage komunikasi yang
diperlukan antar-mesin. (Ini adalah kunci untuk sukses
Hadoop).
Gambar 3.5 High Level Arsitektur Hadoop dan The Job Tracker
31
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Name Node untuk mengelola
metadata dari kluster, dan Data
Node untuk menyimpan data/file.
File dan direktori diwakili pada
Name Node yang menyimpan
atribut
seperti
permission,
modifikasi dan waktu akses, atau
kuota namespace dan diskspace.
Slaves
Gambar 3.6 The Job Tracker
Dua Komponen yang terdapat MapReduce, yaitu Job Tracker
dan Task Traker. Job Tracker adalah komponen pada komputer
Master, dan Task Tracker adalah komponen pada komputer Slaves.
Be ikut u uta a a ke ja a M‘ pada ko pute Maste
aupu
pada ko pute “la es :
1. Client submit “the job” ke “Job Tracker”.
2. “Job Tracker” menanyakan “Name Node”, yang menjadi
lokasi dari data.
3. Setelah mendapatkan replay lokasi data dari "Name Node",
kemudian "Job Tracker" menanyakan masing-masing tugas
"Task Tracker", kemudian meminta untuk menjalankan "the
task" terhadap data yang ada pada masing-masing mereka.
4. Semua hasil pengolahan data oleh "Task Tracker" disimpan
pada beberapa "Data Node" dan "Name Node" diberikan
informasi tentang hal yang sama, yaitu sebagai pengingat
lokasi di node mana data hasil pengolahan tersebut disimpan.
5. "Task Tracker" akan menginformasikan bahwa "the job" telah
diselesaiakan yaitu dengan memberikan informasi dalam
bentuk progress ke "Job Tracker".
6. “Job Tracker” menginformasikan bahwa “the job” telah
selesai dikerjakan kepada Client.
7. Client akan memanggil “Name Node” dan mengambil hasil
pengolahan datanya dari “Name Node” tersebut.
32
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 3.7 Diagram Cara Kerja Map Reduce
Melalui diagram di atas, kita bisa tahu tentang cara kerja mapreduce.
Arsitektur Map/Reduce (M/R) Versus Yet Another Resource
Negotiator (YARN)
Gambar 3.8 Ilustrasi MR vs YARN
Single Node Cluster (pseudo-distributed) Pada Linux &
Windows ( download file tutorial lengkapnya dari link:
https://goo.gl/7bJhdi ):
- Buka te
i al da ketikka
sudo nano /et /hosts
- sudo apt-get update
33
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- sudo apt-get install default-jdk
version)
(cek dengan java -
- sudo addgroup hadoop
- sudo adduser –ingroup hadoop hduser
- sudo adduser hduser sudo
- sudo apt-get install ssh
- su hduser
- ssh-keygen –t rsa –P
- ...
- etc
3.3 Konfigurasi Hadoop Single Node
Cluster di Linux
Persiapan Pada Virtual Box
Gambar 3.9 Persiapan Pada Virtual Box
34
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Link Web untuk monitoring Hadoop (beberapa mungkin tidak aktif):
-
The NameNode / Filesystem / log browser can be found at
http://localhost:50070
-
The
Secondary
NameNode
http://localhost:50090
can
be
found
at
3.3.1 Studi Kasus & Solusi Hadoop
Studi Kasus
Gambar 3.10 Studi Kasus Wordcount
Inti dari Hadoop adalah HDFS dan Map Reduce. HDFS adalah
tempat menyimpan semua data, Map Reduce adalah proses untuk
mengolah data dan mendapatkan informasi yang berguna dari HDFS
tersebut.
Kelemahan dari Hadoop yaitu:
- Map Reduce hanya bisa berjalan secara serial untuk mengolah
data. Artinya tidak bisa dilakukan pemrosesan data secara
paralel. Hal ini sangat terasa dengan Hadoop versi 1.x. Untuk
Hadoop versi 2.x sudah ada teknologi baru yang ditambahkan
yaitu YARN.
- Map Reduce hanya bisa berjalan dalam batch atau secara
periodik dan tidak bisa terus menerus secara realtime. Hal ini
membuat Map Reduce tidak bisa mengolah data dalam bentuk
streaming tanpa henti seperti misalnya tweet dari twitter.
35
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Namun kelemahan-kelemahan tersebut dapat diatasi dengan
teknologi lain (yaitu Apache Storm dan Apache Spark) yang berada
diatas Hadoop, sehingga penggabungan ini menjadi satu kesatuan
yang masih merupakan solusi Big Data paling populer.
Kelemahan lain dari Hadoop yaitu:
-
Latency data processing.
Latency adalah keterlambatan data untuk diambil dari HDFS,
dengan menggunakan Map Reduce, ke level aplikasi
misalnya web app. Bagi yang sudah pernah menjalankan
Map Reduce di Hadoop akan merasakan adanya kelambatan
dalam mengolah data.
Kelambatan ini selain karena sifat Map Reduce yang
berdasarkan batch, juga karena ukuran data yang relatif
sangat besar.
Untuk mengatasi masalah ini, software lain (Non Relational
DB (NoSQL) seperti Mongo DB, Apache HBase, Apache
Cassandra, dll) bisa ditambahkan.
-
Streaming data processing.
Pada streaming data secara realtime. Kelemahan ini banyak
dikeluhkan oleh pengguna Hadoop karena data yang masuk
secara terus-menerus tidak bisa dianalisis langsung secara
realtime karena map reduce berjalan secara batch atau
periodik. Contoh kasus ini misalnya dalah menghitung
hashtag paling populer / trending dari seluruh tweets yang
dibuat di twtitter secara realtime.
Ada tiga software yang saya temukan bisa menutupi
kelemahan ini. Ketiga software itu adalah Spring-XD,
Apache Storm dan Apache Spark Streaming.
Solusi Hadoop
1. Localhost:50070 tidak ada koneksi:
Lakukan hal berikut
36
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
hduser@Master:~$ sudo rm -rf /usr/local/hadoop_tmp
hduser@Master:~$ sudo chown hduser:hadoop -R
/usr/local/hadoop_tmp
chown: cannot access ‘/usr/local/hadoop_tmp’: No such
file or directory
hduser@Master:~$ sudo mkdir -p /usr/local/hadoop_tmp
hduser@Master:~$ sudo mkdir -p
/usr/local/hadoop_tmp/hdfs/datanode
hduser@Master:~$ sudo mkdir -p
/usr/local/hadoop_tmp/hdfs/namenode
hduser@Master:~$ sudo chown hduser:hadoop -R
/usr/local/hadoop_tmp
hduser@Master:~$ sudo chown hduser:hadoop -R
/usr/local/hadoop/
hduser@Master:~$ hadoop namenode -format
Source Code 3.1 Solusi Localhost:50070 tidak ada koneksi
2. Membuat Directories di HDFS harus satu demi satu
hduser@Master:/usr/local/hadoop$
/user
hduser@Master:/usr/local/hadoop$
/user/hduser
hduser@Master:/usr/local/hadoop$
/user/hduser/wordcount
hduser@Master:/usr/local/hadoop$
/user/hduser
Found 1 items
drwxr-xr-x
- hduser supergroup
20 22:03 /user/hduser/wordcount
hduser@Master:/usr/local/hadoop$
/user/hduser/wordcount/input
bin/hdfs dfs -mkdir
bin/hdfs dfs -mkdir
bin/hdfs dfs -mkdir
bin/hdfs dfs -ls
0 2016-11bin/hdfs dfs -mkdir
Source Code 3.2 Membuat Directories di HDFS
Siapkan file *.java (msial WordCount.java Part 1 of 2) untuk
dicompile ke *.jar:
import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
Source Code 3.3 File *.java Part 1
37
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import
org.apache.hadoop.mapreduce.lib.input.FileInpu
tFormat;
import
org.apache.hadoop.mapreduce.lib.output.FileOut
putFormat;
public class WordCount {
public static class TokenizerMapper
extends Mapper<Object, Text, Text,
IntWritable> {
private final static IntWritable one =
new IntWritable(1);
private Text word = new Text();
public void map(Object key, Text
value, Context context) throws IOException,
InterruptedException {
StringTokenizer itr = new
StringTokenizer(value.toString());
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());
context.write(word, one);
}
}
}
Source Code 3.4 File *.java Part 1 Cont
Siapkan file *.java (msial WordCount.java Part 2 of 2) untuk
dicompile ke *.jar:
38
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
public static class IntSumReducer
extends Reducer<Text, IntWritable,
Text, IntWritable> {
private IntWritable result = new
IntWritable();
public void reduce(Text key,
Iterable<IntWritable> values,
Context context
) throws IOException,
InterruptedException {
int sum = 0;
for (IntWritable val : values) {
sum += val.get();
}
result.set(sum);
context.write(key, result);
}
} public static void main(String[] args)
throws Exception {
Configuration conf = new
Configuration();
Job job = Job.getInstance(conf, "word
count");
job.setJarByClass(WordCount.class);
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumReducer.class);
job.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);
Source Code 3.5 File *.Java Part 2
39
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new
Path(args[0]));
FileOutputFormat.setOutputPath(job, new
Path(args[1]));
System.exit(job.waitForCompletion(true) ?
0 : 1);
}
}
Source Code 3.6 File *.Java Cont
3. Error: Could not find or load main class com.sun.tools.javac.Main:
hduser@Master:/usr/local/hadoop$ sudo gedit
~/.bashrc
Lalu tambahkan di line paling akhir:
export HADOOP_CLASSPATH=/usr/lib/jvm/java-7openjdk-amd64/lib/tools.jar
Lalu ketikkan
“hduser@Master:/usr/local/hadoop$source
~/.bashrc” atau dengan me-restart PC anda, lalu
coba lalu coba lagi:
hduser@Master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main WordCount.java
hduser@Master:/usr/local/hadoop$
Source Code 3.7 Solusi Error: Could not find or load main class
com.sun.tools.javac.Main
40
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 3.11 Hasil: hduser@Master:/usr/local/hadoop$ jar cf
wc.jar WordCount*.class
Gambar 3.12 Hasil: hduser@Master:/usr/local/hadoop$ jar
cf wc.jar WordCount*.class
41
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 3.13 Hasil: hduser@Master:/usr/local/hadoop$ jar
cf wc.jar WordCount*.class
4. Error: Could not find or load main class fs:
Jika menggunakan hdfs, maka gunakan
dfs
Jika menggunakan hadoop, maka gunakan fs
Contoh yang salah:
hduser@Master:/usr/local/hadoop$ bin/hdfs fs copyFromLocal /home/nidos/Desktop/data/a.txt
/user/hduser/wordcount/input
Contoh yang benar:
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs
-copyFromLocal /home/nidos/Desktop/data/a.txt
/user/hduser/wordcount/input
Jika error:
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs
-copyFromLocal /home/nidos/Desktop/data/a.txt
/user/hduser/wordcount/input
16/11/20 22:56:34 WARN util.NativeCodeLoader:
Unable to load native-hadoop library for your
platform... using builtin-java classes where
applicable
Source Code 3.8 Solusi Error: Could not find or load main class
fs:
42
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
copyFromLocal: Call From Master/127.0.1.1 to
localhost:9000 failed on connection
exception: java.net.ConnectException:
Connection refused; For more details see:
http://wiki.apache.org/hadoop/ConnectionRefu
sed
Maka, lakukan
hduser@Master:/usr/local/hadoop$ startall.sh
Source Code 3.9 Solusi Error: Could not find or load main class fs:
Cont
Hasil: hduser@Master:/usr/local/hadoop$ bin/hdfs dfs –
copyFromLocal /home/nidos/Desktop/data/a.txt/user/hduser/word
count/input
Source Code 3.10 Hasil: hduser@Master:/usr/local/hadoop$
bin/hdfs dfs -copyFromLocal /home/nidos/Desktop/data/a.txt
/user/hduser/wordcount/input
Solusi jika sering muncul warning: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platfo … usi g builtin-java classes where applicable
43
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
hduser@Master:/usr/local/hadoop$ sudo gedit
~/.bashrc
Lalu replace di line:
export HADOOP_OPTS="Djava.library.path=$HADOOP_INSTALL/lib"
Dengan:
export HADOOP_OPTS=“Djava.library.path=$HADOOP_INSTALL/lib/native”
Lalu ketikkan
“hduser@Master:/usr/local/hadoop$source
~/.bashrc” atau dengan me-restart PC anda, lalu
coba cek apakah warning tersebut muncul lagi atau
tidak
Source Code 3.11 Solusi jika sering muncul warning: WARN
util.NativeCodeLoader: Unable to load native-hadoop library for
ou platfo … usi g uilti -java classes where applicable
Cara untuk melihat isi dari dokumen yang akan diproses:
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs cat /user/hduser/wordcount/input/a.txt
18407 Jps
17517 SecondaryNameNode
17351 DataNode
17228 NameNode
17728 ResourceManager
17855 NodeManager
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs cat /user/hduser/wordcount/input/b.txt
1 8 4 0 7 J p s
1 7 5 1 7 Secondary Name Node
1 7 3 5 1 Data Node
17228 Name Node
17728 Resource Manager
17855 Node Manager
hduser@Master:/usr/local/hadoop$
Source Code 3.12 Source Code Untuk Melihat Isi dari Dokumen
yang Akan Diproses
Membuat folder output:
44
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs mkdir /user/hduser/wordcount/output
Dan lihat folder input dan output:
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs ls /user/hduser/wordcount
Found 2 items
drwxr-xr-x
- hduser supergroup
0
2016-11-20 23:08 /user/hduser/wordcount/input
drwxr-xr-x
- hduser supergroup
0
2016-11-20 23:27 /user/hduser/wordcount/output
hduser@Master:/usr/local/hadoop$
Source Code 3.13 Membuat Folder Output
Menjalankan JAR untuk wordcount (file a.txt saja):
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs ls /user/hduser/wordcount
Found 2 items
drwxr-xr-x
- hduser supergroup
0
2016-11-20 23:08 /user/hduser/wordcount/input
drwxr-xr-x
- hduser supergroup
0
2016-11-20 23:27 /user/hduser/wordcount/output
Jika folder output sudah ada, maka sebaiknya
membuat output lainnya, misal “output2”
hduser@Master:/usr/local/hadoop$ bin/hadoop jar
wc.jar WordCount
/user/hduser/wordcount/input/a.txt
/user/hduser/wordcount/output2
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs ls /user/hduser/wordcount/output2
Found 2 items
-rw-r--r-1 hduser supergroup
0
2016-11-21 07:24
/user/hduser/wordcount/output2/_SUCCESS
-rw-r--r-1 hduser supergroup
128
2016-11-21 07:24
/user/hduser/wordcount/output2/part-r-00000
Source Code 3.14 Menjalankan JAR untuk wordcount (file a.txt
saja)
45
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -cat
/user/hduser/wordcount/output2/part*
17228 1
17351 1
17517 1
17728 1
17855 1
18407 1
DataNode
1
Jps
1
NameNode
1
NodeManager 1
ResourceManager
1
SecondaryNameNode 1
Source Code 3.15 Menjalankan JAR untuk wordcount (file a.txt
saja) Cont
Menjalankan JAR untuk wordcount (file a.txt saja):
Gambar 3.14 Hasil Menjalankan JAR untuk wordcount (file a.txt
saja):
Menjalankan JAR untuk wordcount (file b.txt saja):
46
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
hduser@Master:/usr/local/hadoop$ bin/hadoop
jar wc.jar WordCount
/user/hduser/wordcount/input/b.txt output
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs ls /user/hduser/wordcount/
Found 3 items
Source Code 3.16 Menjalankan JAR untuk wordcount (file b.txt
saja):
47
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
drwxr-xr-x
- hduser supergroup
0
2016-11-20 23:08 /user/hduser/wordcount/input
drwxr-xr-x
- hduser supergroup
0
2016-11-20 23:27 /user/hduser/wordcount/output
drwxr-xr-x
- hduser supergroup
0
2016-11-21 07:24 /user/hduser/wordcount/output2
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs ls
Found 2 items
drwxr-xr-x
- hduser supergroup
0
2016-11-21 07:32 output
drwxr-xr-x
- hduser supergroup
0
2016-11-21 07:24 wordcount
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs ls /output
ls: `/output': No such file or directory
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs ls output
Found 2 items
-rw-r--r-1 hduser supergroup
0
2016-11-21 07:32 output/_SUCCESS
-rw-r--r-1 hduser supergroup
118
2016-11-21 07:32 output/part-r-00000
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs cat output/part*
0
1
1
5
17228 1
17728 1
17855 1
3
1
4
1
5
2
7
4
8
1
Data 1
J
1
Manager
2
Name 2
Node 4
Resource
1
Secondary
1
p
1
s
1
Source Code 3.17 Menjalankan JAR untuk wordcount (file b.txt
saja): Cont
48
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Hasil menjalankan JAR untuk wordcount (file b.txt saja):
Gambar 3.15 Hasil menjalankan JAR untuk wordcount (file b.txt
saja):
Hasil dari
hduser@Master:/usr/local/hadoop$ bin/hadoop jar
WordCount /user/hduser/wordcount/input/b.txt output
“e aik a
output di uat
e jadi spesifik
/use /hduse / o d ou t/output
wc.jar
isal,
Menjalankan JAR untuk wordcount untuk semua file dalam satu
folder (file a.txt dan b.txts):
49
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
hduser@Master:/usr/local/hadoop$ bin/hadoop jar
wc.jar WordCount /user/hduser/wordcount/input/
/user/hduser/wordcount/output4
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs ls /user/hduser/wordcount/output4
Found 2 items
-rw-r--r-1 hduser supergroup
0
2016-11-21 07:46
/user/hduser/wordcount/output4/_SUCCESS
-rw-r--r-1 hduser supergroup
222
2016-11-21 07:46
/user/hduser/wordcount/output4/part-r-00000
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs cat /user/hduser/wordcount/output4/part*
Gambar 3.16 Menjalankan JAR untuk wordcount untuk semua file
dalam satu folder (file a.txt dan b.txts)
50
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
0
1
1
5
17228 2
17351 1
17517 1
17728 2
17855 2
18407 1
3
1
4
1
5
2
7
4
8
1
Data 1
DataNode
1
J
1
Jps
1
Manager
2
Name 2
NameNode
1
Node 4
s
1
NodeManager 1
Resource
1
ResourceManager
1
Secondary
1
SecondaryNameNode 1
p
1
Gambar 3.17 Menjalankan JAR untuk wordcount untuk semua file
dalam satu folder (file a.txt dan b.txts) Cont.
Cara menghapus folder HDFS:
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs ls /user/hduser/wordcount/
Found 5 items
drwxr-xr-x
- hduser supergroup
0
2016-11-20 23:08 /user/hduser/wordcount/input
drwxr-xr-x
- hduser supergroup
0
2016-11-20 23:27 /user/hduser/wordcount/output
drwxr-xr-x
- hduser supergroup
0
2016-11-21 07:24 /user/hduser/wordcount/output2
drwxr-xr-x
- hduser supergroup
0
Gambar 3.18 Cara menghapus folder HDFS
51
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
2016-11-21 07:46 /user/hduser/wordcount/output3
drwxr-xr-x
- hduser supergroup
0
2016-11-21 07:46 /user/hduser/wordcount/output4
hduser@Master:/usr/local/hadoop$ hadoop fs -rm r -f /user/hduser/wordcount/output
16/11/21 23:12:18 INFO fs.TrashPolicyDefault:
Namenode trash configuration: Deletion interval
= 0 minutes, Emptier interval = 0 minutes.
Deleted /user/hduser/wordcount/output
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs ls /user/hduser/wordcount/
Found 4 items
drwxr-xr-x
- hduser supergroup
0
2016-11-20 23:08 /user/hduser/wordcount/input
drwxr-xr-x
- hduser supergroup
0
2016-11-21 07:24 /user/hduser/wordcount/output2
drwxr-xr-x
- hduser supergroup
0
2016-11-21 07:46 /user/hduser/wordcount/output3
drwxr-xr-x
- hduser supergroup
0
2016-11-21 07:46 /user/hduser/wordcount/output4
hduser@Master:/usr/local/hadoop$
Gambar 3.19 Cara menghapus folder HDFS Cont
52
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
3.3.2 Konfigurasi dengan Eclipse IDE
Gambar 3.20 Link download Eclipse
Link:https://www.eclipse.org/downloads/download.php?file=/oomph/epp/oxygen/R/eclipse-inst-linux64.tar.gz
- Lalu Klik Kanan, pilih Extract Here
Gambar 3.21 Extract Here - Eclipse
53
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Copy file, dan cek de ga
ls
hduser@Master:~$ sudo cp -R
/home/nidos/Downloads/eclipse-installer /home/hduser
Gambar 3.22 Copy file, dan cek dengan “ls”
- Install eclipse
hduser@Master:~$ cd eclipse-installer/
hduser@Master:~/eclipse-installer$ ./eclipse-inst
Tekan Enter
Gambar 3.23 Install eclipse
- Klik E lipse IDE fo Ja a EE De elope s
Gambar 3.24 Pilih Eclipse IDE for Java EE Developers
54
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Pilih I stallatio Folde , isal di /ho e/hduse /e lipse/jee-oxyge , lalu klik I stall , tu ggu e e apa saat
Gambar 3.25 Klik Install, tunggu beberapa waktu
- Instalasi selesai, klik Launch
Gambar 3.26 Klik Launch
55
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Pilih folde
o kspa e, isal di /ho e/hduse /e lipse-workspa e , lalu klik Lau h , tu ggu e e apa saat
Gambar 3.27 Klik “Launch”, tunggu beberapa saat
- Klik esto e
Gambar 3.28 Klik “restore”
56
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Cek lokasi instalasi hadoop
hduser@Master:~$ sudo gedit ~/.bashrc
hduser@Master:~$ sudo source ~/.bashrc
Misal ditemukan di “usr/local/hadoop”, lalu masuk
dengan
hduser@Master:~$ cd /usr/local/hadoop
Pastikan pada bashrc sudah diset seperti berikut:
Gambar 3.29 Masuk ke folder instalasi hadoop
57
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Jala ka E lipse, uat p oje t a u,
doopIDE
isal de ga
a a Ha-
hduser@Master:~$ cd /home/hduser/eclipse
hduser@Master:~/eclipse$ ./jee-oxygen/eclipse/eclipse
Klik “New”, pilih “Java Project”, klik “Next”
Gambar 3.30 Jalankan Eclipse
- Isika
a a HadoopIDE , klik Fi ish, tu ggu e e apa saat
Gambar 3.31 Klik Finish
58
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Ce ta g ‘e e
e .. , klik Ope Pe s..
Gambar 3.32 Klik Open Pers..
- Ta pila a al p oje t HadoopIDE
Gambar 3.33 Project “HadoopIDE”
- Klik ka a
s
, ta
ahka
e
Pa kage
Gambar 3.34 Klik kanan “src”, tambahkan new “Package”
59
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Misal e ika pada a e o g.hadoop.t ai i gs , klik Fi ish
Gambar 3.35 Berikan name “org.hadoop.trainings”, klik “Finish”
- Klik ka a pada o g.hadoop.t ai i gs , klik e
Class
Gambar 3.36 Klik kanan pada “org.hadoop.trainings”, klik new
“Class”
- Be ika
a a WordCount , klik Fi ish
Gambar 3.37 Berikan nama “WordCount”, klik “Finish”
60
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Klik ka a P oje t HadoopIDE , klik Co figu e Build Path..
Gambar 3.38 klik “Configure Build Path..”
- Klik Li a ies , lalu klik Add E te al JA‘s..
Gambar 3.39 klik “Configure Build Path..”
61
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Masuk ke folde i stalasi hadoop,
isal di us /lo al/hadoop
Gambar 3.40 Masuk ke folder instalasi hadoop
- Add *.jar hadoop part 1
Gambar 3.41 Add *.jar hadoop part 1
62
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Add *.jar hadoop part 2
Gambar 3.42 Add *.jar hadoop part 2
- Add *.jar hadoop part 3
Gambar 3.43 Add *.jar hadoop part 3
63
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Add *.jar hadoop part 4
Gambar 3.44 Add *.jar hadoop part 4
- Add *.jar hadoop part 5
Gambar 3.45 Add *.jar hadoop part 5
64
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Add *.jar hadoop part 6
Gambar 3.46 Add *.jar hadoop part 6
- Add *.jar hadoop part 7
Gambar 3.47 Add *.jar hadoop part 7
65
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Add *.jar hadoop part 8
Gambar 3.48 Add *.jar hadoop part 8
- Add *.jar hadoop part 9, klik OK
Gambar 3.49 Add *.jar hadoop part 9
66
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Lalu klik Appl da Close, te lihat ‘efe e ed Li a ies Hadoop
Gambar 3.50 Daftar “Referenced Libraries” Hadoop
- Do load ode Wo dCou t da i https://goo.gl/ Pa ef , paste
ka ke Wo dCou tLoadF o HDF“toHDF“.ja a
Gambar 3.51 Download code WordCount dari
“https://goo.gl/wPa2ef”
67
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Cop ka file lo al da i /ho e/ idos/Desktop/data/a.t t , ke
HDF“ /use /hduse / o d ou t/i put/a .t t
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -copyFromLocal
/home/nidos/Desktop/data/a.txt
/user/hduser/wordcount/input/a2.txt
Gambar 3.52 Sebelum dan setelah dicopykan
68
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
3.3.3 Konfigurasi dengan HUE
Hue adalah antarmuka berbasis Web untuk memudahkan
dalam memonitoring atau memanage (create, delete, edit, etc) data
HDFS pada Apache Hadoop. Dan bisa diinstal di pc/notebook dengan
versi hadoop manapun. Dan membuat a use s untuk lebih fokus
pada big data processing.
Gambar 3.53 About Hue
Cara kerja Hue Server adalah sebagai aplikasi web yang ada di
antara instalasi Cloudera Distributed Hadoop (CDH) dan browser
Anda. Hue akan berkomunikasi dengan berbagai server dan
berinteraksi dengan komponen CDH.
Gambar 3.54 Cara kerja Hue Server
69
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Pastikan anda sudah install Hadoop
nidos@Master:~$ su hduser
Password:
hduser@Master:/home/nidos$ cd
hduser@Master:~$ start-all.sh
hduser@Master:~$ jps
3343 NameNode
3985 NodeManager
3843 ResourceManager
3469 DataNode
3633 SecondaryNameNode
4276 Jps
hduser@Master:~$
Gambar 3.55 JVM Process Status Tool (jps)
- Cek Hadoop Version
hduser@Master:~$ hadoop version
Gambar 3.56 Cek Hadoop Version
70
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Masuk ke Terminal
nidos@Master:~$ sudo apt-get install git
Gambar 3.57 sudo apt-get install git
- Lakukan git clone, tunggu beberapa waktu
nidos@Master:~$ git clone
https://github.com/cloudera/hue.git
Gambar 3.58 Lakukan git clone
71
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Download Hue Selesai
Gambar 3.59 Download Hue Selesai
- Install library development packages dan tools
hduser@Master:/usr/local/hue$ sudo apt-get install
python2.7-dev make libkrb5-dev libxml2-dev libffi-dev
libxslt-dev libsqlite3-dev libssl-dev libldap2-dev
python-pip
sudo apt-get install ant gcc g++ libkrb5-dev libffidev libmysqlclient-dev libssl-dev libsasl2-dev
libsasl2-modules-gssapi-mit libsqlite3-dev libtidy0.99-0 libxml2-dev libxslt-dev make libldap2-dev maven
python-dev python-setuptools libgmp3-dev
Gambar 3.60 Install library development packages dan tools
72
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Install library development packages dan tools, selesai
sudo apt-get install ant gcc g++ libkrb5-dev libffidev libmysqlclient-dev libssl-dev libsasl2-dev
libsasl2-modules-gssapi-mit libsqlite3-dev libtidy0.99-0 libxml2-dev libxslt-dev make libldap2-dev maven
python-dev python-setuptools libgmp3-dev
Gambar 3.61 Install library development packages dan tools, selesai
- Masuk ke hduser
hduser@Master:~$ cp -R /home/nidos/Downloads/hue/
/usr/local/
hduser@Master:~$ chmod 777 -R /usr/local/hue/
hduser@Master:~$ chown hduser:hadoop -R
/usr/local/hue/
hduser@Master:~$
Gambar 3.62 Masuk ke hduser
73
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Masuk ke directory hue
hduser@Master:~$ cd /usr/local/hue/
hduser@Master:/usr/local/hue$ make apps
Hue dan pengembangannya dengan Django. Django adalah web
framework Python yang didesain untuk membuat aplikasi web
yang dinamis, kaya fitur dan aman. Django yang dikembangkan
oleh Django Software Foundation terus mendapatkan perbaikan
sehingga membuat web framework yang satu ini menjadi pilihan
utama bagi banyak pengembang aplikasi web.
- Jika muncul error
Gambar 3.63 Error ketika make apps Hue ke-1
- Coba update beberapa komponen berikut (X):
Gambar 3.64 Update beberapa komponen
74
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Jika muncul error
Gambar 3.65 Error ketika make apps Hue ke-2
- Hapus folder /usr/local/hue
hduser@Master:~$ sudo rm –R /usr/local/hue
- Download lagi file hue yang baru, masukkan ke folder /usr/local/hue
Misal anda sudah mendownload-nya di folder
/home/nidos/Download/hue, maka cukup copykan ke folder
/usr/local/hue
hduser@Master:~$ sudo cp –R /home/nidos/Download/hue
/usr/local/hue
hduser@Master:~$ cd /usr/local/hue
hduser@Master:/usr/local/hue$ ls –l
Pastikan Owner dan Nama Group –nya keduanya adalah
root. Lalu ketikkan
hduser@Master:/usr/local/hue$ sudo make apps
Tunggu beberapa waktu
75
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Lakuka
sudo
ake apps lagi
hduser@Master:/usr/local/hue$ sudo make apps
Gambar 3.66 Install Hue, selesai. :D
- Jalankan Server Hue
hduser@Master:/usr/local/hue$ sudo build/env/bin/hue
runserver
Gambar 3.67 Jalankan Server Hue
76
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Starting development server pada http://127.0.0.1:8000/
Gambar 3.68 Starting pada http://127.0.0.1:8000
- Set Username dan Password,
pass o d=a
isal use a e=hduse
da
Gambar 3.69 Set Username dan Password
77
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Tampilan 1 Hue setelah login
Gambar 3.70 Tampilan Hue ke-1
- Tampilan 2 Hue
Gambar 3.71 Tampilan Hue ke-2
78
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Load HDFS dari Hue, klik
Gambar 3.72 Load HDFS dari Hue
jika Hadoop belum dijalankan, maka akan muncul error
“Cannot access: /. The HDFS REST service is not available. Note:
you are a Hue admin but not a HDFS superuser, "hdfs" or part of
HDFS supergroup, "supergroup".”
- Jalankan Hadoop
hduser@Master:~$ start-all.sh
- Jika asih u ul e o Cannot access: /. Note: ..., "hdfs" or part
of HDF“ supe g oup, "supe g oup". Ketikka
hduser@Master:~$ sudo gedit
/usr/local/hue/desktop/conf/pseudo-distributed.ini
Pada baris “fs_defaultfs=hdfs://localhost:8020” ubah
menjadi “fs_defaultfs=hdfs://localhost:50070”, dan
baris “## default_hdfs_superuser=hdfs” ubah jadi
“default_hdfs_superuser=hduser” lalu restart Hue.
Gambar 3.73 Solusi ke-1 Error pada Hue
79
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
hduser@Master:~$ sudo gedit
/usr/local/hue/desktop/conf/pseudo-distributed.ini
Pada baris “fs_defaultfs=hdfs://localhost:8020” ubah
menjadi “fs_defaultfs=hdfs://localhost:50070”, dan
pada baris “## default_hdfs_superuser=hdfs” ubah
menjadi “default_hdfs_superuser=hduser” lalu restart
Hue.
Gambar 3.74 Solusi ke-2 Error pada Hue
- “etti g file hdfs-site. l u tuk
NameNode dan DataNodes:
e gaktifka We HDF“ pada
hduser@Master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/hdfs-site.xml
Di dalam file hdfs-site.xml, tambahkan kode berikut:
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
80
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 3.75 Setting file “hdfs-site.xml”
81
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- “etti g file o e-site. l u tuk e gko figu asi Hue sebagai
proxy user untuk semua pengguna dan grup lain, yang berarti permintaan apapun dapat diajukan juga atas nama pengguna lain:
hduser@Master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/core-site.xml
Di dalam file core-site.xml, tambahkan kode berikut:
<property>
<name>hadoop.proxyuser.hue.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hue.groups</name>
<value>*</value>
</property>
Gambar 3.76 Setting file “core-site.xml”
82
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Kemudian, jika Namenode ada di host lain selain Hue, jangan lupa
update di file hue.i i Pa t of :
hduser@Master:~$ sudo gedit
/usr/local/hue/desktop/conf.dist/hue.ini
[hadoop]
[[hdfs_clusters]]
[[[default]]]
# Enter the filesystem uri
fs_defaultfs=hdfs://localhost:8020
# Use WebHdfs/HttpFs as the communication
mechanism.
# Domain should be the NameNode or HttpFs
host.
webhdfs_url=http://localhost:50070/webhdfs/v1
Gambar 3.77 Edit file “hue.ini” Part 1 of 7
83
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Kemudian, jika Namenode ada di host lain selain Hue, jangan lupa
update di file hue.i i Pa t of :
Pada YARN, Resource Manager, secara default sering
diset pada http://localhost:8088
Server ProxyServer dan Job History juga perlu
ditentukan. Kemudian Job Browser akan mengijikan
Anda mendaftar dan terminate aplikasi yang sedang
berjalan dan mendapatkan log mereka.
[hadoop]
[[yarn_clusters]]
[[[default]]]
# Enter the host on which you are running the
ResourceManager
resourcemanager_host=localhost
# Whether to submit jobs to this cluster
submit_to=True
# URL of the ResourceManager API
resourcemanager_api_url=http://localhost:8088
# URL of the ProxyServer API
proxy_api_url=http://localhost:8088
# URL of the HistoryServer API
history_server_api_url=http://localhost:19888
Gambar 3.78 Edit file “hue.ini” Part 2 of 7
84
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Kemudian, jika Namenode ada di host lain selain Hue, jangan lupa
update di file hue.i i Pa t of :
Pada Hive, kita butuh HiveServer2 yang sedang
berjalan untuk mengirimkan query SQL.
[beeswax]
# Host where HiveServer2 is running.
hive_server_host=localhost
Catatan:
Jika HiveServer2 berada di komputer lain dan Anda menggunakan
konfigurasi HiveServer2 dengan security dan customized, maka
Anda perlu menyalin hive-site.xml pada mesin Hue juga:
[beeswax]
# Host where HiveServer2 is running.
hive_server_host=localhost
# Hive configuration directory, where hivesite.xml is located</span>
hive_conf_dir=/etc/hive/conf
Gambar 3.79 Edit file “hue.ini” Part 3 of 7
85
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Kemudian, jika Namenode ada di host lain selain Hue, jangan lupa
update di file hue.i i Pa t of :
Pada Impala, perlu menentukan salah satu alamat
Impalad untuk SQL interaktif di aplikasi Impala.
[impala]
# Host of the Impala Server (one of the Impalad)
server_host=localhost
Gambar 3.80 Edit file “hue.ini” Part 4 of 7
- Kemudian, jika Namenode ada di host lain selain Hue, jangan lupa
update di file hue.i i Pa t of :
Pada Solr Search, perlu menentukan alamat Solr Cloud
(atau non Cloud Solr), maka kemampuan dasbor
interaktif bisa digunakan!
[search]
# URL of the Solr Server
solr_url=http://localhost:8983/solr/
Gambar 3.81 Edit file “hue.ini” Part 5 of 7
86
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Kemudian, jika Namenode ada di host lain selain Hue, jangan lupa
update di file hue.i i Pa t of :
Pada Oozie, Oozie server harus aktif dan berjalan
sebelum submitting atau monitoring workflows.
[liboozie]
# The URL where the Oozie service runs on.
oozie_url=http://localhost:11000/oozie
Gambar 3.82 Edit file “hue.ini” Part 6 of 7
- Kemudian, jika Namenode ada di host lain selain Hue, jangan lupa
update di file hue.i i Pa t of 7:
Pada Hbase, memungkinkan Anda browse, query dan
mengedit tabel.
[hbase]
# Comma-separated list of HBase Thrift server 1
for clusters in the format of '(name|host:port)'.
hbase_clusters=(Cluster|localhost:9090)
Gambar 3.83 Edit file “hue.ini” Part 7 of 7
87
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Cara untuk memblacklist app agar tidak aktif di Hue
Pada file “pseudo-distributed.ini” atau “hue.ini”
hduser@Master:~$ sudo gedit
/usr/local/hue/desktop/conf/pseudo-distributed.ini
Ubah kata “app_blacklist=” menjadi misal seperti
berikut:
app_blacklist=search,security,oozie,jobbrowser,pig,b
eeswax,search,zookeeper,impala,rdbms,spark,metastore
,hbase,sqoop,jobsub
hduser@Master:~$ sudo gedit
/usr/local/hue/desktop/conf.dist/hue.ini
Ubah kata “app_blacklist=” menjadi misal seperti
berikut:
app_blacklist=search,security,oozie,jobbrowser,pig,b
eeswax,search,zookeeper,impala,rdbms,spark,metastore
,hbase,sqoop,jobsub
Atau cukup blacklist (pada aplikasi yang belum diinstall)
app_blacklist=oozie,pig,beeswax,impala,hbase
- Link lainnya Hue
http://127.0.0.1:8000/accounts/login/?next=/about/ad
min_wizard
- Jalankan lagi Hadoop:
hduser@Master:~$ start-all.sh
Gambar 3.84 Jalankan lagi Hadoop
88
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Jalankan lagi Hue:
Berikut link file “pseudo-distributed.ini” dan
“hue.ini”: https://goo.gl/7uZAK5 yang digunakan.
hduser@Master:/usr/local/hue$ build/env/bin/hue
runserver
Gambar 3.85 Jalankan lagi Hue
- Buka Hue di Web B o se di ala at http://
. . . :
sukka
isal use = hduse da p d = a :
,
Gambar 3.86 Buka Hue di Web Browser
89
a-
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Tampilan HDFS pada Hue Vs HDFS default di Browser (1 of 4):
Gambar 3.87 Buka Hue di Web Browser 1
90
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Tampilan HDFS pada Hue Vs HDFS default di Browser (2 of 4):
Gambar 3.88 Buka Hue di Web Browser 2
91
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Tampilan HDFS pada Hue Vs HDFS default di Browser (3 of 4):
Gambar 3.89 Buka Hue di Web Browser 3
- Tampilan HDFS pada Hue Vs HDFS default di Browser (4 of 4):
Gambar 3.90 Buka Hue di Web Browser 4
92
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
3.3.4 Konfigurasi dengan Spark
Spark adalah salah satu project Apache, free dan open-source
untuk suatu engine umum (general engine) yang cepat dalam
pemrosesan Big Data. Spark disebut juga dengan Light i g Fast
Cluste Co puti g . Spark 100x lebih cepat dari Hadoop MapReduce
pada memory, dan 10x lebih cepat pada disk.
Gambar 3.91 About Spark
Spark dapat dijalankan di Hadoop, Mesos, standalone, atau di
cloud. Dan dapat mengakses beragam sumber data termasuk HDFS,
Cassandra, HBase, dan S3.
Gambar 3.92 Spark dan Tool lainnya
Spark Core adalah mesin komputasi yang bertanggung jawab
terhadap proses penjadwalan (scheduling), distribusi dan pemantauan (monitoring) dari suatu aplikasi yang dijalankan, yang terdiri dari
banyak tugas komputasi pada banyak mesin pekerja (multi-node) dalam komputasional cluster. Apache Mesos adalah proyek opensource untuk mengelola cluster komputer yang dikembangkan di
University of California, Berkeley.
93
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Spark adalah engine berkelompok untuk tujuan umum
(general purpose cluster engine) yang mendukung konsep
sistem terdistribusi dengan application programming interface
(APIs) dalam Java, Scala, Python, dan R serta beberapa library
untuk streaming, graph dan juga machine learning (mesin
pembelajaran yang merupakan sekumpulan dari banyak algoritma
didalamnya).
Spark menawarkan suatu fungsional dari pemrograman API
untuk memanipulasi Resilient Distributed Datasets (RDDs).
Gambar 3.93 Spark dan Bahasa Pemrograman
RDDs merepresentasikan suatu logical plan untuk melakukan
komputasi suatu dataset. RDDs mendukung toleransi kesalahan
(fault-tolerant), sehingga sistem dapat me-recover data yang hilang
(lost) atau gagal saat diproses menggunakan lineage graph RDDs
(dengan me-running kembali operasi pada input data untuk merebuild kembali partisi yang hilang). RDDs memiliki 2 tipe operasi:
o Transformation, mengkonstruksi/membangun RDD baru dari
satu atau lebih dari yang sebelumnya. Contoh: Map, Reduce,
Filter.
o Actions, Menghitung hasil dari suatu komputasi berdasarkan
RDD dan memberikan return/kembalian kepada program driver
atau simpan ke penyimpanan eksternal.
- Cek versi Linux anda
Gambar 3.94 Cek versi Linux
94
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Cek Hadoop Version dan Jalankan Hadoop
hduser@Master:~$ hadoop version
hduser@Master:~$ start-all.sh
Gambar 3.95 Cek Hadoop Version dan Run Hadoop
- Masuk
ke
download
http://spark.apache.org/downloads.html
dan
Gambar 3.96 Download Spark
- Hasil Download Spark
Gambar 3.97 Hasil download Spark
95
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Cek Java Version
hduser@Master:~$ java -version
java version "1.7.0_111"
OpenJDK Runtime Environment (IcedTea 2.6.7) (7u1112.6.7-0ubuntu0.14.04.3)
OpenJDK 64-Bit Server VM (build 24.111-b01, mixed
mode)
Gambar 3.98 Cek Java Version
- Cek 'pwd' (Print Working Directory)
hduser@Master:~$ pwd
/home/hduser
hduser@Master:~$
- Pada Terminal, coba masuk ke directory dimana Spark telah didownload dan Ekstrak
hduser@Master:~$ cd /home/nidos/Downloads/
hduser@Master:/home/nidos/Downloads$ ls
spark-2.2.0-bin-hadoop2.7.tgz testing2(1).txt~
testing2.txt~ testing.txt
hduser@Master:/home/nidos/Downloads$ tar -zxvf
spark-2.2.0-bin-hadoop2.7.tgz
Gambar 3.99 Tekan enter, tunggu sampai selesai
96
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Cek hasil ekstrak file *.tgz, ketikkan
hduser@Master:/home/nidos/Downloads$ ls
spark-2.2.0-bin-hadoop2.7
testing2(1).txt~
testing.txt
spark-2.2.0-bin-hadoop2.7.tgz testing2.txt~
hduser@Master:/home/nidos/Downloads$
Gambar 3.100 Tekan enter, tunggu sampai selesai
- Move hasil ekstrak file *.tgz, ketikka
.... ,
isal ke hduser
hduser@Master:/home/nidos/Downloads$ mv spark-2.2.0bin-hadoop2.7/ ~/
hduser@Master:/home/nidos/Downloads$ cd
hduser@Master:~$ ls
examples.desktop hadoop-2.7.3.tar.gz spark-2.2.0bin-hadoop2.7
hduser@Master:~$
Gambar 3.101 Instalasi Spark selesai :D
97
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
a. Konfigurasi Spark with Python (PySpark)
- Set PATH Spark, ketikkan
hduser@Master:~$ ls -a
Gambar 3.102 - Set PATH Spark
- Install java terbaru part 1
hduser@Master:~$ sudo add-apt-repository
ppa:webupd8team/java
Gambar 3.103 Install java terbaru part 1
- Install java terbaru part 2
hduser@Master:~$ sudo apt-get update
Gambar 3.104 Install java terbaru part 2
98
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Install java terbaru part 3
hduser@Master:~$ sudo apt-get install oracle-java8installer
Gambar 3.105 Install java terbaru part 2
Lalu tekan Enter
- Install java terbaru part 4
Gambar 3.106 Install java terbaru part 4
- Pilih <Yes>, tekan enter, tunggu beberapa waktu
Gambar 3.107 Install java terbaru part 4 (lanj. 1)
99
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 3.108 Install java terbaru part 4 (lanj. 2)
Gambar 3.109 Install java terbaru Selesai
100
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Cek java version
hduser@Master:~$ java -version
Gambar 3.110 Cek java version sudah terupdate
- Update sudo gedit ~/. ash
hduser@Master:~$ sudo gedit ~/.bashrc
Ubah: export JAVA_HOME=/usr/lib/jvm/java-7-openjdkamd64
Menjadi: export JAVA_HOME=/usr/lib/jvm/java-8-oracle
Dan, ubah: export
HADOOP_CLASSPATH=/usr/lib/jvm/java-7-openjdkamd64/lib/tools.jar
Menjadi: export HADOOP_CLASSPATH=/usr/lib/jvm/java8-oracle/lib/tools.jar
Gambar 3.111 Update “sudo gedit ~/.bashrc”
- ‘esta t ~/. ash
hduser@Master:~$ source ~/.bashrc
101
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Lalu Restart Hadoop
hduser@Master:~$
hduser@Master:~$
hduser@Master:~$
hduser@Master:~$
stop-dfs.sh
stop-yarn.sh
start-dfs.sh
start-yarn.sh
Gambar 3.112 Restart Hadoop
- install python-pip
hduser@Master:~$ sudo apt-get install python-pip
Gambar 3.113 install python-pip
Pip singkatan dari PIP Installs Python atau PIP Installs
Packages, kepanjangannya tidak perlu diperhatikan karena memang
kalau diartikan terdengar aneh. Bayangkan pip adalah sebuah app
store (atau biasa disebut sebagai package manager), kita bisa
102
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
mencari, menginstall, me-manage modules atau package pada
installasi python kita. Berikut merupakan fungsi-fungsi dasar PIP:
o
o
o
o
Install modules
uninstall modules
search modules yang tersedia
mengecek versi modules dan modules apa saja yang
terinstall
Virtualenv, Anggap anda sudah menginstall python versi 2.7 di
komputer anda dan memiliki beberapa modules seperti django dll,
nah kita sebut itu sebagai sebuah environment yang menggunakan
python versi 2.7 sebagai interpreternya dan django sebagai salah
satu modulenya. Lalu anggap anda ingin menggunakan python versi
3.3 dan juga ingin upgrade django ke versi 1.7, maka anda harus mesetting ulang environment path, install ulang lagi modules-modules
yang dibutuhkan, dan ternyata aplikasi django di versi sebelumnya
tidak jalan di versi 1.7, maka anda harus rollback kembali,
kelihatannya repot bukan?
Virtualenv berguna untuk membuat virtual environment
dengan mudah tanpa mempengaruhi python di sistem operasi anda.
Ingin tes apakah aplikasi anda berjalan di modules versi terbaru?
gampang, tinggal buat virtualenv dengan menggunakan modules
versi terbaru, modules tersebut tidak akan terinstall di python sistem
operasi kita, lalu cek apakah aplikasi kita berjalan, jika tidak maka
tinggal hapus saja virtualenv tersebut. virtualenv juga menyediakan
kita memilih interpreter yang kita inginkan, misal python 2.7 maupun
3.4 dan juga apakah include modules yang sudah terinstall di python
sistem operasi kita atau tidak. Catatan, kita juga harus meng-install
terlebih dahulu versi python di komputer kita sebelum kita ingin
membuat virtualenv dengan versi tersebut.
- Cek python –version
hduser@Master:~$ python --version
Python 2.7.6
Gambar 3.114 Cek python –version
103
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Install Anaconda, tekan enter
Download Anaconda:
hduser@Master:/home/nidos/Downloads$ wget
https://repo.continuum.io/archive/Anaconda2-4.4.0Linux-x86_64.sh
Install Anaconda:
hduser@Master:/home/nidos/Downloads$ bash
./Anaconda2-4.4.0-Linux-x86_64.sh
Gambar 3.115 Install Anaconda
- Lalu tekan spasi, ketik yes, tekan enter
Gambar 3.116 Tekan spasi, ketik yes, tekan enter
104
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- “etelah ta pil sepe ti e ikut, isal set folde i stalasi a di >>>
/ho e/hduse /a a o da , lalu teka e te tu ggu e e apa
saat)
Gambar 3.117 set folder instalasinya
- Ketik yes (untuk set PATH di /home/hduser/.bashrc)
Gambar 3.118 Ketik yes (untuk set PATH di /home/hduser/.bashrc)
105
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Install Anaconda (Done)
Gambar 3.119 Install Anaconda (Done)
- Ketik hduse @Maste :~$ sudo gedit ~/. ash
..
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export JRE_HOME=/usr/lib/jvm/java-8-oracle/jre
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/nat
ive
export HADOOP_OPTS="Djava.library.path=$HADOOP_INSTALL/lib/native"
export HADOOP_CLASSPATH=/usr/lib/jvm/java-8oracle/lib/tools.jar
export SPARK_HOME=/home/hduser/spark-2.2.0-binhadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
export PATH=$PATH:$SPARK_HOME/bin/pyspark
export XDG_RUNTIME_DIR=""
# added by Anaconda2 4.4.0 installer
export PATH="/home/hduser/anaconda/bin:$PATH"
106
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 3.120 Set PATH Anaconda
- Restart ~/.bashrc, lalu cek lagi python version
hduser@Master:~$ python --version
Python 2.7.6
Gambar 3.121 Cek python –version
- Restart ~/.bashrc, lalu cek lagi python version
Restart ~/.bashrc
hduser@Master:~$ source ~/.bashrc
Sebelumnya:
hduser@Master:~$ python --version
Python 2.7.6
Setelah diinstall versi terbaru atau update dengan
“hduser@Master:~$ conda update –all --yes”
hduser@Master:~$ python --version
Python 2.7.13 :: Anaconda 4.4.0 (64-bit)
107
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Verifikasi: apakah Spark sudah berjalan?
hduser@Master:~$ spark-shell
Gambar 3.122 Spark sudah aktif
Scala merupakan bahasa pemrograman berbasis java yang
hampir setara dengan Python, yang merupakan bawaan dari Spark.
- Spark di Web
http://10.0.2.15:4040/jobs/
Gambar 3.123 Spark di web
108
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Coba koding scala sederhana pada Spark
scala> val x = sc.parallelize(1 to 100)
scala> x.collect
Gambar 3.124 Koding scala sederhana pada Spark
- “iapka data i put, isal i put.t t, pa asila.t t , do
link https://goo.gl/E7HRV9
load da i
Gambar 3.125 Demo: WordCount (ScalaSpark) ke-1
- Scala pada Spark
nidos@Master:~$ su hduser
Password:
hduser@Master:/home/nidos$ cd
val textFile =
sc.textFile(“/home/nidos/Documents/ScalaSpark/data/p
ancasila.txt”)
val counts = textFile.flatMap(line => line.split("
"))map(word => (word, 1))reduceByKey(_ + _)
109
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 3.126 Demo: WordCount (ScalaSpark) ke-2
- Cara counts.collect()
val textFile =
sc.textFile(“/home/nidos/Documents/ScalaSpark/data/p
ancasila.txt”)
val counts = textFile.flatMap(line => line.split("
"))map(word => (word, 1))reduceByKey(_ + _)
scala> counts.collect()
Gambar 3.127 Demo: WordCount (ScalaSpark) ke-3
- U tuk e it, ketik : uit
110
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Cara counts.foreach(println)
val textFile =
sc.textFile(“/home/nidos/Documents/ScalaSpark/data/p
ancasila.txt”)
val counts = textFile.flatMap(line => line.split("
"))map(word => (word, 1))reduceByKey(_ + _) scala>
counts.foreach(println)
Gambar 3.128 Demo: WordCount (ScalaSpark) ke-4
- Cara Simpan hasil Count di local filesystem
Untuk clear layar, CTRL+L
Misal kita coba simpan pada hduser
scala> counts.coalesce(1,true).saveAsTextFile("out")
Gambar 3.129 Demo: WordCount (ScalaSpark) ke-5
111
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Ba a hasil ou t de ga
at
hduser@Master:~$ python --version
Python 2.7.6
Gambar 3.130 Demo: WordCount (ScalaSpark) ke-6
- Cara Copy hasil Count di local filesystem pada user lain, misal di
folde
/ho e/ idos/Do u e ts/“ ala“pa k/hasil de ga
a a file outputpa asila.t t
hduser@Master:~$ sudo cp ~/out/part-00000
/home/nidos/Documents/ScalaSpark/hasil/outputpancasi
la.txt
[sudo] password for hduser:
hduser@Master:~$ sudo chmod 777 -R
/home/nidos/Documents/
hduser@Master:~$
Gambar 3.131 Demo: WordCount (ScalaSpark) ke-7
- Cara Simpan hasil Count di HDFS Hadoop (Cek jps di hduser)
hduser@Master:~$ jps
Gambar 3.132 cek JPS
Diatas terlihat bahwa hadoop belum dijalankan,
dengan
hduser@Master:~$ start-all.sh
112
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 3.133 Hadoop sudah jalan
- Tampilan hadoop di Web http://localhost:50070/explorer.html#/
Gambar 3.134 Tampilan hadoop di Web
- Klik B o se the file s ste
, lalu klik use
Gambar 3.135 Browse the file system
113
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Buat folder di hadoop melalui Terminal
hduser@Master:~$ cd /usr/local/hadoop
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -mkdir
/user/hduser/wordcountScalaSpark
Gambar 3.136 Buat folder di hadoop melalui Terminal
- Cek isi da i /use /hduse
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -ls
/user/hduser
Gambar 3.137 Cek isi dari “/user/hduser”
- CopyFromLocal file pancasila.txt to hdfs
hduser@Master:/usr/local/hadoop$ bin/hdfs dfs -mkdir
/user/hduser/wordcountScalaSpark/inputhduser@Master:
/usr/local/hadoop$ bin/hdfs dfs -copyFromLocal
/home/nidos/Documents/ScalaSpark/data/pancasila.txt
/user/hduser/wordcountScalaSpark/input
Gambar 3.138 CopyFromLocal file *.txt to hdfs
114
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Scala pada Spark, load data input dari hdfs
Cek fs.default.name = “hdfs://localhost:9000”, dari
hduser@Master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/core-site.xml
val inputFile =
sc.textFile("hdfs://localhost:9000/user/hduser/wordc
ountScalaSpark/input/pancasila.txt")
val counts = inputFile.flatMap(line => line.split("
"))map(word => (word, 1))reduceByKey(_ + _)
Gambar 3.139 Scala: load data input dari hdfs
- Lihat di web
http://localhost:50070/explorer.html#/user/hduser/wo
rdcountScalaSpark/output
Gambar 3.140 Lihat di web hasil output Spark
115
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Tampilan di web
val textFile =
sc.textFile(“/home/nidos/Documents/ScalaSpark/data/p
ancasila.txt”)
val counts = textFile.flatMap(line => line.split("
"))map(word => (word, 1))reduceByKey(_ + _)
Gambar 3.141 Tampilan di web
- Verifikasi: PySpark sudah Berjalan?
hduser@Master:~$ pyspark
Gambar 3.142 PySpark sudah aktif
116
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Python pada Spark
text_file =
sc.textFile(“/home/nidos/Documents/PySpark/data/Prid
e_and_Prejudice.txt”)
counts = text_file.flatMap(lambda line: line.split(“
“).map(lambda word: (word, 1)).reduceByKey(lambda a,
b: a + b))
Gambar 3.143 Python pada Spark
Ga ti
ou ts. olle t
e jadi
ou ts. olle t
- counts.collect()
text_file =
sc.textFile(“/home/nidos/Documents/PySpark/data/Prid
e_and_Prejudice.txt”)
counts = text_file.flatMap(lambda line: line.split(“
“).map(lambda word: (word, 1)).reduceByKey(lambda a,
b: a + b))
Gambar 3.144 PySpark counts.collect()
- Untuk exit, tekan Cltr+d
117
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Tampilan di web
text_file =
sc.textFile(“/home/nidos/Documents/PySpark/data/Prid
e_and_Prejudice.txt”)
counts = text_file.flatMap(lambda line: line.split(“
“).map(lambda word: (word, 1)).reduceByKey(lambda a,
b: a + b))
Gambar 3.145 Tampilan di web (Spark)
b. Koding PySpark (Dasar), Functional tool di Python
o Map
o Filter
o Reduce
o Lambda
o Itertools (chain, flatmap)
- Coba koding python sederhana (map)
Python support map operation, pada semua type list, dan kita akan
mencoba mengoperasikan tiap elemen pada list, dengan return list
baru sebagai hasil.
>>> def add1(x): return x+1
>>> map(add1,[1,2,3])
[2, 3, 4]
>>>
118
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 3.146 koding python sederhana (map)
Operasi di atas biasanya dilakukan dengan looping for, namun
map ini yang dilakukan tanpa looping for, yaitu dengan cara kerja
yang berbeda dan sederhana.
- Coba koding python sederhana (filter)
Untuk memilih elemen tertentu dalam suatu list.
>>> def isOdd(x): return x%2==1
>>> filter(isOdd, range(1,10))
[1, 3, 5, 7, 9]
>>>
Gambar 3.147 koding python sederhana (filter)
- Coba koding python sederhana (reduce)
Mengaplikasikan suatu fungsi untuk memasangkan semua elemen pada suatu list, dengan return satu nilai tunggal (bukan dalam bentuk list).
119
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
>>>
[1,
>>>
>>>
10
range(1,5)
2, 3, 4]
def add(x,y): return x+y
reduce(add,range(1,5))
Gambar 3.148 koding python sederhana (reduce)
- Coba koding python sederhana (lambda)
Ketika melakukan map/filter/reduce, kita berakhir dengan banyak
fungsi-fungsi kecil. Lambda mengijinkan kita untuk mendefinisikan suatu fungsi sebagai suatu nilai, tanpa harus memberikan
nama fungsi.
>>> (lambda x:2*x)(3)
6
>>> map(lambda x:2*x,[1,2,3])
[2, 4, 6]
>>> map(lambda t:t[0],[(1,2),(3,4),(5,6)])
[1, 3, 5]
>>> reduce(lambda x,y:x+y,[1,2,3])
6
>>> reduce(lambda x,y:x+y,map(lambda
t:t[0],[(1,2),(3,4),(5,6)]))
9
o Hanya dapat memiliki ekspresi tunggal
o Tanpa menggunakan return
o Memberikan tanda kurung pada lambda, biasanya tidak dibutuhkan di sintaks
120
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 3.149 koding python sederhana (lambda)
- Coba koding python sederhana (lambda): Latihan
Diberikan
a=[(1,2),(3,4),(5,6)]
Buat suatu kode dengan suatu ekspresi untuk mendapatkan hanya
element kedua dari tiap tuple dari a
Buat suatu kode untuk menghitung hasil penjumlahan elemen
kedua
Buat suatu kode untuk menghitung hasil penjumlahan elemen
pertama yang bernilai ganjil
Jawab:
>>> a=[(1,2),(3,4),(5,6)]
>>> map(lambda t:t[1],a)
[2, 4, 6]
>>> reduce(lambda x,y:x+y,map(lambda t:t[1],a))
12
>>> reduce(lambda x,y:x+y,filter(isOdd,map(lambda t:t[0],a)))
9
121
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 3.150 koding python sederhana (lambda): Latihan
- Coba koding python sederhana (flatmap)
Terkadang kita pada akhirnya harus melibatkan suatu list dari beberapa list, dan kita ingin suatu 'flat' list, dan banyak fungsional
dari bahasa pemrograman (termasuk spark) menyediakan fungsi
flatmap, yang membuat flat hasil seperti suatu list, berikut
contohnya.
>>> map(lambda t:range(t[0],t[1]),[(1,5),(7,10)])
[[1, 2, 3, 4], [7, 8, 9]]
>>> [[1,2,3,4],[7,8,9]]
[[1, 2, 3, 4], [7, 8, 9]]
>>> from itertools import chain
>>> chain(map(lambda
t:range(t[0],t[1]),[(1,5),(7,10)]))
<itertools.chain object at 0x7f4df1d6ae50>
>>> list(chain(map(lambda
t:range(t[0],t[1]),[(1,5),(7,10)])))
[[1, 2, 3, 4], [7, 8, 9]]
Itertools.chain adalah suatu maps suatu list secara iteratif ke
dalam suatu flat list. Dan membuat kita bisa untuk mendefinisikan
secara mandiri bentuk flatmap yang kita inginkan.
122
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 3.151 koding python sederhana (flatmap)
- Coba koding python sederhana (run pyspark part 1)
>>> sc.parallelize(range(1,10))
ParallelCollectionRDD[0] at parallelize at
PythonRDD.scala:480
>>> sc.parallelize(range(1,10)).first()
1
>>> list1=sc.parallelize(range(1,1000))
>>> list2=sc.parallelize(range(1,1000)).map(lambda
x:x*10)
>>> list2.first()
10
Gambar 3.152 run pyspark part 1
123
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Coba koding python sederhana (run pyspark part 2)
>>> list2.reduce(lambda x,y:x+y)
4995000
>>> list2.filter(lambda x:x%100==0).collect()
[100, 200, 300, 400, 500, 600, 700, 800, 900, 1000,
1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800,
1900, 2000, 2100, 2200, 2300, 2400, 2500, 2600,
2700, 2800, 2900, 3000, 3100, 3200, 3300, 3400,
3500, 3600, 3700, 3800, 3900, 4000, 4100, 4200,
4300, 4400, 4500, 4600, 4700, 4800, 4900, 5000,
5100, 5200, 5300, 5400, 5500, 5600, 5700, 5800,
5900, 6000, 6100, 6200, 6300, 6400, 6500, 6600,
6700, 6800, 6900, 7000, 7100, 7200, 7300, 7400,
7500, 7600, 7700, 7800, 7900, 8000, 8100, 8200,
8300, 8400, 8500, 8600, 8700, 8800, 8900, 9000,
9100, 9200, 9300, 9400, 9500, 9600, 9700, 9800,
9900]
Gambar 3.153 run pyspark part 2
- Coba koding python sederhana (run pyspark part 3)
>>> rdd1=sc.parallelize(range(1,100))
>>> rdd1.map(lambda x:x*x).sum()
[Stage 4:>
(0 +
328350
>>> rdd1.map(lambda x:x*x).max()
9801
>>> rdd1.map(lambda x:x*x).min()
1
>>> rdd1.map(lambda x:x*x).mean()
3316.6666666666665
>>> rdd1.map(lambda x:x*x).take(5)
[1, 4, 9, 16, 25]
124
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 3.154 run pyspark part 3
- Coba koding python sederhana (run pyspark part 4)
>>> sc.parallelize(range(1,10)).filter(lambda
x:x%3==0).collect()
[3, 6, 9]
>>> rdd1.map(lambda x:x*x).filter(lambda
x:x%3==0).collect()
[9, 36, 81, 144, 225, 324, 441, 576, 729, 900, 1089,
1296, 1521, 1764, 2025, 2304, 2601, 2916, 3249,
3600, 3969, 4356, 4761, 5184, 5625, 6084, 6561,
7056, 7569, 8100, 8649, 9216, 9801]
>>> sc.parallelize(range(1,10)).filter(lambda
x:x%3==0).reduce(lambda x,y:x*y)
162
>>> rdd1.map(lambda x:x*x).filter(lambda
x:x%3==0).reduce(lambda x,y:x*y)
2330097990923178147850146288242387827826210522818092
7073474689905032511235626331367471579136000000000000
00L
>>>
Gambar 3.155 run pyspark part 4
125
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Coba koding python sederhana (run pyspark part 5)
Diketahui data people.t t li k https://goo.gl/BNtYM“ de ga
isi, misal sebagai berikut:
Gambar 3.156 run pyspark part 5
- Coba koding python sederhana (run pyspark part 6)
>>> people =
sc.textFile("/home/nidos/Documents/PySpark/data/peop
le.txt").map(lambda x:x.split('\t'))
>>> people.collect()
Menghitung jumlah orang by JK(gender):
>>> people.map(lambda t:t[1]).collect()
[u'M', u'M', u'M', u'F', u'F']
>>> people.map(lambda t:(t[1],1)).reduceByKey(lambda
x,y:x+y).collect()
[(u'M', 3), (u'F', 2)]
Gambar 3.157 run pyspark part 6
126
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Coba koding python sederhana (run pyspark part 7)
Menghitung jumlah orang by Bahasa Pemrograan
Favorit:
>>> people.map(lambda t:t[3]).collect()
[u'Scala', u'Python', u'Scala', u'Python', u'C++']
>>> people.map(lambda t:(t[3],1)).reduceByKey(lambda
x,y:x+y).collect()
[Stage 24:>
(0 + 0)
[(u'Python', 2), (u'C++', 1), (u'Scala', 2)]
Gambar 3.158 run pyspark part 7
- Coba koding python sederhana (run pyspark part 8)
Menampilkan JK dan Usia:
>>> people.map(lambda t:(t[1],int(t[2]))).collect()
[(u'M', 32), (u'M', 63), (u'M', 72), (u'F', 25),
(u'F', 24)]
Gambar 3.159 run pyspark part 8
- Coba koding python sederhana (run pyspark part 9)
Menampilkan Usia paling muda per JK:
>>> people.map(lambda
t:(t[1],int(t[2]))).reduceByKey(lambda
x,y:min(x,y)).collect()
[(u'M', 32), (u'F', 24)]
Gambar 3.160 run pyspark part 9
127
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
c. Running File *.py pada PySpark
- Contoh cara running kode k-means clustering
Masuk ke folder spark:
hduser@Master:~$ cd ~/spark-2.2.0-bin-hadoop2.7/
hduser@Master:~/spark-2.2.0-bin-hadoop2.7$
bin/spark-submit
examples/src/main/python/ml/kmeans_example.py
Hasil
Gambar 3.161 Hasil k-means clustering
sample_kmeans_data.txt
0 1:0.0 2:0.0 3:0.0
1 1:0.1 2:0.1 3:0.1
2 1:0.2 2:0.2 3:0.2
3 1:9.0 2:9.0 3:9.0
4 1:9.1 2:9.1 3:9.1
5 1:9.2 2:9.2 3:9.2
128
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Potongan kode kmeans_example.py
# Loads data.
dataset =
spark.read.format("libsvm").load("data/mllib/sample_
kmeans_data.txt")
# Trains a k-means model.
kmeans = KMeans().setK(2).setSeed(1)
model = kmeans.fit(dataset)
# Evaluate clustering by computing Within Set
Sum of Squared Errors.
wssse = model.computeCost(dataset)
print("Within Set Sum of Squared Errors = " +
str(wssse))
# Shows the result.
centers = model.clusterCenters()
print("Cluster Centers: ")
for center in centers:
print(center)
# $example off$
129
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
3.3.5 Konfigurasi dengan Mahout
Apache Mahout menyediakan 3 fitur utama, yang pertama
yaitu Lingkungan dan kerangka pemrograman yang sederhana dan
dapat diperluas untuk membangun algoritma yang scalable, kedua
berbagai macam algoritma dibuat sebagai template awal untuk Scala
+ Apache Spark, H2O, Apache Flink, dan yang ketiga adanya Samsara,
lingkungan eksperimen matematika vektor.
Gambar 3.162 Apache Mahout
Apache Mahout dapat digunakan untuk:
Clustering
Classification
Recommender
Engines
(Collaborative
Filtering):
Memberikan rekomendasi produk yang mungkin dibeli
pelanggan, dll.
Gambar 3.163 Recommender Engines
130
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Recommender Engines (Collaborative Filtering): Melihat
dari sisi User-User, Item-Item, atau diantara keduanya.
Gambar 3.164 User-User, Item-Item, atau diantara keduanya
Recommender
Engines
(Collaborative
Filtering):
Penghitungan ukuran hub. antar Item dengan
menggunakan Tanimoto Coefficient.
Gambar 3.165 Tanimoto Coefficient
Recommender
Engines
(Collaborative
Filtering):
Penghitungan ukuran hub. antar Item dengan
menggunakan Cosine Coefficient (Similarity atau
kemiripan).
Gambar 3.166 Cosine Coefficient
131
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Cek Versi Linux, dan pastikan anda sudah install Hadoop
nidos@Master:~$ su hduser
Password:
hduser@Master:/home/nidos$ cd
hduser@Master:~$ start-all.sh
hduser@Master:~$ jps
3343 NameNode
3985 NodeManager
3843 ResourceManager
3469 DataNode
3633 SecondaryNameNode
4276 Jps
hduser@Master:~$
Gambar 3.167 JVM Process Status Tool (jps)
- Cek Hadoop Version
hduser@Master:~$ hadoop version
Gambar 3.168 Cek Hadoop Version
132
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Masuk ke http://mahout.apache.org/general/downloads.html
Gambar 3.169 Buka web Apache Mahout
- Do load Mahout,
. . .ta .gz
isal
apa he-mahout-distribution-
Gambar 3.170 Download Mahout
133
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Hasil Download Mahout,
0.13.0.tar.gz
isal
apa he-mahout-distribution-
Gambar 3.171 Hasil Download Mahout
- Klik ka a file apa he-mahout-distribution- .
hasil download, klik Extract Here
. .ta .gz. ta .gz
Gambar 3.172 Extract Mahout
- Masuk ke terminal, ketikkan seperti berikut
nidos@Master:~$ su hduser
Password:
hduser@Master:/home/nidos$ cd
hduser@Master:~$ sudo chmod 777 -R /usr/local/
[sudo] password for hduser:
hduser@Master:~$
134
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Buat folde
Folder
ahout pada di /us /lo al , klik ka a , pilih New
Gambar 3.173 Buat folder “mahout”
- Move isi hasil ekstrak file apa he-mahout-distribution. . .ta .gz. ta .gz , ke /usr/local/mahout
hduser@Master:~$ sudo mv
/home/nidos/Downloads/apache-mahout-distribution0.13.0/* /usr/local/mahout/
Gambar 3.174 Instalasi Mahout Selesai :D
135
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Cek Owner dan Nama Group /us /lo al/ ahout
hduser@Master:~$ ls -l /usr/local/mahout/
Gambar 3.175 Cek Owner dan Nama Group “/usr/local/mahout”
- Coba ubah Owner /us /lo al/ ahout
Nama Group e jadi hadoop
e jadi hduse
da
hduser@Master:~$ sudo chown hduser:hadoop -R
/usr/local/mahout/
hduser@Master:~$ ls -l /usr/local/mahout/
Gambar 3.176 ubah Owner dan Nama Group “/usr/local/mahout”
136
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Update sudo gedit ~/. ash
, klik sa e, tutup gedit
hduser@Master:~$ sudo gedit ~/.bashrc
Setelah:
export XDG_RUNTIME_DIR=""
Tambahkan:
export MAHOUT_HOME=/usr/local/mahout
export PATH=$PATH:$MAHOUT_HOME/bin
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
Gambar 3.177 Update “sudo gedit ~/.bashrc”
- ‘esta t ~/. ash
lalu Restart Hadoop
hduser@Master:~$
hduser@Master:~$
hduser@Master:~$
hduser@Master:~$
hduser@Master:~$
source ~/.bashrc
stop-dfs.sh
stop-yarn.sh
start-dfs.sh
start-yarn.sh
Gambar 3.178 Restart “~/.bashrc” lalu Restart Hadoop
137
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
3.4 Konfigurasi Hadoop Single Node
Cluster di Windows
- Persiapan File Master Single Node Cluster (pseudo-distributed)
Pada Windows link masternya: https://goo.gl/J5rp9f
Copykan File
“hadoop-2.7.3.tar.gz”
dan
“bin-master.zip” ke
misal, C:/opt
Gambar 3.179 Persiapan Install Hadoop di Windows ke-1
- Download dan Install GNU On WinOS (GOW)
Cek gow –list di CMD
C:\Users\Nidos>gow --list
'gow' is not recognized as an internal or external command,
operable program or batch file.
Link Download GOW:
“github.com/bmatzelle/gow/releases/download/v0.8.0/Gow-0.8.0.exe”
138
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Install GOW:
Tutup cmd, lalu ketikan lagi “gow --list”
- Download dan Install JDK (jika sudah install, abaikan)
Install jdk-8u144-windows-x64.exe (tunggu beberapa
saat, sampai selesai):
139
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Close dan open command line (CMD) dan download Master Hadoop u tuk Wi do s da i https://goo.gl/J p f
Unzip file “hadoop-2.7.3.tar.gz” di folder “C:\opt”
Jalankan di CMD:
C:\Users\Nidos>cd C:\opt
C:\opt\Spark>gzip -d hadoop-2.7.3.tar.gz
Lalu jalankan
“c:\opt>tar xvf hadoop-2.7.3.tar” di
CMD, tunggu beberapa saat sampai
selesai:
- File Master Hadoop berhasil di ekstraks
Lalu jalankan “c:\opt>tar xvf hadoop-2.7.3.tar” di
CMD, tunggu beberapa saat sampai selesai:
140
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Ekst aks file
i - aste .zip de ga Wi a atau lai
a
Gambar 3.180 Ekstraks file “bin-master.zip”
- Masuk ke Control Panel > Pilih System and Security > Pilih System
> Pilih Advanced system settings, pada System variables, klik
New..
Gambar 3.181 Masuk ke Control Panel
141
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Ketikkan berikut (JAVA_HOME dan Directory anda install JDK,
isal di C:\PROGRA~1\Java\jdk . . _
Gambar 3.182 Set JAVA_HOME
- Ekst aks file i - aste .zip de ga Wi a atau lai
a
- Buka file C:\opt\hadoop-2.7.3\etc\hadoop\hadoop-e .
dengan, misal notepad++, ganti
set JAVA_HOME=%JAVA_HOME%
menjadi
set JAVA_HOME=C:\PROGRA~1\Java\jdk1.8.0_144
d
Gambar 3.183 Edit file “hadoop-env.cmd”
Keterangan untuk 64 bit dan 32 bit:
Progra~1 = 'Program Files'
P og a~ = 'P og a Files
atau ditulis menjadi PROGRA~1
142
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Buka
file
C:\opt\hadoop-2.7.3\etc\hadoop\core-site.
dengan, misal notepad++, ganti
l
<configuration></configuration>
menjadi
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
Gambar 3.184 Edit file “core-site.xml”
- Buka
file
C:\opt\hadoop-2.7.3\etc\hadoop\hdfs-site.
dengan, misal notepad++, ganti
<configuration></configuration>
menjadi
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/C:/opt/hadoop-2.7.3/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/C:/opt/hadoop-2.7.3/hdfs/datanode</value>
</property>
</configuration>
143
l
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 3.185 Hasil edit file “hdfs-site.xml”
- Pada di e to C:\opt\hadoop- . .
uat folde hdfs dan didalam buat folder namenode dan datanode
Gambar 3.186 Buat folder namenode dan datanode
144
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Rename file ap ed-site. l.te plate ap ed-site. l
- Buka file C:\opt\hadoop-2.7.3\etc\hadoop\mapred-site. l
dengan, misal notepad++, ganti
<configuration></configuration>
menjadi
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
Gambar 3.187 Hasil edit file “mapred-site.xml.template”
- Buka
file
C:\opt\hadoop-2.7.3\etc\hadoop\yarn-site.
dengan, misal notepad++, ganti
l
<configuration></configuration>
menjadi
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>localhost:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>localhost:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>localhost:8050</value>
</property>
</configuration>
145
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- ‘epla e se ua file di C:\opt\hadoop-2.7.3\ i de ga se ua
file da i C:\opt\bin- aste
o Pertama, delete se ua file di C:\opt\hadoop-2.7.3\ i
o Kedua, Copy se ua file da i
C:\opt\hadoop-2.7.3\ i
C:\opt\bin- aste
146
ke
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Masuk ke Control Panel > Pilih System and Security > Pilih System
> Pilih Advanced system settings, pada System variables, klik
New..
Gambar 3.188 Pilih Advanced system settings
- Ketikkan berikut (HADOOP_HOME dan folder home dari hadoop
a da, isal di C:\opt\hadoop- . . pada alue
Gambar 3.189 Ketik HADOOP_HOME
147
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Pada System variables, pada Va ia le Path klik Edit..
Gambar 3.190 Pada Va ia le Path klik Edit..
- Pada Va ia le Path , ta ahka e ikut (folder bin dan sbin dari
hadoop a da, isal di ;C:\opt\hadoop-2.7.3\bin;C:\opt\hadoop2.7.3\s i
Gambar 3.191 Tambahkan bin hadoop pada Path
- Konfigurasi Selesai. :D
148
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Buka CMD, ketikkan berikut (untuk cek hadoop version)
C:\Users\Nidos>hadoop version
Gambar 3.192 Cek hadoop version di CMD
- Buka CMD, ketikkan berikut (untuk format namenode)
C:\Users\Nidos>hadoop namenode –format
Atau bisa menggunakan (biar tidak deprecated)
C:\Users\Nidos>hdfs namenode –format
Jika Muncul error:
C:\Users\Nidos>hadoop namenode -format
'hadoop' is not recognized as an internal or external
command,operable program or batch file. Solusi: cek
konfigurasi ada yang tidak sesuai
- Tampilan hasil format namenode
Gambar 3.193 Hasil format namenode
149
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Untuk menjalankan hadoop, ketikkan
C:\Users\Nidos>start-all.cmd
Gambar 3.194 Hasil start-all.cmd
Jika muncul berikut:
Klik “Allow access”
150
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Cek pada browser http://lo alhost:
Pa t of
Gambar 3.195 Hasil localhost:50070 ke-1
- Cek pada
o se http://lo alhost:
Pa t of
Gambar 3.196 Hasil Hasil localhost:50070 ke-2
- Cek pada
o se http://lo alhost:
Gambar 3.197 Hasil “http://localhost:8088”
151
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
3.4.1 Konfigurasi dengan Syncfusion
Install Syncfusion Community License Big Data Platform pada
Windows OS:
- “e elu I stall “ fusio Big Data Platfo
, lakuka setti g
file hdfs-site. l . Buka file C:\opt\hadoop-2.7.3\etc\hadoop\hdfs-site. l de ga , isal otepad++, ga ti e jadi seperti berikut
<configuration>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/C:/opt/hadoop-2.7.3/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/C:/opt/hadoop-2.7.3/hdfs/datanode</value>
</property>
</configuration>
- Masuk pada li k https://
u it li e se
.s
fusio . o /do
loads/ o -
Gambar 3.198 Download syncfusion
152
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Klik P o eed to the …
Gambar 3.199 Hasil klik “Proceed to the …”
- Download Big Data Platform, klik Download link ..
Gambar 3.200 Klik “Download link ..”
- I stall s
fusio
igdataplatfo
.e e
Gambar 3.201 Install “syncfusionbigdataplatform.exe”
153
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Ce ta g i ag ee .. , isal lokasi i stal a di C:\Syncfusion\BigData\3.2.0.20\BigDataSDK\ , klik I stall
Gambar 3.202 Hasil klik Install
- Tunggu beberapa waktu, klik Finish
Gambar 3.203 Hasil klik Finish
154
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Klik Launch Studio
Gambar 3.204 Hasil klik Launch Studio
- Jika muncul seperti berikut, Klik OK
Gambar 3.205 Klik OK
- Pada “e i es, ek apakah Syncfusion Big Data Agent dan Remote Agent sudah Running, jika belum, klik kanan, klik Start.
Gambar 3.206 Syncfusion Big Data Agent dan Remote Agent
155
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- View HDFS Explorer dengan Big Data Platform (1 of 4)
Gambar 3.207 Big Data Platform (1 of 4)
- View HDFS Explorer dengan Big Data Platform (2 of 4)
Gambar 3.208 Big Data Platform (2 of 4)
156
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- View HDFS Explorer dengan Big Data Platform (3 of 4)
Gambar 3.209 Big Data Platform (3 of 4)
- View HDFS Explorer dengan Big Data Platform (4 of 4)
Gambar 3.210 Big Data Platform (4 of 4)
157
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- I stall s
fusio
igdata luste .e e , klik I stall dst.
Gambar 3.211 Hasil Install “syncfusionbigdatacluster.exe”
158
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
3.4.2 Konfigurasi dengan Eclipse IDE
- Download Eclipse, double klik, pilih Eclipse IDE for Java EE Dev.
Gambar 3.212 Download Eclipse
- Klik Install
Gambar 3.213 Klik Install
159
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Tunggu beberapa Waktu
Gambar 3.214 Tunggu beberapa Waktu
- Klik Launch, untuk jalankan Eclipse
Gambar 3.215 Klik Launch, untuk jalankan Eclipse
160
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Klik Launch
Gambar 3.216 Klik Launch
- Tunggu beberapa waktu
Gambar 3.217 Tunggu beberapa waktu
161
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Eclipse siap digunakan
Gambar 3.218 Eclipse siap digunakan
- Buat Folder HDFS di CMD (harus satu demi satu)
c:\opt>mkdir a
c:\opt>rm -R a
c:\opt>cd ./hadoop-2.7.3
c:\opt\hadoop-2.7.3>bin\hdfs dfs -mkdir /user
- Ta pila hasil
i \hdfs dfs - kdi /use
Gambar 3.219 Hasil “bin\hdfs dfs -mkdir /user”
162
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Buat Folder HDFS di CMD (harus satu demi satu)
c:\opt\hadoop-2.7.3>bin\hdfs dfs -mkdir /user/hduser
- Ta pila hasil bin\hdfs dfs - kdi /use /hduse
Gambar 3.220 Hasil “bin\hdfs dfs -mkdir /user/hduser”
- Buat Folder HDFS di CMD (harus satu demi satu)
c:\opt\hadoop-2.7.3>bin\hdfs dfs -mkdir /user/hduser/nb
c:\opt\hadoop-2.7.3>bin\hdfs dfs -mkdir
/user/hduser/nb/input
Coba melihat isi folder pada HDFS
c:\opt\hadoop-2.7.3>bin\hdfs dfs -ls /user/hduser
163
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Copyfile local ke Folder HDFS di CMD (Part 1 of 3)
Misal, file pada “C:\data\1.txt”, misal berikut isinya:
- Copyfile local ke Folder HDFS di CMD (Part 2 of 3)
c:\opt\hadoop-2.7.3>bin\hdfs dfs -copyFromLocal
c:\data\1.txt /user/hduser/nb/input
164
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Copyfile local ke Folder HDFS di CMD (Part 3 of 3)
Gambar 3.221 Hasil di HDFS (browser)
- Coba Run koding NB Hadoop, link kode: https://goo.gl/6iA2eA
Pada ‘efe e ed Li a ies list file ja https://goo.gl/z)
,
cara add-nya, sama seperti Eclipse di Linux)
Gambar 3.222 Setting koding NB Hadoop
165
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Koding NB Hadoop berhasil dijalankan
Gambar 3.223 Hasil run koding NB Hadoop
- Cek hasil folder HDFS output dari NB Hadoop:
c:\opt\hadoop-2.7.3>bin\hdfs dfs -ls /user/hduser/nb/output
166
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Menampilkan hasil folder HDFS output dari NB Hadoop:
c:\opt\hadoop-2.7.3>bin\hdfs dfs -cat
/user/hduser/nb/output/part*
- Menghentikan Hadoop:
c:\opt\hadoop-2.7.3>stop-all.cmd
This script is Deprecated. Instead use stop-dfs.cmd and
stop-yarn.cmd
INFO: No tasks running with the specified criteria.
SUCCESS: Sent termination signal to the process with PID
3236. stopping yarn daemons
SUCCESS: Sent termination signal to the process with PID
1556.
SUCCESS: Sent termination signal to the process with PID
3852.
INFO: No tasks running with the specified criteria.
c:\opt\hadoop-2.7.3>jps
7560 Jps
c:\opt\hadoop-2.7.3>
167
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
3.4.3 Konfigurasi dengan Spark
- Download dan Install GNU On WinOS (GOW), jika sudah, lalu
- Download dan Install JDK, jika sudah, lalu
- Download dan Install Anaconda
Cek apakah python sudah aktif di Win OS atau belum
aktif.
Tambahkan link hasil instalasi python dan conda di
folder mana anda install, ke environment variables,
dengan membuka cmd, lalu ketikkan SETX PATH
“%PATH%;C:\Users\Nidos\Anaconda2\Scripts;
C:\Users\Nidos\Anaconda2”
- Masuk ke anaconda prompt, python telah aktif terlihat seperti
berikut
C:\Users\Nidos\Anaconda2>where python
C:\Users\Nidos\Anaconda2\python.exe
C:\Users\Nidos\Anaconda2>where conda
C:\Users\Nidos\Anaconda2\Scripts\conda.exe
168
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Close dan open command line (CMD) dan download Apache Spark
da i http://spa k.apa he.o g/do loads.ht l .
Buat dir “C:\opt\Spark”
C:\Users\Nidos>mkdir C:\opt\Spark
Cek di explorer, masukkan file
“spark-2.2.0-bin-hadoop2.7.tgz”
hasil download ke dalam folder
“C:\opt\Spark”:
Download spark:
Unzip file “spark-2.2.0-bin-hadoop2.7.tgz” di folder
“C:\opt\Spark”
Jalankan di CMD:
C:\Users\Nidos>cd C:\opt\Spark
C:\opt\Spark>gzip -d spark-2.2.0-bin-hadoop2.7.tgz
Lalu jalankan
“C:\opt\Spark>tar xvf spark-2.2.0bin-hadoop2.7.tar” di CMD, tunggu
beberapa saat sampai selesai:
169
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Download file “winutils.exe” dari
“https://goo.gl/dCCpV4” atau dari
“https://github.com/steveloughran/winutils/blob/maste
r/hadoop-2.6.0/bin/winutils.exe?raw=true”, lalu masuk
ke dalam folder “C:\opt\Spark\spark-2.2.0-binhadoop2.7\bin”. Caranya, jalankan di CMD:
Lalu jalankan
“C:\opt\Spark\spark-2.2.0-bin-hadoop2.7\bin>curl
-k
-L
-o
winutils.exe
https://github.com/steveloughran/winutils/blob/master/hadoop2.6.0/bin/winutils.exe?raw=true” di CMD, tunggu beberapa saat sampai
selesai.
- Set environmental variables, dengan perintah berikut pada CMD:
setx SPARK_HOME C:\opt\Spark\spark-2.2.0-bin-hadoop2.7
setx PYSPARK_DRIVER_PYTHON ipython
setx PYSPARK_DRIVER_PYTHON_OPTS notebook
- Ke udia u tuk ;C:\opt\Spark\spark-2.2.0-bin-hadoop2.7\ i ,
ditambahkan dengan: buka Control Panel > Pilih System and Security > Pilih System > Pilih Advanced system settings
Gambar 3.224 Set bin Spark
170
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Verifikasi: pySpark sudah Berjalan?
C:\Users\Nidos>cd..
C:\Users>cd..
C:\>cd opt
C:\opt>cd Spark
C:\opt\Spark>cd spark-2.2.0-bin-hadoop2.7
C:\opt\Spark\spark-2.2.0-bin-hadoop2.7>cd bin
C:\opt\Spark\spark-2.2.0-bin-hadoop2.7\bin>
C:\opt\Spark\spark-2.2.0-bin-hadoop2.7\bin>pyspark
- Verifikasi: Spark Scala sudah Berjalan?
C:\Users\Nidos>spark-shell
3.5 Tugas Kelompok
1. Jelaskan perbedaan dari Distributed dan Parallel Systems,
serta Distributed dan Parallel Processing!
2. Jelaskan maksud dari Hadoop disebut sebagai software
framework dan software platform! Berikan contohnya, dan
jelaskan apa perbedaan antara framework dan platform!
3. Jelaskan maksud dari HDFS (Hadoop Distributed File System)
se agai direktori di komputer da se agai file system !
4. Jelaskan cara kerja MapReduce (MR)!
5. Jelaskan perbedaan antara MR dan YARN!
6. Lakukan Studi Kasus WordCount dengan dokumen yang
berbeda (minimal 25 kata) pada Hadoop Single Node Cluster!
dan berilah penjelasan untuk setiap langkah-langkahnya
disertai screenshot!
7. Modifikasi dari contoh koding untuk Hadoop Single Node
Cluster terkait Clustering atau Regresi atau Klasifikasi, lalu
jala ka sepe ti Studi Kasus WordCount , da
e ilah
171
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
penjelasan untuk setiap langkah-langkahnya disertai
screenshot!
8. Lakukan instalasi Hadoop di Windows, disertai screenshot
setiap langkahnya!
9. Lakukan running kode NB Hadoop dengan Eclipse di
Windows, disertai screenshot setiap langkahnya!
172
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
BAB 4 Teknologi dan Tools
Big Data (Bagian 2)
4.1 Konsep Single (Standalone) Vs
Multi-Node Cluster
Sebuah cluster HDFS terdiri dari namenode untuk mengelola
metadata dari kluster, dan datanode untuk menyimpan data/file.
File dan direktori diwakili pada namenode menyimpan atribut seperti
permission, modifikasi dan waktu akses, atau kuota namespace dan
diskspace.
Namenode aktif memonitor jumlah salinan/replika blok file.
Ketika ada salinan blok file yang hilang karena kerusakan pada
datanode, namenode akan mereplikasi kembali blok file tersebut ke
datanode lainnya yang berjalan baik.
Gambar 4.1 Running Java Process
ResourceManager di node master, yang berfungsi mengatur semua
resource yang digunakan aplikasi dalam sistem.
NodeManager di Agen-Framework setiap node slave, yang
bertanggung jawab terhadap Container, dengan memantau
penggunaan resource/sumber daya dari container(cpu, memori, disk,
jaringan) dan melaporkannya pada ResourceManager .
173
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
4.2 Hadoop Multi Node Cluster
(Pseudo-Distributed)
1. Setting PC Master + (PC Node1, Node2, Node3):
Gambar 4.2 Setting PC Master + (PC Node1, Node2, Node3):
Lakukan hal berikut (Jika mau dicoba setting dari awal):
174
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
nidos@master:~$ sudo apt-get update
nidos@master:~$ sudo apt-get install default-jdk
(cek dengan java -version)
nidos@master:~$ sudo apt-get install ssh
nidos@master:~$ ssh-keygen -t rsa -P ""
nidos@master:~$ Ketikkan “cat
$HOME/.ssh/id_rsa.pub >>
$HOME/.ssh/authorized_keys”
nidos@master:~$ wget
http://mirror.wanxp.id/apache/hadoop/common/hado
op-2.7.3/hadoop-2.7.3.tar.gz
nidos@master:~$ sudo tar xvzf hadoop2.7.3.tar.gz
nidos@master:~$ sudo mv hadoop-2.7.3
/usr/local/hadoop
nidos@master:~$ sudo nano ~/.bashrc
nidos@master:~$ source ~/.bashrc
Source Code 4.1 Setting PC Master + (PC Node1, Node2, Node3):
175
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
nidos@master:~$ sudo nano
/usr/local/hadoop/etc/hadoop/hadoop-env.sh
Ubah “export JAVA_HOME=....” menjadi:
export
amd64
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-
nidos@master:~$ sudo mkdir -p
/usr/local/hadoop_tmp/hdfs/namenode
nidos@master:~$ sudo mkdir -p
/usr/local/hadoop_tmp/hdfs/datanode
nidos@master:~$ sudo chown -R nidos:nidos
/usr/local/hadoop_tmp
pada line terakhir, tambahkan berikut:
“
export
JAVA_HOME=/usr/lib/jvm/java-7-openjdkamd64
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/l
ib/native
export
HADOOP_OPTS="Djava.library.path=$HADOOP_INSTALL/lib/native“
export
HADOOP_CLASSPATH=/usr/lib/jvm/java-7openjdk-amd64/lib/tools.jar
"
Source Code 4.2 Setting PC Master + (PC Node1, Node2, Node3):
Jika memang PC master sudah disetting, atau sudah di-clone
dari PC master dari project Single Node Cluster pertemuan
sebelumnya, maka abaikan langkah-langkah di atas.
176
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Lakukan hal berikut:
-
nidos@master:~$ sudo gedit /etc/hostname
Gambar 4.3 nidos@master:~$ sudo gedit /etc/hostname
-
nidos@master:~$ sudo gedit /etc/hosts
Gambar 4.4 nidos@master:~$ sudo gedit /etc/hosts
177
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Klik
, lalu klik Co
lalu tekan tombol edit
e tio s I fo
atio , pilih Ethe et,
Gambar 4.5 Tampilan Menu
Ubah Method: Automatic (DHCP)
Gambar 4.6 Tampilan Menu Edit
-
Lalu klik Connections Information , lagi
A da sudah e dapatka default route dan Primary DNS
178
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 4.7 Tampilan Connection Information
-
Set IP PC Master, lakukan hal berikut:
Klik
, lalu klik Edit Connections... , lalu teka to
ol edit
Gambar 4.8 Tampilan Menu
-
Lakukan hal berikut
Gambar 4.9 Tampilan Edit Pada Gateway dan DNS Server
179
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
nidos@master:~$ sudo gedit /etc/hosts
Gambar 4.10 Hasil nidos@master:~$ sudo gedit /etc/hosts
Ubah method menjadi: Manual
Gambar 4.11 Tampilan Edit Method Menjadi Manual
180
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Lakukan hal berikut:
nidos@master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/masters
master
nidos@master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/slaves
node1
node2
node3
nidos@master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/hdfs-site.xml
..
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop_tmp/hdfs/namenode</value>
</property>
</configuration>
Source Code 4.3 Setting PC Master
-
Lakukan hal berikut:
nidos@master:~$
sudo
/usr/local/hadoop/etc/hadoop/masters
gedit
Gambar 4.12 Hasil nidos@master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/masters
181
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Lakukan hal berikut:
nidos@master:~$ sudo gedit /usr/local/hadoop/etc/hadoop/slaves
Gambar 4.13 Hasil nidos@master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/slaves
-
Lakukan hal berikut:
nidos@master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/core-site.xml
..
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
Source Code 4.4 Setting PC Master
-
Lakukan hal berikut:
182
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
nidos@master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/mapred-site.xml
..
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>
</configuration>
Source Code 4.5 Setting PC Master
-
Lakukan hal berikut:
nidos@master:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/yarn-site.xml
..
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.resourcetracker.address</name>
<value>master:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8050</value>
</property>
</configuration>
Source Code 4.6 Setting PC Master
183
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
1. Clone PC Master to (PC Node1, Node2, Node3):
- Lakukan hal berikut: (shutdown PC Master, lalu klik kanan, klik
Clone, beri nama node1, klik Next, Pilih Linked, Klik Clone):
Gambar 4.14 Clone PC Master
- Lakukan juga untuk node2 dan node3
2. Setting PC Master
nidos@master:~$ sudo rm -rf
/usr/local/hadoop_tmp/
nidos@master:~$ sudo mkdir -p
/usr/local/hadoop_tmp/hdfs/namenode
nidos@master:~$ sudo chown -R nidos:nidos
/usr/local/hadoop
nidos@master:~$ sudo chown -R nidos:nidos
/usr/local/hadoop_tmp
nidos@master:~$
Gambar 4.15 Setting PC Master
3. Setting PC Node1, Node2 dan Node3:
nidos@node1:~$ sudo rm -rf
/usr/local/hadoop_tmp/
nidos@node1:~$ sudo mkdir -p
/usr/local/hadoop_tmp/hdfs/datanode
nidos@node1:~$ sudo chown -R nidos:nidos
/usr/local/hadoop_tmp/
nidos@node1:~$
Gambar 4.16 Setting PC Node1, Node2 dan Node3:
4. Setting PC Master + (PC Node1, Node2, Node3):
-
Lihat IP PC Master:
184
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 4.17 Tampilan Lihat IP Master
-
Setting IP PC Node1, lakukan hal berikut:
Gambar 4.18 Setting IP PC Node 1
-
Setting IP PC Node2, lakukan hal berikut:
Gambar 4.19 Setting IP PC Node 2
185
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Setting IP PC Node3, lakukan hal berikut:
Gambar 4.20 Setting IP PC Node 3
-
Restart Network disemua PC, lakukan hal berikut:
nidos@master:~$ sudo /etc/init.d/networking
restart
[sudo] password for nidos:
nidos@master:~$ sudo reboot
nidos@node1:~$ sudo /etc/init.d/networking
restart
[sudo] password for nidos:
nidos@master:~$ sudo reboot
nidos@node2:~$ sudo /etc/init.d/networking
restart
[sudo] password for nidos:
nidos@node2:~$
nidos@node3:~$ sudo /etc/init.d/networking
restart
[sudo] password for nidos:
nidos@master:~$ sudo reboot
Source Code 4.7 Restart Network Disemua PC
-
Lakukan hal berikut:
186
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
nidos@node1:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/hdfs-site.xml
.
.
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop_tmp/hdfs
/datanode</value>
</property>
</configuration>
Source Code 4.8 Setting PC Master (Node1, Node2, Node 3)
Lakukan juga untuk node2 dan node3
-
Lakukan hal berikut: nidos@node1:~$
/usr/local/hadoop/etc/hadoop/masters
sudo
gedit
Gambar 4.21 Tampilan nidos@node1:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/masters
Lakukan juga untuk node2 dan node3
- Lakukan hal berikut: nidos@node1:~$
/usr/local/hadoop/etc/hadoop/slaves
sudo
gedit
187
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 4.22 Tampilan nidos@node1:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/slaves
Lakukan juga untuk node2 dan node3
- Lakukan hal berikut:
nidos@node1:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/core-site.xml
..
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
Source Code 4.9 Setting PC Master
Lakukan juga untuk node2 dan node3
nidos@node1:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/mapred-site.xml
..
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>
</configuration>
Source Code 4.10 Setting PC Master
188
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Lakukan juga untuk node2 dan node3
- Lakukan hal berikut:
nidos@node1:~$ sudo gedit
/usr/local/hadoop/etc/hadoop/yarn-site.xml
.
.
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHan
dler</value>
</property>
<property>
<name>yarn.resourcemanager.resourcetracker.address</name>
<value>master:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.addre
ss</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8050</value>
</property>
</configuration>
Source Code 4.11 Setting PC Master
Lakukan juga untuk node2 dan node3
-
Call ssh, lakukan hal berikut:
189
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
nidos@master:~$ ssh
Lalu tekan tombol Tab
::1
fe00::0
ff00::0
ff02::1
ff02::2
ip6-allnodes
ip6-allrouters
ip6-localhost
ip6-localnet
ip6-loopback
ip6-mcastprefix
localhost
master
node1
node2
node3
ubuntu
nidos@master:~$ ssh node1
ssh: connect to host node1 port 22: No route
to host
nidos@master:~$
Source Code 4.12 Call SSH
Jika hasil ssh seperti diatas maka solusinya adalah cek status ssh
sebagai berikut:
Solusi (cek status sshOK):
nidos@master:~$ sudo service ssh status
[sudo] password for nidos:
ssh start/running, process 790
Source Code 4.13 Cek Status SSH Ok
Solusi (cek status sshError):
nidos@node1:~$ sudo service ssh
status
[sudo] password for nidos:
Source Code 4.14 Cek Status SSH Error
Jika muncul: ssh: unrecognized service, maka solusinya re-install ssh dan cek status
190
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Solusi
(re-install
ssh,
dan
cek
statusOK):
nidos@node1:~$
sudo
apt-get
remove
openssh-client openssh-server
nidos@node1:~$
sudo
apt-get
install
openssh-client openssh-server
nidos@node1:~$ sudo service ssh status
ssh start/running, process 3100
Source Code 4.15 Re-install SSH dan Cek Status OK
Lakukan juga untuk node2 dan node3
-
Call ssh untuk node 2, lakukan hal berikut:
nidos@master:~$ ssh
Lalu tekan tombol Tab
::1
fe00::0
ff00::0
ff02::1
ff02::2
ip6-allnodes
ip6-allrouters
ip6-localhost
ip6-localnet
ip6-loopback
ip6-mcastprefix
localhost
master
node1
node2
node3
ubuntu
nidos@master:~$ ssh node2
ssh: connect to host node2 port 22: No route
to host
nidos@master:~$
Source Code 4.16 Call SSH untuk Node 2
Jika hasil ssh seperti diatas maka solusinya adalah cek status
ssh sebagai berikut:
Solusi (cek status sshOK):
191
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
nidos@master:~$ sudo service ssh status
[sudo] password for nidos:
ssh start/running, process 790
Source Code 4.17 Cek Status SSH Ok
Solusi (cek status sshError):
nidos@node1:~$ sudo service ssh
status
[sudo] password for nidos:
Source Code 4.18 Cek Status SSH Error
Jika muncul: ssh: unrecognized service, maka solusinya re-install ssh dan cek status
Solusi (re-install ssh, dan cek statusOK):
nidos@node2:~$ sudo apt-get remove opensshclient openssh-server
nidos@node2:~$ sudo apt-get install opensshclient openssh-server
nidos@node2:~$ sudo service ssh status
ssh start/running, process 3084
Source Code 4.19 Re-Install SSH dan Cek Status
-
Lakukan juga untuk node3
Call ssh untuk node 3, lakukan hal berikut:
nidos@master:~$ ssh
Lalu tekan tombol Tab
::1
fe00::0
ff00::0
ff02::1
ff02::2
ip6-allnodes
ip6-allrouters
ip6-localhost
ip6-localnet
ip6-loopback
ip6-mcastprefix
localhost
master
node1
node2
node3
ubuntu
Source Code 4.20 Call SSH untuk Node 3
192
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
nidos@master:~$ ssh node3
ssh: connect to host node2 port 22: No route
to host
nidos@master:~$
Source Code 4.21 Call SSH untuk Node 3 Cont.
Jika hasil ssh seperti diatas maka solusinya adalah cek status ssh
sebagai berikut:
Solusi (cek status sshOK):
nidos@master:~$ sudo service ssh status
[sudo] password for nidos:
ssh start/running, process 790
Source Code 4.22 Cek Status SSH Ok
Solusi (cek status sshError):
nidos@node1:~$ sudo service ssh
status
[sudo] password for nidos:
Source Code 4.23 Cek Status SSH Error
Jika muncul: ssh: unrecognized service, maka solusinya re-install ssh dan cek status
Solusi (re-install ssh, dan cek statusOK):
nidos@node3:~$ sudo apt-get remove opensshclient openssh-server
nidos@node3:~$ sudo apt-get install opensshclient openssh-server
nidos@node3:~$ sudo service ssh status
ssh start/running, process 3087
Source Code 4.24 Re-Install SSH dan Cek Status
193
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
“olusi
u tuk
e o
ssh:
aste / ode / ode / ode po t
lakukan hal berikut:
o e t
to
host
: No oute to host ,
nidos@master:~$ sudo iptables -P INPUT ACCEPT
(to accept all incoming traffic)
nidos@master:~$ sudo iptables -F
(Clear/flush/remove rule of my iptables)
Source Code 4.25 “olusi u tuk e o
aste / ode / ode / ode po t
ssh: onnect to host
: No oute to host
shutdown all PC, ubah setting network pada virtual box (Pilih
misal klik PC master, lalu klik Network)
Gambar 4.23 Tampilan Ubah Setting Network pada Virtual Box
Kemudian pada Adapte
, pilih I te al Net o k , lalu klik OK
Gambar 4.24 Tampilan pada Adapter 1
194
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Lakukan juga untuk node1, node2 dan node3
-
Coba call lagi ssh-nya node1 dari master, lakukan hal berikut:
nidos@master:~$ ssh node1 / nidos@master:~$ ssh
192.168.2.117
The authenticity of host 'node1
(192.168.2.117)' can't be established.
ECDSA key fingerprint is
87:d8:ac:1e:41:19:a9:1d:80:ab:b6:2c:75:f9:27:8
5.
Are you sure you want to continue connecting
(yes/no)? yes
Warning: Permanently added 'node1' (ECDSA) to
the list of known hosts.
nidos@node1's password:
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux
3.13.0-32-generic x86_64)
* Documentation: https://help.ubuntu.com/
New release '16.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
Last login: Sat Dec 3 13:16:28 2016 from master
nidos@node1:~$ exit
logout
Connection to node1 closed.
Source Code 4.26 Call SSH Node 1 dari Master
Lakukan juga untuk mencoba call ssh-nya node2 dari master
dan call ssh-nya node3 dari master
Gambar 4.25 Tampilan Call SSH
195
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Coba call ssh-nya master dari node1, lakukan hal berikut:
nidos@node1:~$
ssh
master/
nidos@node1:~$ ssh
192.168.2.116
nidos@master's password:
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux
3.13.0-32-generic x86_64)
* Documentation: https://help.ubuntu.com/
631 packages can be updated.
331 updates are security updates.
Last login: Sat Dec 3 13:27:54 2016 from
node1
Source Code 4.27 Call SSH-nya Master dari Node 1
Lakukan juga untuk mencoba call ssh-nya node2 dari master
dan call ssh-nya node3 dari master
Gambar 4.26 Tampilan Call SSH
5. Format namenode dari PC Master:
nidos@master:~$ hdfs namenode –format
196
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 4.27 Format Namenode dari PC Master
-
Copy ssh-id dari PC Master ke semua PC Node:
nidos@master:~$ ssh-copy-id -i
~/.ssh/id_rsa.pub nidos@node1
nidos@master:~$ ssh-copy-id -i
~/.ssh/id_rsa.pub nidos@node2
nidos@master:~$ ssh-copy-id -i
~/.ssh/id_rsa.pub nidos@node3
atau dengan perintah seperti berikut:
nidos@master:~$ ssh-copy-id nidos@node1
nidos@master:~$ ssh-copy-id nidos@node2
nidos@master:~$ ssh-copy-id nidos@node3
Source Code 4.28 SSH ID dari PC Master
Now you will be able to ssh without password.
-
start-dfs.sh lalu start-yarn.sh (atau dengan start-all.sh) dari
PC Master:
nidos@master:~$ start-dfs.sh
197
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 4.28 Tampilan star start-dfs.sh
nidos@master:~$ start-yarn.sh
Gambar 4.29 Tampilan Start-yarn.sh
-
Buka fi efo
http://lo alhost:
:
198
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 4.30 Tampilan http://localhost:50070 di Firefox
Gambar 4.31 Tampilan Datanode Information di Firefox
-
Buka firefox http://lo alhost:
/status.ht l :
199
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 4.32 Tampilan http://localhost:50090/status.html di Fire-
fox
-
Buka fi efo
http://lo alhost:
/ luste :
Gambar 4.33 Tampilan http://localhost:8088/cluster di Firefox
Gambar 4.34 Tampilan Nodes Of the Cluster pada Firefox
6. Membuat Directories di HDFS harus satu demi satu:
- Lakukan hal berikut:
200
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
nidos@master:~$ cd /usr/local/hadoop
nidos@master:/usr/local/hadoop$
bin/hdfs dfs -mkdir /user
nidos@master:/usr/local/hadoop$
bin/hdfs dfs -mkdir /user/nidos
nidos@master:/usr/local/hadoop$
bin/hdfs dfs -mkdir
/user/nidos/wordcount
nidos@master:/usr/local/hadoop$
bin/hdfs dfs -ls /user/nidos
Found 1 items
drwxr-xr-x
- nidos supergroup
Source Code 4.29 Membuat Directories di HDFS
drwxr-xr-x
- nidos supergroup
0 2016-12-05 07:40
/user/nidos/wordcount
nidos@master:/usr/local/hadoop$
bin/hdfs dfs -mkdir
/user/nidos/wordcount/input
Source Code 4.30 Source Code Membuat Directories di HDFS Cont
201
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
4.3 Hadoop Multi Node Cluster (Full
Distributed)
1. Konfigurasi Jaringan
- Setting IP Windows, untuk 1 PC Master + (1 PC Slave sebagai
Node1). Masuk ke, Network and Sharing Center Ethernet
Properties IPv4 Properties
Gambar 4.35 Setting IP Windows ke-1
-
Setting IP, 1 PC Master
Gambar 4.36 Setting IP PC Master
202
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Setting IP, 1 PC Slave
Gambar 4.37 Setting IP PC Slave
Note: IP address untuk setiap PC berbeda
-
Pada PC Master dan Slave, Klik Settings Network
Adapter 1 Pada kolom Attached to pilih NAT OK
Gambar 4.38 Pilih NAT
203
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Pada PC Master, Klik Settings Network Adapter 2
Pada kolom Attached to pilih Bridged Adapter Pilih PCI
OK
Gambar 4.39 Pilih PCI (Master)
-
Pada PC Slave, Klik Settings Network Adapter 2 Pada
kolom Attached to pilih Bridged Adapter Pilih PCI OK
Gambar 4.40 Pilih PCI (Slave)
204
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Pada PC Master, Ketik sudo nano /etc/network/interfaces
-
Gambar 4.41 Ketik sudo .. (Master)
-
Pada PC Slave, Ketik sudo nano /etc/network/interfaces
Gambar 4.42 Ketik sudo .. (Slave)
205
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Pada PC Master dan PC Slave, Ketik sudo ifdown eth1 , lalu
sudo ifup eth1, lalu ifconfig
Gambar 4.43 Ketik sudo ifdown eth1
2. Konfigurasi Hostname dan Hosts
- Pada PC Master, Ketik sudo nano /etc/hostname
Gambar 4.44 Ketik sudo nano /etc/hostname
-
Pada PC Master, Ketik sudo nano /etc/hosts
Gambar 4.45 Ketik sudo nano /etc/hosts
206
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Pada PC Slave, Ketik sudo nano /etc/hostname
Gambar 4.46 Ketik sudo nano /etc/hostname
-
Pada PC Slave, Ketik sudo nano /etc/hosts
Gambar 4.47 Ketik sudo nano /etc/hosts
-
Pada PC Master, Cek Koneksi dengan melakukan perintah
ping pada komputer Slave
Gambar 4.48 Cek Koneksi ke PC Slave
-
Pada PC Slave, Cek Koneksi dengan melakukan perintah ping
pada komputer Master
Gambar 4.49 Cek Koneksi ke PC Master
207
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Pada PC Master, Ketik
doop/et /hadoop/ aste s
sudo
nano
/usr/local/ha-
Gambar 4.50 Ketik sudo a o
/us /lo al/hadoop/et /hadoop/ aste s
-
Pada PC Master, Ketik
doop/et /hadoop/ aste s
sudo
a o
/us /lo al/ha-
Gambar 4.51 Ketik sudo a o
/us /lo al/hadoop/et /hadoop/sla es
3. Konfigurasi file HDFS
- Pada PC Master, Ketik sudo nano /usr/local/hadoop/etc/hadoop/hdfs-site.xml
Gambar 4.52 Ketik sudo nano
/usr/local/hadoop/etc/hadoop/hdfs-site.xml
208
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop_tmp/hdfs/namenode</value>
</property>
</configuration>
-
Pada PC Slave, Ketik sudo nano /usr/local/hadoop/etc/hadoop/hdfs-site.xml
Gambar 4.53 Ketik sudo nano
/usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfsdataenode.data.dir</name>
<value>file:/usr/local/hadoop_tmp/hdfs/datanode</value>
</property>
</configuration>
209
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
4. Konfigurasi file core-site, mapred, yarn
- Pada PC Master dan Slave, Ketik sudo nano /usr/local/hadoop/etc/hadoop/core-site.xml
Gambar 4.54 Ketik sudo nano
/usr/local/hadoop/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
-
Pada PC Master dan Slave, Ketik sudo nano /usr/local/hadoop/etc/hadoop/mapred-site.xml
Gambar 4.55 Ketik sudo nano
/usr/local/hadoop/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>
</configuration>
210
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Pada PC Master dan Slave, Ketik sudo nano /usr/local/hadoop/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.resourcetracker.address</name>
<value>master:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8050</value>
</property>
</configuration>
5. Membuat folder HDFS
- Pada PC Master, Ketik berikut
•
•
•
•
sudo
sudo
sudo
sudo
rm -rf /usr/local/hadoop_tmp/
mkdir -p /usr/local/hadoop_tmp/hdfs/namenode
chown -R hduser /usr/local/hadoop
chown -R hduser /usr/local/hadoop_tmp
Gambar 4.56 Buat namenode
-
Pada PC Slave, Ketik berikut
•
•
•
•
sudo
sudo
sudo
sudo
rm -rf /usr/local/hadoop_tmp/
mkdir -p /usr/local/hadoop_tmp/hdfs/datanode
chown -R hduser /usr/local/hadoop
chown -R hduser /usr/local/hadoop_tmp
Gambar 4.57 Buat datanode
211
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
6. Melakukan Call SSH
- Pada PC Master, Ketik ssh slave. Setelah berhasil login ketik
exit untuk kembali pada PC Master
Gambar 4.58 Call SSH dari PC Master
-
Pada PC Master, Ketik ssh master. Setelah berhasil login ketik
exit untuk kembali pada PC Slave
Gambar 4.59 Call SSH dari PC Slave
-
Pada PC Master, lakukan format namenode, Ketik hdfs
namenode -format
Gambar 4.60 Ketik hdfs namenode -format
212
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Pada PC Master, Ketik start-all.sh
Gambar 4.61 Ketik start-all.sh
-
Cek JPS
Gambar 4.62 JPS pada Master dan Slave
-
Pada PC Master, cek datanode
Gambar 4.63 Cek datanode
Note : localhost untuk pc master = localhost:50070
localhost untuk pc slave = 192.168.56.10:50070
(Menggunakan IP master)
213
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
7. “tudi Kasus Word Count pada PC “la e
- Copy
File
/home/nidos/Desktop/data/File.txt
/user/hduser/inpuWC
ke
Gambar 4.64 Copy File
-
bin/hadoop jar wordcount.jar wordcount /user/hduser/inpuWC /user/hduser/ouputWC
Gambar 4.65 bin hadoop
-
bin/hdfs dfs -cat /user/hduser/ouputWC/part*
Gambar 4.66 bin hdfs
-
Pada PC Slave
Gambar 4.67 Cek pada PC Slave
214
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Hasil wordcount pada PC Slave juga akan tersimpan pada PC
Master
Gambar 4.68 Cek pada PC Master
4.4 Studi Kasus (Sederhana)
1. Menghitung Kemunculan Kata dalam file dokumen:
- Buat file dokumen yang akan diuji (misal):
nidos@master:/usr/local/hadoop$ cd
nidos@master:~$ cd /home/nidos/Desktop/
nidos@master:~/Desktop$ mkdir data
nidos@master:~/Desktop/data$ >> a.txt
nidos@master:~/Desktop/data$ gedit a.txt
Source Code 4.31 Buat File Dokumen Uji
Gambar 4.69 Tampilan Dokumen Uji
215
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Buat file Wo dCou t.ja a :
nidos@master:~/Desktop/data$ cd
/usr/local/hadoop
nidos@master:/usr/local/hadoop$ >>
WordCount.java
nidos@master:/usr/local/hadoop$ gedit
WordCount.java
nidos@master:/usr/local/hadoop$ ls
bin include libexec
logs
README.txt share
etc lib
LICENSE.txt NOTICE.txt
sbin
WordCount.java
Source Code 4.32 File Wordcount.Java
-
Siapkan file *.java (misal WordCount.java Part 1 of 2) untuk
dicompile ke *.jar:
import java.io.IOException;
import java.util.StringTokenizer;
import
org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import
org.apache.hadoop.mapreduce.Mapper;
import
org.apache.hadoop.mapreduce.Reducer;
import
org.apache.hadoop.mapreduce.lib.input.Fil
eInputFormat;
import
org.apache.hadoop.mapreduce.lib.output.Fi
leOutputFormat;
public class WordCount {
public static class TokenizerMapper
extends Mapper<Object, Text,
Text, IntWritable> {
Source Code 4.33 File *.java Part 1
216
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
private final static IntWritable
one = new IntWritable(1);
private Text word = new Text();
public void map(Object key, Text
value, Context context) throws
IOException, InterruptedException {
StringTokenizer itr = new
StringTokenizer(value.toString());
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());
context.write(word, one);
}
}
}
Source Code 4.34 File *.Java Part 2 Cont
-
Siapkan file *.java (misal WordCount.java Part 2 of 2) untuk
dicompile ke *.jar:
public static class IntSumReducer
extends Reducer<Text,
IntWritable, Text, IntWritable> {
private IntWritable result = new
IntWritable();
public void reduce(Text key,
Iterable<IntWritable> values,
Context context
) throws IOException,
InterruptedException {
int sum = 0;
for (IntWritable val : values)
{
sum += val.get();
}
result.set(sum);
context.write(key, result);
}
}
public static void main(String[] args)
throws Exception {
Source Code 4.35 File*.Java Part 2
217
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Configuration conf = new
Configuration();
Job job = Job.getInstance(conf,
"word count");
job.setJarByClass(WordCount.class);
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumReducer.class);
job.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class)
;
FileInputFormat.addInputPath(job,
new Path(args[0]));
FileOutputFormat.setOutputPath(job, new
Path(args[1]));
System.exit(job.waitForCompletion(true) ?
0 : 1);
}
}
Source Code 4.36 File *.Java Part 2 Cont
-
file Wo dCou t.ja a :
Gambar 4.70 Tampilan File wordcount.java
218
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
WordCount.java dicompile ke *.jar:
Lakukan hal berikut:
nidos@master:/usr/local/hadoop$
bin/hdfscom.sun.tools.javac.Main WordCount.java
nidos@master:/usr/local/hadoop$
Gambar 4.71 Tampilan WordCount.Java dalam folder
-
Hasil: nidos@master:/usr/local/hadoop$ jar cf wc.jar WordCount*.class
Gambar 4.72 Hasil nidos@master:/usr/local/hadoop$ jar cf wc.jar
WordCount*.class
-
Copy
file
/home/nidos/Desktop/data/a.txt
ke
/user/hduser/wordcount/input dan Running proses
perhitungan kata dalam file dokumen:
219
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Jika menggunakan hdfs, maka gunakan dfs
Jika menggunakan hadoop, maka gunakan fs
nidos@master:/usr/local/hadoop$ bin/hdfs
dfs -copyFromLocal
/home/nidos/Desktop/data/a.txt
/user/nidos/wordcount/input
Jika folder output sudah ada, maka
sebaiknya membuat output lainnya, misal
“output2”
nidos@master:/usr/local/hadoop$ bin/hadoop
jar wc.jar WordCount
/user/nidos/wordcount/input/a.txt
/user/nidos/wordcount/output
nidos@master:/usr/local/hadoop$ bin/hdfs
dfs -ls /user/nidos/wordcount/output
Found 2 items
-rw-r--r-3 nidos supergroup
0
2016-12-05 08:29
/user/nidos/wordcount/output/_SUCCESS
-rw-r--r-3 nidos supergroup
1189
2016-12-05 08:29
/user/nidos/wordcount/output/part-r-00000
nidos@master:/usr/local/hadoop$ bin/hdfs
dfs -cat /user/nidos/wordcount/output/part*
Source Code 4.37 Running Proses Perhitungan Kata
nidos@master:/usr/local/hadoop$
bin/hdfs
/user/nidos/wordcount/output/part*
dfs
-cat
Gambar 4.73 Tampilan nidos@master:/usr/local/hadoop$ bin/hdfs
dfs -cat /user/nidos/wordcount/output/part*
220
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 4.74 Browse Directory pada Forefox
Gambar 4.75 Browse Directory pada Firefox
221
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 4.76 File Information Pada Firefox
-
-
Siapkan
file,
misal
b.txt,
Copy
/home/nidos/Desktop/data/b.txt
/user/hduser/wordcount/input dan Running
perhitungan kata dalam file dokumen:
Lakukan hal berikut:
file
ke
proses
nidos@master:/usr/local/hadoop$ bin/hdfs
dfs -copyFromLocal
/home/nidos/Desktop/data/b.txt
/user/nidos/wordcount/input
Menjalankan JAR untuk wordcount untuk
satu file dalam satu folder (misal file
b.txt):
nidos@master:/usr/local/hadoop$
bin/hadoop jar wc.jar WordCount
/user/nidos/wordcount/input/b.txt
/user/nidos/wordcount/output2
Atau, menjalankan JAR untuk wordcount
untuk semua file dalam satu folder (file
a.txt dan b.txt):
nidos@master:/usr/local/hadoop$
bin/hadoop jar wc.jar WordCount
/user/nidos/wordcount/input/
/user/nidos/wordcount/output2
Cara menghapus folder HDFS (misal hapus
folder /user/nidos/wordcount/output):
nidos@master:/usr/local/hadoop$ hadoop fs
-rm -r -f /user/nidos/wordcount/output
Source Code 4.38 Menjalankan JAR untuk wordcount untuk satu file
dalam satu folder
222
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
4.5 Studi Kasus (Run Kode Program)
Running Code Program Pada Hadoop Single/Multi Node
Cluster Pada Linux:
-
Klasifikasi: NB, KNN
-
Clustering: K-Means
-
WordCount: Load+Simpan Hasil di HDFS Folder (Pert. Ke12-13)
-
WordCount: Load+Simpan Hasil di NoSQL (MongoDB)
-
Movie Ratings: Load di HDFS Folder+Simpan Hasil di
NoSQL (MongoDB)
4.5.1 Klasifikasi: NB dengan Terminal
1. Siapkan
semua
file
*.java
(dari
Naive_Bayes_Classifier_MapReduce,
link
https://goo.gl/CEdr2R ) untuk dicompile ke *.jar:
algoritma
kode:
Gambar 4.77 File *.java dari Algoritma
Naive_Bayes_Classifier_MapReduce
cek pada setiap file *.java tersebut, apakah terdapat
package atau tidak
2. Jika tidak terdapat package, langsung file *.java tersebut
dicopy-paste ke folder /usr/local/hadoop
223
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 4.78 Folder /usr/local/hadoop
NBCDriver.java
NBCMap.java
NBCReduce.java
3. Jika
ada
package- a,
isal
pa kage
o ati g
o ies. idos; ,
aka
o ati g
o ies. idos
asi g-masing akan menjadi
folde o ati g
o ies , lalu idos .
RatingCounterByMovieMongo.java
package comratingbymovies.nidos;
import
org.apache.hadoop.conf.Configuration;
.....
...
public class RatingCounterByMovieMongo
extends Configured implements Tool{
public int run(String[] args) throws
Exception {
....
..
System.exit(res);
}
}
Source Code 4.39 RatingCounterByMovieMongo.java
4. Maka di folde
/us /lo al/hadoop , aka
o ati g
o ies/ idos a g e isi file
ada folde
224
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 4.79 File *.java
‘ati gCou te B Mo ieMo go.ja a , da file *.ja a
lainnya yang memang memiliki package yang sama.
5. Jika pada file *.java tidak ada package-nya, maka di folder
/us /lo al/hadoop , aka la gsu g diisi de ga se ua file
*.java tersebut
Copy-Paste
Gambar 4.80 File *.java pada Folder Hadoop
6. Lakukan perintah (Membuat file *.class):
nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main *.java
Note: NBCDriver.java uses or overrides a
deprecated API.
Note: Recompile with -Xlint:deprecation for
details.
Source Code 4.40 File *.class
225
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 4.81 File *.class pada Folder Hadoop
7. Lakukan perintah (Membuat file *.class *.jar):
nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main *.java
Note: NBCDriver.java uses or overrides a
deprecated API.
Note: Recompile with -Xlint:deprecation
for details.
Atau bisa dengan
nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main Xlint:deprecation *.java
nidos@master:/usr/local/hadoop$ jar cf
NB.jar *.class
NBCDriver.java:16: warning: [deprecation]
Job(Configuration) in Job has been deprecated
Job job = new Job(conf);
^
1 warning
Buat folde HDF“,
da
i put
nidos@master:/usr/local/hadoop$ bin/hdfs
dfs -mkdir /user/nidos/nb
nidos@master:/usr/local/hadoop$ bin/hdfs
dfs -mkdir /user/nidos/input
-copyFromLocal, misal file .t t ada difolde
“/home/nidos/Desktop/kode/Naive_Bayes_Clas
sifier_MapReduce/input” “1.txt” sebagai
data training
nidos@master:/usr/local/hadoop$ bin/hadoop
jar NB.jar NBCDriver Urgent,Yes,Yes
/user/nidos/nb/input/1.txt
/user/nidos/nb/output
Source Code 4.41 Membuat file *.class *.jar
226
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
8. Hasil 1 of 2:
Gambar 4.82 Hasill 1 of 2
9. Hasil 2 of 2:
Gambar 4.83 Hasil 2 of 2
227
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
4.5.2 Klasifikasi: NB dengan Eclipse
- Tampilan
NBbyArgument
https://goo.gl/QhQ
pada
Eclipse,
link
kode:
Gambar 4.84 NBbyArgument pada Eclipse
- Pada ‘efe e ed Li a ies list file ja
https://goo.gl/z)
:
/usr/local/hadoop/share/hadoop/common/hadoop-common2.7.3.jar
/usr/local/hadoop/share/hadoop/common/hadoop-common2.7.3-tests.jar
/usr/local/hadoop/share/hadoop/common/hadoop-nfs2.7.3.jar
/usr/local/hadoop/share/hadoop/mapreduce/hadoopmapreduce-client-app-2.7.3.jar
.
.
/usr/local/hadoop/share/hadoop/common/lib/xz-1.0.jar
/usr/local/hadoop/share/hadoop/common/lib/zookeeper3.4.6.jar
228
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- ‘u
i g NB A gu e t :
Pada NBCDriver.java terdapat “args[0], args[1],
args[2]”
Gambar 4.85 Running “NBbyArgument” ke-1
- ‘u
i g NB A gu e t :
Klik Kanan Project “NBbyArgument”, Klik “Run As”,
Klik “RunConfigurations..”
Gambar 4.86 Running “NBbyArgument” ke-2
229
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- ‘u
i g NB A gu e t :
Pada Java Application, jika belum ada “NB”, bisa
dibuat dengan klik
Buat nama, misal ”NB”, lalu pada “MainClass” isikan
“org.myhadoop.trainings.NBCDriver”
Gambar 4.87 Running “NBbyArgument” ke-3
- ‘u
i g NB A gu e t :
Dan pada Tab “Arguments” isikan “Urgent,Yes,Yes
hdfs://localhost:9000/user/hduser/nb/input/1.txt
hdfs://localhost:9000/user/hduser/nb/output2”
Gambar 4.88 Running “NBbyArgument” ke-4
230
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- ‘u
i g NB A gu e t :
hdfs://localhost:9000/user/hduser/nb/output2”
Jika sudah digunakan, ketika di klik “Run” akan
muncul error seperti berikut:
“Output directory
hdfs://localhost:9000/user/hduser/nb/output2 already
exists”
Gambar 4.89 Running “NBbyArgument” ke-5
- ‘u
i g NB A gu e t :
args[2] =
hdfs://localhost:9000/user/hduser/nb/output3
Klik Apply, Klik Run
Gambar 4.90 Running “NBbyArgument” ke-6
231
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- ‘u
i g NB A gu e t :
args[2] =
hdfs://localhost:9000/user/hduser/nb/output3
Klik Apply, Klik Run, berikut tampilan jika berhasil
dijalankan
Gambar 4.91 Running “NBbyArgument” ke-7
- ‘u
i g NB A gu e t :
args[2] =
hdfs://localhost:9000/user/hduser/nb/output3
Klik Apply, Klik Run, berikut tampilan jika berhasil
dijalankan & hasil klasifikasinya
Gambar 4.92 Running “NBbyArgument” ke-8
232
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Tampilan
NBtanpaArgument
https://goo.gl/ofB Kg
di
Eclipse,
link
kode:
Kode yang diubah:
conf.set("test_input", args[0]); conf.set("test_input",
"Urgent,Yes,Yes");
FileInputFormat.setInputPaths(job, new Path(args[1]));
FileInputFormat.setInputPaths(job, new
Path("hdfs://localhost:9000/user/hduser/nb/input/1.txt"));
FileOutputFormat.setOutputPath(job, new Path(args[2]));
FileOutputFormat.setOutputPath(job, new
Path("hdfs://localhost:9000/user/hduser/nb/output4"));
Gambar 4.93 Running “NBtanpaArgument” ke-1
- Running NBta paA gu e t :
Set “Run Configuration”, klik Apply, klik Run
Gambar 4.94 Running “NBtanpaArgument” ke-2
233
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- ‘u
i g NBta paA gu e t :
Hasil “Run Configuration”, klik Apply, klik Run
Gambar 4.95 Running “NBtanpaArgument” ke-3
- ‘u
i g NBta paA gu e t :
Hasil “Run Configuration”, klik Apply, klik Run, dan
hasil klasifikasinya
Gambar 4.96 Running “NBtanpaArgument” ke-4
234
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
4.5.3 Clustering: K-Means
1. Siapkan semua file *.java (dari algoritma K-Means, link kode:
https://goo.gl/N0QjY8 ) untuk dicompile ke *.jar:
Gambar 4.97 File *.java dari Algoritma K-Means
dala
folde
mapreduce , se ua file ja a-nya
te dapat pa kage o . luste i g. ap edu e , da dala
folde
model , se ua file ja a-nya terdapat package
o . luste i g. odel , jadi op paste-nya ke folder
/us /lo al/hadoop ulai da i folde o
2. Jika pada file *.java yang ada package-nya sesuai penjelasan
se elu
a,
aka di folde
/us /lo al/hadoop , aka
la gsu g diisi de ga folde o te se ut
Gambar 4.98 Folder Com
3. Lakukan perintah (Membuat file *.class):
235
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main com/clustering/map
reduce/*.java com/clustering/model/*.java
Source Code 4.42 Membuat File *.class
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Gambar 4.99 File *.class
nidos@master:/usr/local/hadoop$
jar
cf
KMeans.jar com/clustering/mapreduce/*.class
com/clustering/model/*.class
Gambar 4.100 File KMeans.jar
Dimana:
nidos@master:/usr/local/hadoop$ bin/hadoop jar
KMeans.jar
com/clustering/mapreduce/KmeansClusteringJob
sebagai main class
236
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
4. Hasil 1 of 2:
Gambar 4.101 Hasil 1 of 2
5. Siapkan semua file *.java (dari algoritma K-Means, link kode:
https://goo.gl/N0QjY8 ) untuk dicompile ke *.jar:
Gambar 4.102 Folder mapreduce dan model
dala folde mapreduce , se ua file ja a-nya terdapat
pa kage o . luste i g. ap edu e , da dala folde
model , se ua file ja a-nya terdapat package
o . luste i g. odel , jadi op paste-nya ke folder
/us /lo al/hadoop ulai da i folde o
6. Jika pada file *.java yang ada package-nya sesuai penjelasan
se elu
a,
aka di folde
/us /lo al/hadoop , aka
langsung diisi dengan folde o te se ut
237
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 4.103 Folder com dalam folder hadoop
7. Lakukan perintah (Membuat file *.class):
nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main
com/clustering/mapreduce/*.java
com/clustering/model/*.java
Note: Some input files use or override a
deprecated API.
Note: Recompile with -Xlint:deprecation for
details.
Source Code 4.43 Membuat File *.class
Gambar 4.104 File *.class
8. Lakukan perintah (Membuat file *.class *.jar):
238
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
nidos@master:/usr/local/hadoop$
jar
cf
KMeans.jar com/clustering/mapreduce/*.class
com/clustering/model/*.class
Source Code 4.44 Perintah Membuat file *.class *.jar
Gambar 4.105 File KMeans.jar
9. Hasil 1 of 2:
Gambar 4.106 Hasil 1 of 2
10. Hasil 2 of 2:
239
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 4.107 Hasil 2 of 2
4.6 Tugas Kelompok
1. Jelaskan perbedaan dari Hadoop Single Node Cluster dan
Hadoop Multi Node Cluster!
2. Lakukan Studi Kasus WordCount dengan dokumen yang
berbeda (minimal 25 kata) pada Hadoop Multi Node Cluster!
dan berilah penjelasan untuk setiap langkah-langkahnya
disertai screenshot!
3. Berdasarkan penjelasan pada materi, jelaskan hasil
perbedaan jika dijalankan (a) dan jika dijalankan (b).
a. Menjalankan JAR untuk wordcount untuk
satu file dalam satu folder (misal file
b.txt):
nidos@master:/usr/local/hadoop$ bin/hadoop
jar wc.jar WordCount
/user/nidos/wordcount/input/b.txt
/user/nidos/wordcount/output2
b. Atau, menjalankan JAR untuk wordcount
untuk semua file dalam satu folder (file
a.txt dan b.txt):
nidos@master:/usr/local/hadoop$ bin/hadoop
jar wc.jar WordCount
/user/nidos/wordcount/input/
/user/nidos/wordcount/output2
4. Buatlah koding untuk Hadoop Multi Node Cluster terkait
Clustering atau Regresi atau Klasifikasi, lalu jalankan seperti
240
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
“tudi Kasus WordCount , da
e ilah pe jelasa u tuk
setiap langkah-langkahnya disertai screenshot!.
5. Jala ka kode Cluste i g: K-Mea s de ga E lipse!
6. Siapkan semua file *.java (dari algoritma KNN, link
kode: https://goo.gl/egu7qk ) untuk dicompile ke *.jar
Lakukan pengujian dengan data testing bebas, sesuai dengan
fitur yang digunakan dengan Terminal atau dengan Eclipse!
241
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
BAB 5 Analitik Data Tingkat
Lanjut (Clustering)
5.1 Konsep Clustering
Cluster data diartikan kelompok, dengan demikian pada
dasarnya analisis cluster akan menghasilkan sejumlah cluster
(kelompok). Analisis ini diawali dengan pemahaman bahwa sejumlah
data tertentu sebenarnya mempunyai kemiripan di antara
anggotanya. Karena itu, dimungkinkan untuk mengelompokkan
anggota-anggota yang mirip atau mempunyai karakteristik yang
serupa tersebut dalam satu atau lebih dari satu cluster.
Terdapat dua metode yang digunakan dalam konsep clustering diantaranya:
1. Hierarchical Clustering
Hierarchical clustering adalah suatu metode
pengelompokan data yang dimulai dengan mengelompokkan
dua atau lebih obyek yang memiliki kesamaan paling dekat.
Berikut ilustrasi metode hierarchical clustering yang ditunjukkan oleh Gambar 3.1.
Gambar 5.1 Konsep Hierarchical Clustering
2. Non-Hierarchical Clustering
Metode non-hierarchical clustering justru dimulai
dengan menentukan terlebih dahulu jumlah cluster yang
diinginkan (dua cluster, tiga cluster, atau lain sebagainya).
242
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Contoh metodenya adalah k-means clustering. Berikut ilustrasi konsep non-hierarchical clustering yang ditunjukkan oleh
Gambar 3.2.
Gambar 5.2 Konsep Non-Hierarchical Clustering
5.2 K-Means vs Kernel K-means
K-means clustering merupakan salah satu metode data
clustering non-hirarki yang mengelompokan data dalam bentuk satu
atau lebih cluster (kelompok). Data-data yang memiliki karakteristik
yang sama dikelompokan dalam satu cluster (kelompok) dan data
yang memiliki karakteristik yang berbeda dikelompokan dengan
cluster (kelompok) yang lain sehingga data yang berada dalam satu
cluster (kelompok) memiliki tingkat variasi yang kecil
Langkah-langkah melakukan clustering dengan metode kmeans adalah sebagai berikut:
1. Tentukan jumlah cluster k.
2. Inisialisasi k pusat cluster ini bisa dilakukan dengan berbagai
cara. Namun yang paling sering dilakukan adalah dengan cara
random (acak).
3. Alokasikan semua data atau obyek ke cluster terdekat
berdasarkan jarak kedua obyek tersebut (jarak Euclidean) yang
ditunjukan oleh persamaan 3.1 berikut:
243
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
D xi , x j
x
i1
x j1 xi 2 x j 2 .. xid x jd
2
2
2
(3.1)
4. Hitung kembali pusat cluster dengan keanggotaan cluster yang
sekarang menggunakan persamaan 3.2 berikut:
Ci1
1
mi
(3.2)
x
mi
j 1
j1 ....... Cid
1
mi
x
mi
j 1
jd
5. Jika pusat cluster tidak berubah lagi maka proses clustering
selesai atau kembali ke langkah nomor 3 sampai pusat cluster
tidak berubah.
K-means adalah algoritma unsupervised learning yang
membagi kumpulan data ke dalam sejumlah cluster (kelompok).
Akan tetapi k-means clustering memiliki kelemahan di dalam
memproses data yang berdimensi banyak khususnya untuk data
yang bersifat non-linierly separable. Sedangkan dalam dunia nyata
saat ini, data yang tersedia atau yang diperoleh memiliki dimensi
yang banyak dan bervariasi. Dalam hal ini, penambahan fungsi kernel
pada input data clustering merupakan pilihan yang baik.
Kita dapat menggunakan beberapa jenis transformasi pada
data, dengan memetakan data pada ruang baru dimana machine
learning dapat digunakan. Fungsi kernel memberikan kepada kita
sebuah alat untuk mendefinisikan transformasi.
k xi , x j xi x j c
1. Kernel Polynomial
d
(3.3)
2. Kernel RBF
x x
i
j
k xi , x j exp
2
2
2
(3.4)
Pada umumnya, perluasan dari k-means ke kernel k-means
direalisasi melalui pernyataan jarak dalam bentuk fungsi kernel.
Dengan menggunakan Jarak Euclidean pada tradisional k-means dan
fungsi pemetaan Φ, maka algoritma k-means clustering dapat diubah
menjadi :
1. Tentukan jumlah cluster k.
244
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
2. Inisialisasi k pusat cluster ini bisa dengan berbagai cara. Namun
yang sering dilakukan adalah dengan cara random (acak).
3. Alokasikan semua data atau obyek ke cluster terdekat
berdasarkan jarak yang dihitung menggunakan rumus fungsi
pemetaan Φ dan fungsi kernel.
min uij
n
m
i 1 j 1
( xi ) c~j
2
(3.5)
Keterangan:
c~j
merupakan
cluster
centers
dan
dihitung
dengan
menggunakan rumus :
1
c~j
nj
u (x )
n
i 1
ij
i
(3.6)
Sehingga jika dijabarkan persamaan 3.5 menjadi :
1 n
min u ( x )
ulj ( xl )
i
n j l 1
n
2
m
i 1 j 1
ij
n m
1 n
min uij ( xi ) ulj ( xl )
n j l 1
i 1 j 1
n
( xi ) 1 ulj ( xl )
n j l 1
2
1 n
( xi ) n
ulj ( xl )
ulj ( xl )
min uij ( xi ). ( xi ) 2
n l
n l
i 1 j 1
j 1
j 1
n
m
n
m
1 n
1 n n
2
min uij K ( xi , xi ) 2
ulj K ( xl , xi )
ulj K ( xl , x p )
n l
n 2 l
p
1
1
1
i 1 j 1
j
j
n m
1 n
1 n n
2
ulj K ( xl , x p )
min uij K ( xi , xi ) 2 ulj K ( xl , xi )
2
n l 1
n l 1 p 1
i 1 j 1
j
j
Keterangan:
n = Jumlah data.
m = Jumlah cluster.
K = Fungsi kernel.
xi = Titik data ke-i.
xl = Titik data ke-l.
245
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
= Titik data ke-p.
= Index untuk keseluruhan data.
= Index untuk cluster.
= Index untuk data yang terdapat pada cluster ke-i.
= Index untuk data yang terdapat pada cluster ke-j.
=Nilai keanggotaan data ke-i terhadap cluster ke-j.
Bernilai 1 apabila merupakan anggota, bernilai 0 jika
bukan merupakan anggota dari cluster yang diproses.
ulj = Nilai keanggotaan data ke-l terhadap cluster ke-j
= Fungsi yang memetakan titik x ke ruang baru yang
berdimensi lebih tinggi.
nj = Banyaknya data pada cluster ke-j.
4. Setelah mendapat jarak titik data terhadap masing-masing
cluster pada langkah 3, jarak terdekat titik data dengan suatu
cluster berarti titik data tersebut termasuk dalam cluster
tersebut.
5. Perhatikan kondisi berhenti, misal jika pusat cluster tidak
berubah lagi maka proses clustering selesai. Atau, kembali ke
langkah nomor 3 sampai pusat cluster tidak berubah.
xp
i
j
l
p
uij
Kondisi Berhenti (Termination Condition)
Langkah selanjutnya adalah menentukan apakah diperlukan
iterasi selanjutnya atau tidak (stop condition).
a. Jumlah Iterasi Maksimum
b. Fungsi Obyektif dan Threshold
Fungsi obyektif dihitung dan nilai threshold pada sistem ini diperoleh
dari masukan user.
F a ji D( x j , Ci )
ndata k
j 1 i 1
(3.7)
Keterangan:
F = Fungsi Objektif k = Jum. cluster. ndata = Jum. data.
aji = Nilai keanggotaan data ke-j terhadap cluster ke-i.
D(xj,Ci) = Jarak antara titik data ke-j terhadap cluster ke-i.
delta Fbaru Flama
(3.8)
246
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Keterangan:
Fbaru
=
Fungsi obyektif dari iterasi ke-i.
Flama
=
Fungsi obyektif dari iterasi ke-(i-1).
Jika delta ≥ threshold, maka iterasi berlanjut. Jika delta <
threshold, maka iterasi berhenti.
Hasil clustering data 2 dimensi dengan menggunakan k-means
Vs Kernel k-means clustering (Chitta, Radha, Rong Jin, Timothy C. Havens, dan Anil K. Jain., 2011):
Gambar 5.3 K-Means
Gambar 5.4 Kernel K-Means
Dari Gambar diatas terbukti bahwa Kernel K-mean clustering
dapat digunakan untuk menyelesaikan cluster yang komplek.
Analisis Cluster
Analisis cluster berkepentingan dengan penggolongan hasil
kelompok yang sudah didapatkan. Atau menyiapkan draft nama atau
label yang tepat untuk kelompok tersebut. Sedangkan analisis faktor
berkepentingan dengan penggolongan ciri-ciri yang dipunyai oleh
masing-masing objek atau data yang diolah untuk dikelompokkan.
Untuk Visualisasi Hasil mapping data pada Kernel k-means:
247
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 5.5 Visualisasi Hasil Mapping Data Kernel K-means
5.3 Studi Kasus
Diketahui data 2 dimensi yang ditunjukkan oleh Tabel 3.1 berikut:
Tabel 5.1 Contoh Data 2 Dimensi
No.
X
Y
Cluster
No.
X
Y
Cluster
1
0.50
0.00
1
37
8.60
12.29
2
2
3
0.48
0.43
0.13
0.25
2
2
38
7.49
12.99
1
39
6.33
13.60
2
4
0.35
0.35
2
40
5.12
14.10
2
5
6
0.25
0.13
0.43
0.48
1
1
41
3.87
14.49
2
7
0.00
0.50
2
42
2.60
14.77
1
43
1.30
14.94
2
8
9
-0.13
-0.25
0.48
0.43
2
1
44
-0.01
15.00
1
10 -0.35
0.35
1
45
-1.32
14.94
1
11 -0.43
12 -0.48
0.25
0.13
1
2
46
-2.62
14.77
2
47
-3.89
14.49
1
13 -0.50
0.00
2
48
-5.14
14.09
1
14 -0.48
-0.13
2
49
-6.35
13.59
1
15 -0.43
16 -0.35
-0.25
-0.35
2
1
50
-7.51
12.98
2
51
-8.61
12.28
1
17 -0.25
-0.43
2
18 -0.13
19 0.00
-0.48
-0.50
2
1
52
20
-0.48
1
0.13
-9.65
11.48
1
53 -10.62
10.60
2
54 -11.50
9.63
1
55 -12.30
8.59
2
21
22
0.25
0.35
-0.43
-0.35
1
1
56 -13.00
7.49
2
23
0.43
-0.25
2
57 -13.60
6.32
2
24
25
0.48
0.50
-0.13
0.00
2
2
58 -14.10
5.11
1
59 -14.49
3.87
2
No.
X
Y
Cluster
71 -10.59 -10.62
2
72 -9.62 -11.51
1
73 -8.58 -12.30
2
74 -7.48 -13.00
2
75 -6.32 -13.61
1
76 -5.11 -14.10
1
77 -3.86 -14.50
1
78 -2.58 -14.78
2
79 -1.28 -14.95
1
80
0.03 -15.00
1
81
1.34 -14.94
1
82
2.63 -14.77
1
83
3.91 -14.48
2
84
5.16 -14.08
2
85
6.37 -13.58
2
86
7.53 -12.97
2
87
8.63 -12.27
2
88
9.67 -11.47
1
89 10.63 -10.58
2
90 11.51 -9.62
1
91 12.31 -8.58
1
92 13.01 -7.47
1
93 13.61 -6.31
2
94 14.11 -5.10
2
95 14.50 -3.85
1
96 14.78 -2.57
1
188
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
26 15.00
0.00
2
60 -14.78
2.59
1
27 14.94
28 14.77
1.31
2.61
1
2
61 -14.94
1.29
2
62 -15.00
-0.02
1
29 14.49
3.88
1
63 -14.94
-1.33
2
30 14.09
31 13.59
5.13
6.34
1
1
64 -14.77
-2.62
1
32 12.99
7.50
1
65 -14.48
-3.90
2
66 -14.09
-5.15
2
67
68
69
70
-6.36
-7.52
-8.62
-9.66
1
1
1
2
33 12.29 8.61
34 11.49 9.65
35 10.60 10.61
36
9.64
2
1
2
11.49
2
-13.59
-12.98
-12.27
-11.48
97
98
14.95
15.00
-1.27
0.04
2
1
Visualisasi Data 2 DImensi
1
2
3
4
5
.
97
98
X
Y
0.50 0.00
0.48 0.13
0.43 0.25
0.35 0.35
0.25 0.43
.
.
14.95 -1.27
15.00 0.04
Cluster
1
2
2
2
1
.
2
1
20
10
0
X
No.
-20
-10
0
10
20
-10
-20
Y
Gambar 5.6 Visualisasi Data 2 Dimensi
Keterangan:
Langkah-langkah penyelesaian dengan Kernel K-Means:
Misal dengan kernel Polynomial k xi , x j xi x j c
d
1. Tentukan jumlah cluster k = 2. Iterasi maksimum (tmax) = 5, dan nilai
threshold = 0.05.
2. Inisialisasi k pusat cluster. Misal dilakukan inisialisasi secara
random nilai indek clusternya (1 atau 2, pada kolom cluster) dari
semua data.
189
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
3. Alokasikan semua data atau obyek ke cluster terdekat berdasarkan
jarak yang dihitung menggunakan rumus fungsi pemetaan Φ dari
fungsi kernel.
Mulai masuk pada iterasi ke-1 (t = 1). Sebelum dilakukan
pengalokasian data ke cluster terdekat, lakukan perhitungan
centroid masing-masing cluster dari hasil pemetaan Φ.
Menghitung Centroid Cluster
1
c~j
nj
u (x )
n
k xi , x j xi x j c
i 1
ij
i
d
fungsi pemetaan Φ = (X2, √2XY, Y2)
Contoh hasil perhitungan dari fungsi pemetaan Φ ditunjukan pada
Tabel 3.2.
Tabel 5.3
Tabel 5.2 xi
No.
1
.
97
98
X
Y
Cluster
0.50
.
14.95
15.00
0.00
.
-1.27
0.04
1
.
2
1
No.
X
Y
( xi )
2
Cluster
X
1
.
2
1
0.25
1 0.50 0.00
. .
.
97 14.95 -1.27
98 15.00 0.04
Y
0.00
0.00
Menghitung Centroid Setiap Cluster
Untuk melakukan perhitungan centroid setiap cluster kelompokan data berdasarkan clusternya dan hitung fungsi pemetaannya
seperti yang ditunjukkan oleh Tabel berikut:
Tabel 5.4 Fungsi Pemetaan Cluster 1
2
Data
X
Y
Cluster
X
1
0.50
0.00
1
0.25
2
0.25
0.43
1
0.06
3
0.13
0.48
1
4
-0.25
0.43
1
.
.
.
48
14.78
-2.57
√ XY
2
Y
0.00
0.00
0.15
0.19
0.02
0.09
0.23
0.06
-0.15
0.19
.
.
.
.
1
218.40
-53.68
6.60
190
2
√2.X.Y
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
49
15.00
0.04
Total
1
225.00
0.80
0.00
49
4312.54
1.63
4240.21
Tabel 5.5 Fungsi Pemetaan Cluster 2
2
2
Data
X
Y
Cluster
X
√2XY
Y
1
0.48
0.13
2
0.23
0.09
0.02
2
0.43
0.25
2
0.19
0.15
0.06
3
0.35
0.35
2
0.12
0.18
0.13
4
0.00
0.50
2
0.00
0.00
0.25
.
.
.
.
.
.
.
48
14.11
-5.10
2
199.02
-101.68
25.98
49
14.95
-1.27
2
223.39
-26.85
1.61
49
4018.97
-1.22
3859.54
Total
Setelah diperoleh fungsi pemetaan dari seluruh data pada setiap cluster langkah selanjutnya adalah menghitung centroid cluster dengan
menggunakan persamaan 3.6.
centroid cluster 1 pada iterasi 1:
4312.54 / 49 88.01
~
c1 1.63 / 49 0.03
4240.21 / 49 86.53
centroid cluster 2 pada iterasi 1:
4018.97 / 49 82.02
~
c1 - 1.22 / 49 - 0.02
3859.54 / 49 78.77
Setelah diperoleh centroid dari setiap cluster alokasikan
semua data atau obyek ke cluster terdekat menggunakan persamaan
3.5 yang telah dijabarkan sebagai berikut:
n m
1 n n
1 n
2
min uij K ( xi , xi ) 2 ulj K ( xl , xi )
u
(
K
,
x
x
)
lj
l
p
n 2 l 1 p 1
n l 1
i 1 j 1
j
j
a
b
c
191
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Untuk memudahkan dalam perhitungan, persamaan di atas
dibagi menjadi 3 bagian yaitu a, b, dan c. Sebagai contoh, berikut ini
ditampilkan perhitungan jarak antara data 1 terhadap cluster 1.
Diketahui :
i=1
j=1
xi = (0.50, 0.00)
Untuk menghitung bagian a:
K(xi, xi) = (xi.xi + c)d
=(
.
.
.
.
.
+ 0)2
= (((0.50 x 0.50)+(0.00 x 0.00)) + 0)2
= 0.0625
Setelah diperoleh nilai a langkah selanjutnya adalah menghitung fungsi kernel antara data i terhadap seluruh data pada cluster j
untuk dapat dilakukan perhitungan terhadap nilai b. untuk contoh
perhitungan ini perhitungan dilakukan antara data 1 terhadap seluruh
data yang terdapat pada cluster. Sebagai contoh diambil satu data
pada cluster j yaitu data 2:
xl
= (0.25, 0.43)
K(xi, xl) = (xi.xl + c)d
=(
.
.
.
.
.
+ 0)2
= (((0.50 x 0.25)+(0.00 x 0.43)) + 0)2
= 0.016
Hasil perhitungan fungsi kernel antara data i terhadap seluruh
data pada cluster 1 ditunjukkan oleh Tabel 3.6 berikut:
Tabel 5.6 Nilai Kernel data i terhadap semua data cluster 1 iterasi 1
No.
xl
K(xi, xl)
1
0.5, 0
0.0625
2
0.25, 0.43
0.015625
3
0.13, 0.48
0.004225
4
-0.25, 0.43
0.015625
192
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
.
.
.
48
14.78, -2.57
54.6121
49
15, 0.04
56.25
Total
1078.15
Setelah diperoleh total nilai fungsi kernel antara data i
terhadap seluruh data pada cluster j untuk dapat dilakukan perhitungan nilai b.
b
= -2(baris (Total)) / jumlah data pada cluster j
= -2(1078.15) / 49
= -44.006
Setelah diperoleh nilai b selanjutnya yaitu menghitung c. Untuk
memperoleh c terlebih dahulu dilakukan penjumlahan nilai fungsi
kernel antar data pada cluster j. Sebagai contoh diambil satu data pada
cluster j yaitu:
xl
= (0.25, 0.43)
K(xl, xl) = (xl.xl + c)d
.
.
=(
.
.
.
+ 0)2
= (((0.25 x 0.25)+(0.43 x 0.43)) + 0)2
= 0.66
Contoh hasil perhitungan nilai fungsi kernel antar data pada
cluster j untuk iterasi 1 ditunjukkan oleh Tabel 3.7.
Tabel 5.7 Nilai Kernel Antar Data Pada Cluster j untuk iterasi 1
xl
1
2
3
.
.
.
49
1
0.06
0.02
0
.
.
.
56.25
2
0.02
0.06
0.06
.
.
.
14.19
3
0
0.06
0.06
.
.
.
3.88
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
49
.
56.25
.
14.19
3.88
50625.72
Asumsikan total nilai tersebut dengan T. Untuk memperoleh
nilai c dengan cara:
193
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
c = (T) / (jumlah data pada cluster j)2
= 36577410.24 / (49)2
= 15234.24
Setelah diperoleh nilai a,b dan c selanjutnya Jumlahkan nilai a,
b, dan c. Hasil jumlah a, b, dan c adalah :
a + b + c = 0.625 + (-44.006) + 15234.24
= 15190.295
Untuk jarak dari setiap data i terhadap cluster j ditunjukkan oleh
Tabel 3.8.
Tabel 5.8 Jarak dan alokasi data untuk centroid terdekat iterasi 1
Data
X
Y
Jarak ke C1
Jarak ke C2
K baru
K lama
1
0.50
0.00
15190.29
12890.39
2
1
2
0.25
0.43
15190.84
12891.62
2
1
3
0.13
0.48
15190.98
12891.91
2
1
4
-0.25 0.43
15190.86
12891.60
2
1
.
.
.
.
48
.
14.78 -2.57
.
.
26277.54
26687.92
1
1
49
15.00 0.04
26254.64
26647.91
1
1
50
0.48
0.13
15190.35
12890.51
2
2
.
.
.
.
.
.
.
97
14.11 -5.10
26337.65
26811.35
1
2
98
14.95 -1.27
26260.58
26656.34
1
2
Total
1177274.15 1138242.98
Fbaru = 1177274.15 + 1138242.98 = 2315517.13
Visualisasi data hasil update keanggotaan cluster iterasi 1:
194
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
20
15
10
5
X
0
-20
-10
-5
0
10
20
-10
-15
-20
Y
Gambar 5.7 Visualisasi data hasil update anggota cluster iterasi 1
4. Setelah mendapat jarak titik data terhadap masing-masing cluster
pada langkah 3, jarak terdekat titik data dengan suatu cluster
berarti titik data tersebut termasuk dalam cluster tersebut seperti
dapat dilihat pada Tabel 3.8. Selanjutnya lakukan perhitungan nilai
delta untuk menentukan apakah perlu dilanjutkan ke iterasi selanjutnya atau tidak dimana jika delta ≥ threshold, maka iterasi
berlanjut. Jika delta < threshold, maka iterasi berhenti. Berikut
perhitungan delta:
Delta = |Fbaru - Flama| = |2315517.13 - 0| > 0.05 (threshold)
dan iterasi < tmax = 5, maka lanjutkan ke iterasi 2 (Kembali ke
langkah 3).
5.4 Tugas Kelompok
1. Jelaskan perbedaan antara K-Means dengan Kernel K-Means!
2. Jelaskan bagaimana cara untuk memilih kernel yang terbaik
untuk K-means!
3. Diketahui data berikut, Tentukan hasil K(x1,x2) dengan
menggunakan kernel Polynomial dan RBF:
2
a. x1
3
6
x2
3
195
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
1
b. x1 4
3
3
x2 2
4
4. Tentukan hasil perhitungan jarak kuadrat dari data ke-1 dari
Tabel 3.1 terhadap cluster 2, berdasarkan perhitungan berdasarkan persamaan 3.5!
196
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
BAB 6 Analitik Data Tingkat Lanjut
(Regresi)
6.1 Konsep Regresi
Regresi adalah membangun model untuk memprediksi nilai
(satu target atau multi-target) dari data masukan (dengan dimensi
tertentu) yang telah ada.
Goal : Membangun model regresi untuk mencari hubungan antara satu atau lebih variabel independen atau prediktor (X atau X1, X2,
.., Xn) dengan variabel dependen atau respon single atau multi-target
(Y atau Y1, Y2, .., Yn).
Visualisasi Hasil Peramalan Iterasi
SVR 100000
13500
13450
13400
13350
13300
13250
13200
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
aktual
ramalan
Gambar 6.1 Visualisasi Hasil Peramalan Iterasi SVR 100000
Prediksi berbeda dengan klasifikasi (dalam machine learning,
klasifikasi dianggap sebagai salah satu jenis dari prediksi).
Klasifikasi digunakan untuk memprediksi label kelas/kategori.
•
Klasifikasi dapat dibagi lagi menjadi dua macam, yaitu:
–
–
•
supervised classification (Klasifikasi) dan
unsupervised classification (Clustering sudah
dibahas pada pertemuan sebelumya)
Prediksi versus Peramalan (Jangka waktu merupakan kata
kunci untuk membedakan antara prediksi dan peramalan)
197
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
6.2 Analisis Teknikal dan Fundamental
Ada beberapa jenis pendekatan yang dilakukan untuk
meramalkan, misal pada nilai tukar uang diantaranya (Madura, 2011):
1. Analisis Teknikal
-
Melibatkan data historis nilai tukar untuk meramalkan
nilai di masa yang akan datang.
-
Prinsip yang biasanya dianut oleh para teknikalis, bahwa
nilai kurs sudah menjadi nilai yang representatif dari
seluruh informasi yang relevan mempengaruhi kurs
tersebut, kurs akan bertahan pada trend tertentu, dan
nilai kurs merupakan nilai yang repetitif berulang dari
pola sebelumnya (Neely et al., 2011).
-
Namun terkadang peramalan secara teknis tidak terlalu
membantu untuk jangka waktu yang cukup lama.
Banyak peneliti yang berselisih pendapat mengenai
peramalan teknis, meskipun secara umum peramalan
teknis memberikan konsistensi yang baik.
2. Analisis Fundamental
- Didasari hubungan fundamental antara variabel –
variabel ekonomi terhadap nilai tukar tersebut, seperti
faktor – faktor yang mempengaruhi nilai tukar. Misalnya
saja:
1. Tingkat inflasi
2. Suku bunga
3. Neraca Perdagangan (log pembayaran dari hasil jual beli barang dan jasa antara negara)
4. Hutang Publik (Public Debt),
5. Rasio Harga Ekspor dan Harga Impor, dan
6. Kestabilan Politik dan Ekonomi.
Dari uraian sebelumnya, apakah bisa dilakukan penggabungan
Analisis Teknikal dan Fundamental?
198
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
6.3 Regresi Linear & Regresi Logistic
Perhatikan dataset berikut:
Tabel 6.1 Dataset
No
(X)
(Y)
1
10
15
2
6
20
3
3
12
4
4
10
Bagaimana Membangun model regresi yaitu dengan mencari
hubungan antara satu atau lebih variabel independen atau explanatory variable atau prediktor (X) dengan variabel dependen atau respon
(Y)?
Regresi Linear:
b1
n xy - x y
n x 2 x
2
b 0 y b1 x
yˆ b0 b1 x
y - b x
1
n
Gambar 6.2 Regresi
199
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
6.4 Extreme Learning Machine (ELM)
Metode ELM ini pertama kali diperkenalkan oleh Huang (2004)
(Huang, Zhu, & Siew, 2004).
ELM merupakan jaringan syaraf tiruan (JST) feedforward dengan
single hidden layer atau disebut dengan Single Hidden Layer
Feedforward Neural Networks (SLFNs) (Sun, Choi, Au, & Yu, 2008).
Gambar 6.3 Arsitektur ELM
Metode pembelajaran ELM dibuat untuk mengatasi beberapa
kelemahan dari jaringan syaraf tiruan feedforward, terutama dalam
hal learning speed.
Menurut Huang (2004), JST feedforward masih memiliki
kelemahan dalam learning speed karena semua parameter pada jaringan ditentukan secara iterative dengan menggunakan metode pembelajaran satu persatu untuk setiap data.
Langkah-langkah training algoritma Extreme Learning Machine
(ELM):
1. Buat random Wjk sebagai bobot masukan.
2. Hitung matrik keluaran hidden layer H = 1/(1+exp(-X.WT))
3. Hitung output weight dimana H+=(HT.H)-1.HT
4. Hitung
Yˆ H .̂
200
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 6.4 Training Algoritma ELM
Langkah testing ELM:
1. Diketahu Wjk, dan
.
2. Hitung H = 1/(1+exp(-Xtest.WT))
3. Hitung Yˆ H .̂
4. Hitung nilai evaluasi, misal dengan MAPE.
Langkah-langkah training ELM dengan bias:
1. Buat random Wjk sebagai bobot masukan dan nilai bias b jika
ada. Ukuran matrik bias b adalah [1 x j]
2. Hitung matrik keluaran hidden layer H = 1/(1+exp(-(X.WT +
ones(Ntrain,1)*b))). Dan Ntrain adalah banyaknya data training.
3. Hitung output weight dimana H+=(HT.H)-1.HT
4. Hitung
Yˆ H .̂
Gambar 6.5 Training ELM dengan Bias
201
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Langkah testing ELM:
1. Diketahu Wjk, nilai bias b jika ada, dan
.
T
2. Hitung H = 1/(1+exp(-(Xtest.W + ones(Ntest,1)*b)))
3. Hitung
Yˆ H .̂
4. Hitung nilai evaluasi, misal dengan MAPE.
Arsitektur Artificial Neural Network Backpropagation (ANN):
Gambar 6.6 Arsitektur Artificial Neural Network Backpropagation
Studi Kasus Sederhana dengan ELM
1. Misalkan diketahui, data training (terdapat 3 fitur dan single
target) sebagai berikut:
Tabel 6.2 Data Training
Data
1
2
3
1
1
1
1
Fitur
2
1
0
1
3
1
1
0
Target
1
1
1
202
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
4
5
6
7
8
9
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
2
2
2
3
3
3
Diketahui:
N : Banyaknya data training
=9
k : Banyaknya dimensi input layer
=3
i : Banyaknya dimensi output layer
=1
Misal diset,
j : Banyaknya dimensi hidden layer
=3
Penyelesaian:
1. Men-generate bobot input (Wj x k) antara input layer dan
hidden layer. Ukuran W adalah [j x k], yang nilainya digenerate antara [-0.5,0.5].
W=
2. Hitung matrik inisialisasi output hidden layer (Hinit = X.WT)
Hinit =
3. Htung matrik H = 1/(1+exp(-Hinit))
203
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
4. Hitung matrik H+=(HT.H)-1.HT
5. Hitung
ˆ
beta topi atau hasil nilai beta yang diestimasi
̂ H .Y
6. Menghitung Y prediksi
Yˆ H .̂
|
7. Hitung MAPE
MAPE
1
N
N
i 1
yˆ i yi
100 |
yi
204
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
MAPE
30.11
1 N 9 yˆ i yi
| y 100 |
N 9 i 1
i
Pada proses training, didapatkan hasil testing menggunakan
data training sendiri masih memiliki error MAPE sebesar 30.11.
2. Misalkan diketahui, data testing sebagai berikut:
Data Training:
Data Testing:
Diketahui,
N : Banyaknya data training
=9
k : Banyaknya input layer
=3
i : Banyaknya output layer
=1
Misal diset,
j : Banyaknya hidden layer
=3
Penyelesaian:
1. Hitung matrik inisialisasi output hidden layer (Hinit =
Xtest.WT)
205
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
2. Htung matrik output hidden H = 1/(1+exp(-Hinit))
Yˆ H .̂
3. Menghitung Y prediksi
Diketahui
̂
maka
1 N 3 yˆ i yi
| y 100 | 36.0048
N 3 i 1
i
4. Hitung MAPE
MAPE
Pada proses testing, didapatkan hasil prediksi dengan error
MAPE sebesar 36.0048
Algoritma Support Vector Regression (SVR)
Konsep SVR didasarkan pada risk minimization, yaitu untuk
mengestimasi suatu fungsi dengan cara meminimalkan batas dari generalization error, sehingga SVR mampu mengatasi overfitting.
Fungsi regresi dari metode SVR adalah sebagai berikut (Sethu
Vijayakumar & Si Wu, 1999)
Algoritma Sekuensial Training SVR :
1. Inisialisasi parameter SVR yang digunakan
2. Rumus memperoleh Matrik Hessian
Rij ( K ( xi , x j ) 2 )
Ei yi j 1 ( *j j ) Rij
3. Untuk tiap training point lakukan:
i* min max Ei ,i*, C i*
i min max Ei ,i , C i
l
206
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
i* i* i*
i i i
max i
4. Kembali ke langkah ketiga, sampai pada kondisi iterasi maksimum atau
max i*
Dan
f ( x) ( i* i )( K ( xi , x) 2 )
5. Dengan mengunakan fungsi peramalan berikut:
l
i 1
6.5 Tugas Kelompok
1. Diketahui data berikut:
a
a
x1 1 x2 2
b1
b2
Tentukan hasil Φ(x1) dan Φ(x2) dengan menggunakan kernel
Polynomial dengan c = 1 dan d = 2.
2. Pada Studi Kasus Sederhana proses training dengan ELM, jika
diketahui hasil random W adalah sebagai berikut:
Tentukan nilai MAPE dari data testing berikut:
207
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
BAB 7 Analitik Data Tingkat Lanjut
(Klasifikasi)
7.1 Konsep Klasifikasi
Klasifikasi digunakan untuk memprediksi label kelas/kategori.
Prediksi berbeda dengan klasifikasi (dalam machine learning,
klasifikasi dianggap sebagai salah satu jenis dari prediksi). Sedangkan
jika Prediksi dibandingkan dengan Peramalan hal yang membedakan
adalah jangka waktu.
Klasifikasi dapat dibagi lagi menjadi dua macam, yaitu:
– supervised classification (Klasifikasi) dan
– unsupervised classification (Clustering sudah dibahas
pada pertemuan sebelumya)
Supervised Learning (Pembelajaran yang terawasi, yaitu
terdapat proses training dan testing):
–
Regresi: untuk memprediksi nilai yang sifatnya kontinyu.
–
Klasifikasi: untuk memprediksi kelas atau label data dan
bersifatnya diskrit.
Gambar 7.1 Gambaran Perbedaan Klasifikasi dan Regresi
Contoh Regresi:
Gambar 7.2 Contoh Regresi
208
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Contoh Klasifikasi:
Gambar 7.3 Contoh Klasifikasi
7.2 Linear dan Non-Linear Classifier
Linear Classifier:
Gambar 7.4 Linear Clasifier
Non-Linear Classifier
Gambar 7.5 Non-Linear Clasifier
209
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
7.3 Algoritma Klasifikasi
7.3.1 ELM Untuk Regresi Vs Untuk Klasifikasi
Sudah Dijelaskan pada Bab Sebelumnya, misalkan diketahui, data
training (terdapat 3 fitur dan single target) sebagai berikut (Lihat Materi ELM untuk Regresi):
ELM untuk Klasifikasi (Cara 1):
210
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
ELM untuk Klasifikasi (Cara 2):
7.3.2 Support Vector Machine (SVM) Linear dan
Non-Linear
SVM Linear:
Gambar 7.6 Ilustrasi SVM Linear
Margin
2
w
2
w1 w2
2
2
211
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Support Vector kelas -1
Support Vector kelas +1
y i xi w b 1
w
w
Jarak titik (xi) ke Hyperplane :
d w, b , xi
d w, b , xi
y i f xi 1
w
w
Gambar 7.7 SVM Non-Linear
SVM Non-Linear (terdapat data noise, outliers, atau memang
sebaran datanya secara alami non-linear). Slack variables ξi dapat
ditambahkan untuk mentoleransi adanya mis-classification yang sulit
dipecahkan karena misal, ada data noise.
Gambar 7.8 Gambaran SVM dengan Slack Variable
Langkah-langkah dalam SVM:
212
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
1. Data dan kelas
xi , yi in1 dimana yi 1,1
2. Melakukan proses training untuk mendapatkan nilai
menggunakan algoritma Sequential Training SVM
i
dengan
3. Hitung w dan b dan Hasil klasifikasi sign(f(x))
w
y x
n
i 1
i
i
i
1
b [ w x w.x ]
2
m
1 m
b i yi xi x i yi xi x
2 i 1
i 1
m
1 m
b i yi ( xi ) ( x ) i yi ( xi ) ( x )
2 i 1
i 1
m
m
1
b i yi K ( xi , x ) i yi K ( xi , x )
2 i 1
i 1
f ( x) w x b
f ( x) i yi xi x b
m
i 1
f ( x) i yi ( xi ) ( x) b
m
i 1
f ( x) i yi K ( xi , x) b
m
i 1
dimana m adalah jumlah support vector/titik data yang memiliki αi > 0
Algoritma Sequential Training SVM:
1. Inisialisasi nilai i = 0, λ, γ (learning rate), C, ε (epsilon), IterMax,
parameter kernel (jika ada) dan hitung matrik Dij untuk i, j = 1,
..., n. Dimana n adalah banyaknya data training.
Dij yi y j ( K ( xi , x j ) 2 )
Ei j Dij
2. Melakukan iterasi untuk perhitungan:
n
a.
j 1
213
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
b.
c.
i min{max[ (1 Ei ), i ], C i }
i i i
max(| i |)
3. Cek
maka
kondisi
berhenti
ketika
memenuhi
kondisi,
atau telah mencapai IterMax, jika tidak,
kembali pada langkah ke-2.
Algoritma Sequential Training SVM untuk data dengan 2 kelas
(Binary SVM atau SVM Biner):
Diketahui data training dan testing:
Tabel 7.1 Data Training dan Data Testing
No
Tgl/Bln/Thn
F1
F2
F3
F4
Kelas
1
2
3
4
5
6
7
8
9 Juli 2015
10 Juli 2015
11 Juli 2015
12 Juli 2015
13 Juli 2015
14 Juli 2015
15 Juli 2015
16 Juli 2015
13338
13356
13332
13331
13337
13313
13346
13347
13356
13332
13331
13337
13316
13346
13347
13304
13332
13331
13337
13316
13316
13347
13304
13304
13331
13337
13316
13316
13316
13304
13304
13304
Jual
Jual
Beli
Beli
Beli
Beli
Beli
Beli
Data Latih
Data Uji
Kelas jual = +1, dan beli = -1
1. Inisialisasi nilai i = 0, λ = 4.32, γ (learning rate) = 0.00406,
C = 100, ε (epsilon) = 0.0004, IterMax=1, σ = 0.7 dan hitung
matrik Dij
Tabel 7.2
i
i
0
0
0
0
0
Diketahui data training dan testing (hasil normalisasi dengan
Xmin= 9634 Xmax= 14728):
214
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
x'
( x xmin )
(13338 9634 )
x'
0.727129
14728 9634
xmax xmin
Dij yi y j ( K ( xi , x j ) 2 )
3.61095 10 -5
2
4
.
32
D1, 2 1x1 exp
2
2
(
0
.
7
)
19.6623631 542
1
1
-1
-1
-1
1
1
-1
-1
-1
1
1
-1
-1
-1
1
1
-1
-1
-1
-1
-1
1
1
1
-1
-1
1
1
1
-1
-1
1
1
1
Tabel 7.3 Hasil Perhitungan Dij
Dij
1
2
3
4
5
1
19.6624
19.662363
-19.662364
-19.662365
-19.662318
2
19.662363
19.6624
-19.662359
-19.662348
-19.66235
3
-19.662364
-19.662359
19.6624
19.662381
19.662373
4
-19.662365
-19.662348
19.662381
19.6624
19.662381
5
-19.662318
-19.66235
19.662373
19.662381
19.6624
2. Melakukan iterasi untuk perhitungan (iterasi =1):
a. Ei j Dij
n
j 1
E1 1D11 2 D12 3 D13 4 D14 5 D15 0
Tabel 7.4 Hasil Perhitungan Ei
i
Ei
1
2
3
0
0
0
215
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
4
5
b.
0
0
i min{max[ (1 Ei ), i ], C i }
1 min{max[ 0.00406 (1 E1 ),1 ],100 1}
1 min{max[ 0.00406 (1 0),0],100 0} 0.00406
Tabel 7.5 Hasil Perhitungan
c.
i
i
1
0.00406
2
0.00406
3
0.00406
4
0.00406
5
0.00406
i
i i i
1 1 1 0 0.00406 0.00406
Tabel 7.6 Hasil Perhitungan
i
i
1
0.00406
2
0.00406
3
0.00406
4
0.00406
5
0.00406
i
max(| i |)
3. Cek kondisi berhenti ketika memenuhi kondisi, Karena iterasi =
IterMax (Stop), misalkan jika
,
dan iterasi < IterMax, maka iterasi = iterasi + 1, lalu kembali
pada langkah ke-2
Hitung b
216
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
m
1 m
b i yi K ( xi , x ) i yi K ( xi , x )
2 i 1
i 1
x x1
x x3
Set nilai x+ dan x- dari masing kelas yang memiliki nilai
yaitu
dan karena semua nilai
i
i
tertinggi,
> 0, maka
banyaknya support vector (m) = banyak data training, yaitu 5
m
1 m
b i yi K ( xi , x ) i yi K ( xi , x )
2 i 1
i 1
5
5
1
b i yi K ( xi , x1 ) i yi K ( xi , x3 )
2 i 1
i 1
y K ( x , x ) y K ( x , x ) ..
5
i 1
i
i
i
1
1 1
1
1
5
y K ( x , x ) y K ( x , x ) ..
5
i 1
i
i
i
3
1 1
1
3
5
y5 K ( x5 , x1 ) 0.00405952 95
y5 K ( x5 , x3 ) 0.00406012 71
1
- 0.00405952 951339599 -0.0040601 2708165399
2
0.00405982 829752499
b
Hasil klasifikasi sign(f(x))
f ( x) i yi K ( xi , x) b
m
i 1
Misal menghitung hasil klasfikasi dari uji ke-1, maka tentukan
sign(f(xtest1))
Tabel 7.7 Hasil klasifikasi sign(f(x))
No
Tgl/Bln/Thn
F1
F2
F3
F4
1
2
3
14 Juli 2015
15 Juli 2015
16 Juli 2015
0.722811
0.722811
0.722811
0.722811
0.722811
0.730075
0.722811
0.730075
0.722222
0.730075
0.722222
0.728700
f ( xtest1 ) i yi K ( xi , xtest1 ) 0.00405982 829752499
Kelas
-1
-1
-1
5
i 1
217
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
f ( xtest1 ) -0.0040598 4433414133 0.00405982 829752499
-0.0000000 1603661634 38896
Tabel 7.8 Hasil Perhitungan xtest1
K(xi,xtest1)
xtest1
x1
0.999888955584422
x2
0.999908104359568
x3
0.999909913096674
x4
0.999919979151857
x5
0.999928826350961
Hasil kelas prediksi xtest1
sign(f(xtest1)) = -1
Maka xtest1 masuk kelas beli (true).
Algoritma Sequential Training SVM untuk data dengan > 2 kelas,
berikut beberapa strategi yang bisa digunakan:
1. One Against All (OAA) oleh (Cortes and Vapnik, 1995)
Gambar 7.9 Contoh Klasifikasi dengan Metode One-Against-All
Sumber : Sembiring(2007
Tabel 7.9 Contoh 3 SVM Biner dengan Metode One-Against-All
=
=−
Kelas 1
Bukan kelas 1
Kelas 2
Bukan kelas 2
Hipotesis
=
=
+
+
218
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Kelas 3
=
Bukan kelas 3
+
2. One-Against-One (OAO) oleh (Fridman, 1996)
Misal banyaknya kelas (k) = 4
Pair-wise. k(k-1)/2
Pair-wise
Misal
Gambar 7.10 Klasifikasi One-Against-One untuk 4 Kelas
Sumber : Sembiring (2007)
SVM Biner dengan Metode One-Against-One
Tabel 7.10 Metode One-Against-One dengan 4 Kelas
=
=−
Kelas 1
Kelas 2
Kelas 1
Kelas 3
Kelas 1
Kelas 4
Kelas 2
Kelas 3
Kelas 2
Kelas 4
Kelas 3
Kelas 4
Hipotesis
=
+
=
+
=
=
=
=
+
+
+
+
3. Binary Decision Tree (BDTSVM) oleh (Gjorgji M., dkk, 2008)
Langkah membuat Tree untuk BDTSVM :
1. Tentukan titik pusat data (center data) tiap kelas.
2. Buat Matrik Jarak (Euclidean) antar titik pusat data.
3. Cari Jarak Terjauh untuk pemisahan kelas (y = +1 dan y = -1)
219
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
4.
Tetapkan kelas dari center data dengan jarak terdekat, pada
kelas (y = +1) atau kelas (y = -1) dari hasil pemisahan pada
langkah (3)
Gambar 7.11 Ilustrasi Klasifikasi dengan BDTSVM
Tabel 7.11 Metode BDTSVM dengan 7 Kelas
=
=−
Hipotesis
Kelas 2,3,4,7
Kelas 1, 5, 6
, , ,
Kelas 2,3
Kelas 4,7
,
Kelas 1,5
Kelas 6
,
Kelas 2
Kelas 3
Kelas 4
Kelas 7
Kelas 1
Kelas 5
, ,
,
=
=
=
=
=
=
,
+
, , ,
,
,
+
+
, ,
,
,
+
, , ,
, ,
,
+
+
220
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
4. Directed Acrilyc Graph SVM (DAGSVM) (C. W. Hsu dan C. J. Lin,
2002)
Gambar 7.12 Ilustrasi Klasifikasi dengan metode DAGSVM
7.4 Tugas Kelompok
1. Jelaskan perbedaan antara regresi dengan klasifikasi!
2. Jelaskan perbedaan antara Underfitting, Just right, dan Overfitting
dalam sudut pandang regresi dan klasifikasi!
3. Jelaskan pengertian dari Support Vector, dan Lagrange Multipier
pada SVM!
4. Berdasarkan Algoritma Sequential Training SVM untuk data
dengan 2 kelas (Binary SVM) pada materi, jika fungsi kernel RBF
digantikan dengan fungsi kernel polynomial (c=1 dan d=2).
Tentukan besarnya nilai akurasi dari data testing!
5. Selesaikan kasus berikut menggunakan OAOSVM, atau OAASVM
atau BDTSVM, atau DAGSVM (Pilih salah satu), dengan nilai
parameter i = 0, λ = 4.32, γ (learning rate) = 0.00406, C = 100, ε
(epsilon) = 0.0004, IterMax=2, dengan kernel RBF (σ = 0.7).
Tentukan besarnya nilai akurasi dari data testing!
Data training:
221
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Data testing:
Kelas Aktual
222
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
BAB 8 Teknologi dan Tools
Big Data (Bagian 3)
8.1 Editor + GUI untuk Spark Java/
Spark Scala/ PySpark
Editor + GUI, dengan adanya 2 bagian ini maka harapannya
akan memudahkan developer dalam membuat koding dari
awal dalam
lingkungan IDE atau mengembangkan
implementasi algoritma untuk penyelesaian kasus apapun
menjadi lebih cepat, nyaman dan lebih profesional.
Gambar 8.1 Get Eclipse OXYGEN
Java/ Scala/ Python/ R/ etc, ini hanya beberapa macam dari
bahasa pemrograman yang masing-masing memiliki kelebihan
dan keterbatasan. Silahkan dipilih dengan bijak, manakah
bahasa pemrograman untuk Analisis Big Data yang anda
gunakan, sesuai dengan style anda sebagai developer.
Gambar 8.2 Bahasa Java/ Scala/ Python/ R
223
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
8.1.1 Install Sublime Text
- Ketikkan perintah berikut
sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer
sudo ln -s /usr/lib/sublime-text-3/sublime_text
/usr/local/bin/sublime
8.1.2 Eclipse + Spark Standalone (Java EE)
- Link kode wordcount Spark Standalone: https://goo.gl/DNMsNG
Jika muncul “Exception in thread "main"
org.apache.spark.SparkException: A master URL must be set in
your configuration”
Ganti kode
“SparkSession spark =
SparkSession.builder().appName("JavaWordCount")
.getOrCreate();”
Dengan
SparkSession spark =
SparkSession.builder().appName("JavaWordCount").config("spar
k.master", "local[*]")
.getOrCreate();
224
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
8.1.3 Eclipse + Spark + Scala IDE + Maven
- Install Scala IDE pada Eclipse, sebelum Buka Eclipse, ketikkan kode
berikut:
nidos@Master:~$ su hduser
hduser@Master:/home/nidos$ cd
hduser@Master:~$ sudo chmod 777 -R /home/hduser/eclipseworkspace/
hduser@Master:~$ sudo chmod 777 -R /home/hduser/eclipse
Klik Help, pilih “Install New Software”:
225
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Pada work with, masukkan “http://download.scalaide.org/sdk/lithium/e47/scala212/stable/site”, klik Add
Masukkan name, misal “Scala IDE”, klik OK
klik Select All, klik Next
226
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
klik Next
Pilih accept, klik Finish
Tunggu beberapa waktu sampai instalasi selesai
227
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Klik install anyway
Klik Restart Now
Open Perspective Scala, klik Other
228
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Scala IDE berhasil di-install
Setelah di Klik Open
229
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Cek FileNew
- Latiha : Hello“ ala.s ala . Cek FileNew misal mencoba
e uat “ ala O je t de ga a a Hello“ ala
package com.nidos.myscala
object HelloScala {
def main(args:Array[String]){
println("Hello my Scala")
}
}
230
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Cara menjalankannya degan menggunakan Run Configuration di
atas.
- Latihan 2: Scala Spark Project dengan Maven
Klik Kanan di “Package Explorer” New Project
Pilih “Maven Project”, klik Next
231
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
klik Next
klik Next
Isikan, misal seperti berikut, klik Finish
232
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Tunggu beberapa waktu
Klik kanan “mysparkexample”, pilih Configure, klik “Add
Scala Nature”
Hassil “Add Scala Nature”
233
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Klik kanan “mysparkexample”, pilih Properties
Klik “Java Build Path”, klik Tab Source
Klik “Add Folder”, klik “main”, lalu klik “Create New
Folder”
234
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Isikan folder name, misal “scala”, klik Next
Klik Add
Isikan “**/*.scala”, lalu klik OK
235
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Klik Finish
Klik OK
Klik “Apply and Close”
236
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Pada “Package Explorer”, pada project “mysparkwxample”,
“src/main/scala” sudah muncul
Pada project “mysparkwxample”, klik kanan pada
“src/main/scala”, klik ”Package”
Isikan name dengan, misal “com.nidos.mysparkexample”, klik
Finish
237
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Package sudah muncul
Klik kanan pada package “com.nidos.mysparkexample”, klik
“Scala Object”
Masukkan name, misal “WordCount”, klik Finish, link
kode: https://goo.gl/ootdZN
238
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Setelah diklik “Finish”, link kode: https://goo.gl/ootdZN
Buat main “ketik main”, lalu tekan Ctrl+Space
Konfigurasi file “pom.xml” untuk Spark, tambahkan
dependencies dibawah ini, setelah line 17
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.10.4</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>1.4.1</version>
</dependency>
239
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Tunggu beberapa waktu
Sampai Selesai
Cek Auto format Spark
240
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Ketika running, jangan memilih pada “Java Application”
dan muncul error “Error: Could not find or load main class
com.nidos.spark.mysparkexample.WordCount”
Ubah ke “Scala Application”
Jika masih ada error “Error: Could not find or load main
class com.nidos.spark.mysparkexample.WordCount” maka coba
tambahkan kode berikut “package com.nidos.mysparkexample”,
langsung jalankan tanpa dengan “Scala Application”
241
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Set Argument
“hdfs://localhost:9000/user/hduser/wordcount/input/input3.tx
t”, lalu klik Run
Project berhasil dijalankan :D
242
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
8.1.4 Eclipse + Spark + Scala IDE + SBT
- Setting up Spark Dev Environment using SBT and Eclipse. Ketikkan
kode berikut (http://www.scala-sbt.org/download.html)
nidos@Master:~$ echo "deb https://dl.bintray.com/sbt/debian
/" | sudo tee -a /etc/apt/sources.list.d/sbt.list
nidos@Master:~$ sudo apt-key adv --keyserver
hkp://keyserver.ubuntu.com:80 --recv
2EE0EA64E40A89B84B2DF73499E82A75642AC823
Ketikkan kode berikut:
nidos@Master:~$ sudo apt-get update
nidos@Master:~$ sudo apt-get install sbt
243
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Install sbt telah selesai
- Misal membuat project SBT, a a a “pa k“VM . Ketikka
perintah berikut ( Link kodenya: https://goo.gl/omA1ks ):
nidos@Master:~$ cd ./eclipse-workspace
nidos@Master:~/eclipse-workspace$ mkdir SparkSVM
nidos@Master:~/eclipse-workspace$ cd ./SparkSVM/
nidos@Master:~/eclipse-workspace/SparkSVM$ mkdir -p
src/{main,test}/{java,resources,scala}
nidos@Master:~/eclipse-workspace/SparkSVM$ mkdir lib project
target
nidos@Master:~/eclipse-workspace/SparkSVM$
244
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Cek struktur folder, misal dengan sublime. Ketikkan perintah
berikut:
nidos@Master:~/eclipse-workspace/SparkSVM$ subl .
Misal kita sudah download file project referensi
“Spark_kernel_svm-master” dari link
berikut: https://goo.gl/j3dWL4
Ketikkan berikut, lalu cek di sublime (jgn lupa mengganti
name :=“SparkSVM”):
nidos@Master:~/eclipse-workspace/SparkSVM$ cp
/home/nidos/Downloads/Spark_kernel_svm-master/build.sbt ./
245
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Jangan lupa mengganti namenya menjadi name :=“SparkSVM”
Buat file plugins.sbt pada folder “SparkSVM/project”.
Ketikkan perintah berikut, lalu cek di sublime:
nidos@Master:~/eclipse-workspace/SparkSVM$ cd project/
nidos@Master:~/eclipse-workspace/SparkSVM/project$ touch
plugins.sbt
Masukkan kode “addSbtPlugin("com.typesafe.sbteclipse" %
"sbteclipse-plugin" % "5.2.4")” pada file plugins.sbt, lalu
simpan
246
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Cek Struktur foder lagi. Ketikkan perintah berikut:
nidos@Master:~/eclipse-workspace/SparkSVM/project$ cd ..
nidos@Master:~/eclipse-workspace/SparkSVM$ find
Jalankan SBT. Ketikkan perintah berikut:
nidos@Master:~/eclipse-workspace/SparkSVM$ ls
nidos@Master:~/eclipse-workspace/SparkSVM$ sbt
247
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
tunggu beberapa waktu
File Dependencies dari SBT sudah berhasil dicreate
Klik File, klik Open Tab
248
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Ketikkan, untuk cek “.classpath” dan lainnya, berikut:
nidos@Master:~$ cd ./eclipse-workspace/SparkSVM/
nidos@Master:~/eclipse-workspace/SparkSVM$ ls
build.sbt lib project src target
nidos@Master:~/eclipse-workspace/SparkSVM$ ls -a
. .. build.sbt .classpath lib project .project
.settings src target
nidos@Master:~/eclipse-workspace/SparkSVM$
Buka Eclipse, klik File, klik Import
Pilih General, klik “Existing Projects into ....”, klik Next
249
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Klik Browse
Cari pada folder “/home/nidos/eclipse-workspace” Pilih
“SparkSVM”, klik OK
Klik Finish
250
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Project “SparkSVM” siap untuk dicopykan kode program dari
referensi
Copykan 3 code berikut, dari project referen ke Project
Siapkan dataset, misal “iris3.txt” difolder, misal
“/home/nidos/eclipse-workspace/SparkSVM”
251
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Run Project “SparkSVM”, dengan klik kanan file “main.scala”,
pilih “Run As”, klik “2Scala Application”, jika belum
muncul “result.txt”
Set Run Project “SparkSVM” by kode program, dengan mengisi
langsung args(0)-nya
Pada file main.scala, ganti kode berikut:
if (args.length != 1 ) {
println("Usage: /path/to/spark/bin/spark-submit --packages amplab:spark-indexedrdd:0.1" +
"target/scala-2.10/spark-kernel-svm_2.10-1.0.jar <data file>")
sys.exit(1)
}
val logFile = "README.md" // Should be some file on your system
//val conf = new SparkConf().setAppName("KernelSVM Test")
Dengan
val args = Array.fill(1)("")
val logFile = "README.md" // Should be some file on your system
val conf = new SparkConf()
conf.setAppName("SparkSVM")
conf.setMaster("local[*]")
val sc = new SparkContext(conf)
args(0)="file:///home/nidos/eclipse-workspace/SparkSVM/iris3.txt"
252
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Run lagi Project “SparkSVM”, dengan klik kanan file
“main.scala”, pilih “Run As”, klik “2Scala Application”
Runing Project “SparkSVM” Sukses
Hasil Runing Project “SparkSVM” berupa file “result.txt”,
juga sudah muncul
253
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Isi dari file “result.txt”
8.1.5 Eclipse + PySpark + PyDev
- Setting up Eclipse + PySpark + PyDev. Ikuti langkah-langkah berikut:
Klik Help, pilih “Install New Software”:
254
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Pada work with, masukkan “http://www.pydev.org/updates”,
Tekan Enter
Select All, klik Next
Klik Next
255
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Pilih “I accept ..”, Klik Finish
Tunggu beberapa waktu untuk “Installing Software..”
Klik Install Anyway
256
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Klik Restart Now
Open Perspective PyDev, klik Other
PyDev berhasil di-install
257
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Setelah di Klik Open, klik FileNew
Ketikkan,
hduser@Master:~$ sudo gedit ~/.bashrc
Pastikan pada file “bashrc” anda sudah berisi:
..
export
export
export
export
export
export
export
export
export
export
export
export
JAVA_HOME=/usr/lib/jvm/java-8-oracle
JRE_HOME=/usr/lib/jvm/java-8-oracle/jre
HADOOP_INSTALL=/usr/local/hadoop
PATH=$PATH:$HADOOP_INSTALL/bin
PATH=$PATH:$HADOOP_INSTALL/sbin
HADOOP_MAPRED_HOME=$HADOOP_INSTALL
HADOOP_COMMON_HOME=$HADOOP_INSTALL
HADOOP_HDFS_HOME=$HADOOP_INSTALL
YARN_HOME=$HADOOP_INSTALL
HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib/native"
HADOOP_CLASSPATH=/usr/lib/jvm/java-8-oracle/lib/tools.jar
export
export
export
export
SPARK_HOME=/home/hduser/spark-2.2.0-bin-hadoop2.7
PATH=$PATH:$SPARK_HOME/bin
PATH=$PATH:$SPARK_HOME/bin/pyspark
XDG_RUNTIME_DIR=""
# Add the PySpark classes to the Python path:
export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH
export MAHOUT_HOME=/usr/local/mahout
export PATH=$PATH:$MAHOUT_HOME/bin
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
# added by Anaconda2 4.4.0 installer
export PATH="/home/hduser/anaconda/bin:$PATH“
..
258
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Latiha : HelloP “pa kO E lipse . Cek FileNew misal meno a e uat P “pa k O E lipse de ga a a HelloP “pa kO E lipse
klik “Click here to configure an interpreter not listed”
Klik “Quick Auto-Config”, lalu klik
“Libraries”
259
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Klik “New Folder”
Pilih folder Python pada Spark Home, misal di
“/home/hduser/spark-2.2.0-bin-hadoop2.7/python”, lalu Klik
“OK”
260
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Pilih folder Python pada Spark Home, sudah berhasil
dimasukkan, lalu klik “New Egg/Zip(s)”
Masuk ke directory “/home/hduser/spark-2.2.0-binhadoop2.7/python/lib”, ubah “*.egg” ke “*.zip”, lalu klik
OK.
261
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Pilih “/home/hduser/spark-2.2.0-binhadoop2.7/python/lib/py4j-0.10.4-src.zip”, lalu klik OK
File “/home/hduser/spark-2.2.0-binhadoop2.7/python/lib/py4j-0.10.4-src.zip”, berhasil
ditambahkan
262
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Klik Apply
Klik tab “Environment”, klik New
Masukkan Name “SPARK_HOME” dan Value “/home/hduser/spark2.2.0-bin-hadoop2.7”, klik OK
263
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
264
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
265
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
266
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
267
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
268
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
269
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
270
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
271
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
272
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
273
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
274
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
275
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
276
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
277
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
278
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
279
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
280
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
281
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
282
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
283
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
284
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
285
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
286
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
287
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
288
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
289
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
290
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
291
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
292
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
293
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
294
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
295
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
296
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
297
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
298
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
299
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
300
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
301
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
302
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
303
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
304
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
305
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
306
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
307
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
308
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
309
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
310
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
311
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
312
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
“SPARK_HOME” dan Value “/home/hduser/spark-2.2.0-binhadoop2.7”, berhasil ditambahkan
313
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan Name “PYSPARK_SUBMIT_ARGS” dan Value “--master
local[*] --queue PyDevSpark2.2.0 pyspark-shell”, klik OK
Masukkan Name “SPARK_CONF_DIR” dan Value
“/home/hduser/spark-2.2.0-bin-hadoop2.7/conf”, klik OK
314
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Klik Apply
Klik Finish
Buat Source Folder
315
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Klik kanan “src” New Pilih PyDev Module
Beri Name, misal “wordc”, klik Finish
Masukkan kode, misal dari “https://goo.gl/Fu6geJ”
316
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Klik kanan “wordc.py”, pilih “Python Run”
Jika muncul error berikut, maka jalankan dulu hadoop anda
hduser@Master:~$ start-all.sh
Lalu Klik kanan lagi “wordc.py”, pilih “Python Run”
317
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
File “wordc.py”, berhasil dijalankan
8.1.6 PySpark + Pycharm
- Setting up pySpark Dev Environment using Pycharm. Ikuti langkahlangkah berikut:
Download pycharm lalu ekstrak, misal di folder /usr/local/
318
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Download pycharm lalu ekstrak, misal di folder /usr/local/
Sebelum menjalankan pycharm, jalankan terlebih dahulu
Hadoop. Ketikkan:
hduser@Master:/home/nidos$ start-all.sh
319
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Lalu jalankan pyspark, lalu baru jalankan pyCharm. Ketikkan:
hduser@Master:/home/nidos$ pyspark
Jalankan Pycharm. Ketikkan:
hduser@Master:~$ cd /usr/local/pycharm/bin/
hduser@Master:/usr/local/pycharm/bin$ ls
format.sh
idea.properties pycharm64.vmoptions
restart.py
fsnotifier
inspect.sh
pycharm.png
fsnotifier64
log.xml
pycharm.sh
fsnotifier-arm printenv.py
pycharm.vmoptions
hduser@Master:/usr/local/pycharm/bin$ ./pycharm.sh
Klik Create New Project
320
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan nama project pada Location, misal
“/home/hduser/PycharmProjects/pySpark”, klik Create
Tampilan project “pySpark”
321
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Pada project “pySpark”, misal buat kode “WordCount.py”
Jika muncul Error
322
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Edit Configuration
Konfigurasi pada Environment Variable, tekan tombol plus,
lalu tambahkan path SPARK_HOME, misal di
“/home/hduser/spark-2.2.0-bin-hadoop2.7”
Dan PYTHONPATH, misal dari path “/home/hduser/spark-2.2.0bin-hadoop2.7/python/lib/py4j-0.10.4src.zip:/home/hduser/spark-2.2.0-bin-hadoop2.7/python”
323
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Konfigurasi pada Environment Variable, bisa juga dengan cara
copy kode berikut, lalu klik icon paste, part 1 of 2.
SPARK_HOME=/home/hduser/spark-2.2.0-bin-hadoop2.7
PYTHONPATH=/home/hduser/spark-2.2.0-binhadoop2.7/python/lib/py4j-0.10.4-src.zip:/home/hduser/spark2.2.0-bin-hadoop2.7/python
Konfigurasi pada Environment Variable, bisa juga dengan cara
copy kode berikut, lalu klik icon paste, part 2 of 2 (klik
OK, klik Apply, klik OK).
SPARK_HOME=/home/hduser/spark-2.2.0-bin-hadoop2.7
PYTHONPATH=/home/hduser/spark-2.2.0-binhadoop2.7/python/lib/py4j-0.10.4-src.zip:/home/hduser/spark2.2.0-bin-hadoop2.7/python
324
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Ketikkan:
hduser@Master:~$ sudo gedit ~/.bashrc
Pastikan pada file “bashrc” anda sudah berisi:
..
export
export
export
export
export
export
export
export
export
export
export
export
JAVA_HOME=/usr/lib/jvm/java-8-oracle
JRE_HOME=/usr/lib/jvm/java-8-oracle/jre
HADOOP_INSTALL=/usr/local/hadoop
PATH=$PATH:$HADOOP_INSTALL/bin
PATH=$PATH:$HADOOP_INSTALL/sbin
HADOOP_MAPRED_HOME=$HADOOP_INSTALL
HADOOP_COMMON_HOME=$HADOOP_INSTALL
HADOOP_HDFS_HOME=$HADOOP_INSTALL
YARN_HOME=$HADOOP_INSTALL
HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib/native"
HADOOP_CLASSPATH=/usr/lib/jvm/java-8-oracle/lib/tools.jar
export
export
export
export
SPARK_HOME=/home/hduser/spark-2.2.0-bin-hadoop2.7
PATH=$PATH:$SPARK_HOME/bin
PATH=$PATH:$SPARK_HOME/bin/pyspark
XDG_RUNTIME_DIR=""
# Add the PySpark classes to the Python path:
export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH
export MAHOUT_HOME=/usr/local/mahout
export PATH=$PATH:$MAHOUT_HOME/bin
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
# added by Anaconda2 4.4.0 installer
export PATH="/home/hduser/anaconda/bin:$PATH“
..
Fie “wordc.py” berhasil dijalankan, link file kode:
“https://goo.gl/Fu6geJ” atau dari “https://goo.gl/QZiLyX”
325
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Solusi untuk hidden “Setting default log level to "WARN".”
Masuk ke directory spark, lalu
hduser@Master:~$ cd ./spark-2.2.0-bin-hadoop2.7/
326
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Solusi untuk hidden “Setting default log level to "WARN".”
Masuk ke directory spark, lalu
hduser@Master:~$ cd ./spark-2.2.0-bin-hadoop2.7/
hduser@Master:~/spark-2.2.0-bin-hadoop2.7$ cd ./conf/
hduser@Master:~/spark-2.2.0-bin-hadoop2.7/conf$ ls
Solusi untuk hidden “Setting default log level to "WARN".”
hduser@Master:~/spark-2.2.0-bin-hadoop2.7/conf$ sudo cp
./log4j.properties.template ./log4j.properties
Replace semua isi file “log4j.properties” dengan isi file
dari link “https://goo.gl/GiWCfy”
Restart pySpark dengan tekan control+D atau ketik quit(),
lalu tekan enter
Lalu jalankan lagi file *.py
Setting default log
level to "WARN“
sudah berhasil
terhidden
327
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Cara meng-copy Environment Variables 1 of 3.
Misal, anda baru saja membuat file baru dengan nama
“hdfs_wordcount.py”, maka biasanya Environment Variables
belum lengkap, seperti gambar berikut
Cara meng-copy Environment Variables 2 of 3
Solusinya, anda bisa mengisinya dengan cara meng-copy, misal
dari Environment Variables
dari file “wordc.py” kita klik, lalu blok pada konfigurasi
lalu klik icon Copy
328
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Cara meng-copy Environment Variables 3 of 3
Lalu klik lagi file “hdfs_wordcount.py”, pilih Environment
Variables, lalu klik icon Paste, klik OK, klik Apply, klik
OK
Code hdfs_wordcount.py streaming berhasil dijalankan.
Link file kode “https://goo.gl/vY6f4E”
Karena file kode tersebut streaming, maka akan selalu
mencari file baru untuk diproses kembali dengan konsep
wordcount setiap waktu (misal per detik)
Proses Streaming, dari setiap waktu koding
akan dijalankan untuk melakukan proses
wordcount jika ada data baru yang masuk di
hdfs, misal : /user/hduser/wordcount/input
Pada bagian hijau, Proses belum ada karena
pada alamat hdfs tersebut masih belum ada
data baru yang masuk
329
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Tampilan isi dari alamat “/user/hduser/wordcount/input” pada
hdfs yang masih belum ada data baru yang masuk (masih
kosong)
Misal kita telah set “ssc.awaitTerminationOrTimeout(60*10)
untuk proses streaming supaya dijalankan selama 10 menit”,
lalu jalankan code hdfs_wordcount.py streaming
Pada saat koding dijalankan, untuk melakukan proses wordcount maka masukkan file
text sembarang ke alamat /user/hduser/wordcount/input pada hdfs, misal file terebut
adalah “input.txt” dan “input2.txt”, dari link berikut “https://goo.gl/6d7CWQ”
330
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Pada saat koding dijalankan, untuk melakukan proses
wordcount maka masukkan file text sembarang ke alamat
:/user/hduser/wordcount/input pada hdfs, pada Hue klik
Upload, klik “Select files”
Klik Open
Tampilan pada Hue setelah Klik Open
331
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Segera kembali ke PyCharm, maka hasil wordcount untuk file
“input.txt” akan muncul
Misal melakukan proses wordcount lagi untuk file yang kedua
ke alamat :/user/hduser/wordcount/input pada hdfs, pada Hue
klik Upload, klik “Select files”
Klik Open
332
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Tampilan pada Hue setelah Klik Open
Segera kembali ke PyCharm, maka hasil wordcount untuk file
“input2.txt” akan muncul
333
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Wordcount streaming ke-2.
Link file kode “https://goo.gl/cnGuHo”
Copy semua file pada project di PyCharm, misal nama
projectnya “pySparkWordCount”
Hasil Copy semua file pada project di PyCharm, misal nam
projectnya “pySparkWordCount”.
1. Run file “streaming.py”, lalu
2. Run file “file.py” pada terminal
334
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
1. file “streaming.py” telah aktif, lalu
2. Run file “file.py” pada terminal, ketik seperti dibawah
ini, lalu tekan enter
1. file “streaming.py” telah aktif dan telah memproses
wordcount lalu
2. file “file.py” telah aktif pada terminal, untuk simulasi
membuat file streaming log{}.txt
335
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Wordcount streaming ke-3 (pySpark Streaming (HDFS File) &
Pycharm). Link file kode “”
Buat project baru di PyCharm, misal nama projectnya
“pySparkWordCountHDFS”
Atau dengan cara buat package pada PycharmProjects, misal
nama package-nya “pySparkWordCountHDFS”
336
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Hapus file “__init__.py”
Copy file dari “pySparkWordCountLocal” ke
“pySparkWordCountHDFS”
337
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Hasil Copy semua file pada project di PyCharm, misal nam
projectnya “pySparkWordCount”.
1. Run file “streaming.py”, lalu
2. Run file “file.py” pada terminal
1. file “streaming.py” telah aktif, lalu
2. Run file “file.py” pada terminal, ketik seperti dibawah
ini, lalu tekan enter
338
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
1. file “streaming.py” telah aktif dan telah memproses
wordcount lalu
2. file “file.py” telah aktif pada terminal, untuk simulasi
membuat file streaming log{}.txt
– pySpark Naive Bayes (From Scratch) & Pycharm
Link file kode “https://goo.gl/i9Cn5v”
Buat package baru di PyCharm, misal namanya “pySparkNB”, dan
masukkan file “train_pos.txt‘, train_neg.txt‘,
test_pos.txt‘, test_neg.txt” ke dalam HDFS pada
hdfs://localhost:9000/user/hduser/NB_files
339
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Tampilan file “train_pos.txt‘, train_neg.txt‘,
test_pos.txt‘, test_neg.txt” pada
hdfs://localhost:9000/user/hduser/NB_files dengan Hue
8.1.7 IntelliJ IDEA + SBT
- Setting up Scala Spark + SBT Dev Environment using IntelliJ IDEA
Download IntelliJ IDEA lalu ekstrak, misal di folder
/usr/local/
340
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Tampilan folder hasil download
hduser@Master:~$ sudo chown hduser:hadoop -R /usr/local/idea-IC
hduser@Master:~$ sudo chmod 777 -R /usr/local/idea-IC
Edit file bashrc, tambahkan “export IBUS_ENABLE_SYNC_MODE=1”
hduser@Master:~$ sudo subl ~/.bashrc
Atau gunakan, hduser@Master:~$ sudo gedit ~/.bashrc
hduser@Master:~$ source ~/.bashrc
341
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Jalankan IntelliJ IDEA.
hduser@Master:~$ cd /usr/local/idea-IC/bin/
hduser@Master:/usr/local/idea-IC/bin$ ./idea.sh
Misal pilih “Do not import settings” Klik OK
Pilih Theme
342
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Centang “Create a desktop ..”
dan “For all users ..”
Create Launcher Script
Klik Next
343
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Klik Install Scala
Klik Install and Enable -> Optional (Sebaiknya tidak perlu
install IdeaVim)
Klik “Start using IntelliJ IDEA” 1 of 2
344
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Klik “Start using IntelliJ IDEA” 2 of 2
Klik “Create New Project”
Klik Scala, pilih SBT, klik Next
345
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masukkan name, misal “MYSVMnBPPGD”
Karena menggunakan SBT, sebaiknya uncheck pada Sources pada
Scala, lalu klik Finish
Klik File, pilih “Project Structure...”
346
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Klik Modules, Pada “mysvmnbppgd”, Klik tab “Dependencies”,
set seperti berikut
Klik Modules, Pada “mysvmnbppgd-build”, Klik tab
“Dependencies”, set seperti berikut, klik Apply, klik OK
347
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Tampilan di IntelliJ IDEA
Tampilan di Explorer Linux (nautilus)
348
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Ketikkan berikut, agar folder tidak terkunci
hduser@Master:~$ cd ./ideaProject
hduser@Master:~/ideaProject$ sudo chmod 777 -R ./
Download kode program SVM dari link: https://goo.gl/TVMZGn
(sudah dgn kernel Poly) atau https://goo.gl/ttW5c9 (belum
ada kernel Poly)
Copy file build.sbt dari folder “/home/nidos/Download/BPPGDmaster” ke “/home/hduser/ideaProject/MYSVMnBPPGD”
349
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Copy semua file dari folder “/home/nidos/Download/BPPGDmaster/src/main/scala” ke
“/home/hduser/ideaProject/MYSVMnBPPGD/src/main/scala”
Klik Replace
Lalu ketikkan lagi berikut:
hduser@Master:~/ideaProject$ sudo chmod 777 -R ./
350
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Masuk Ke “Modules”, pada “mysvmbppgd”, klik “Dependencies”,
klik tanda “-” merah. Klik Apply, klik OK
Masuk Ke “Project Structure”, klik Libraries
Klik tanda “-” warna merah, klik OK
351
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Klik Apply, klik OK
Lalu ketikkan lagi
hduser@Master:~/ideaProject$ sudo chmod 777 -R ./
Buka file “build.sbt” pada IntelliJ IDEA
352
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Klik “Enable auto-Import”
Tunggu beberapa waktu, sampai semua file dependency sudah
selesai didownload
353
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Jika muncul error
Error:Error while importing SBT project:<br/>...<br/><pre>[error]
public: unable to get
resource for amplab#spark-indexedrdd;0.4.0: res=https://repo1.maven.org/maven2/amplab/sparkindexedrdd/0.4.0/spark-indexedrdd-0.4.0.pom: java.net.UnknownHostException: repo1.maven.org
[error]
Spark Packages Repo: unable to get resource for amplab#spark-indexedrdd;0.4.0:
res=http://dl.bintray.com/spark-packages/maven/amplab/spark-indexedrdd/0.4.0/spark-indexedrdd0.4.0.pom: java.net.UnknownHostException: dl.bintray.com
[error]
Repo at github.com/ankurdave/maven-repo: unable to get resource for amplab#sparkindexedrdd;0.4.0: res=https://raw.githubusercontent.com/ankurdave/mavenrepo/master/amplab/spark-indexedrdd/0.4.0/spark-indexedrdd-0.4.0.pom:
java.net.UnknownHostException: raw.githubusercontent.com
[error]
[error] unresolved dependency: com.ankurdave#part_2.10;0.1: Resolution failed several times for
dependency: com.ankurdave#part_2.10;0.1 {compile=[default(compile)]}::
[error]
public: unable to get resource for com/ankurdave#part_2.10;0.1:
res=https://repo1.maven.org/maven2/com/ankurdave/part_2.10/0.1/part_2.10-0.1.pom:
java.net.UnknownHostException: repo1.maven.org
[error]
Spark Packages Repo: unable to get resource for com/ankurdave#part_2.10;0.1:
res=http://dl.bintray.com/spark-packages/maven/com/ankurdave/part_2.10/0.1/part_2.10-0.1.pom:
java.net.UnknownHostException: dl.bintray.com
[error]
Repo at github.com/ankurdave/maven-repo: unable to get resource for
com/ankurdave#part_2.10;0.1: res=https://raw.githubusercontent.com/ankurdave/mavenrepo/master/com/ankurdave/part_2.10/0.1/part_2.10-0.1.pom: java.net.UnknownHostException:
raw.githubusercontent.com
[error]
[error] unresolved dependency: org.scalatest#scalatest_2.11;2.2.4: Resolution failed several
times for dependency: org.scalatest#scalatest_2.11;2.2.4 {test=[default(compile)]}::
[error]
public: unable to get resource for org/scalatest#scalatest_2.11;2.2.4:
res=https://repo1.maven.org/maven2/org/scalatest/scalatest_2.11/2.2.4/scalatest_2.11-2.2.4.pom:
java.net.UnknownHostException: repo1.maven.org
[error]
Spark Packages Repo: unable to get resource for org/scalatest#scalatest_2.11;2.2.4:
res=http://dl.bintray.com/sparkpackages/maven/org/scalatest/scalatest_2.11/2.2.4/scalatest_2.11-2.2.4.pom:
java.net.UnknownHostException: dl.bintray.com
[error]
Repo at github.com/ankurdave/maven-repo: unable to get resource for
org/scalatest#scalatest_2.11;2.2.4: res=https://raw.githubusercontent.com/ankurdave/mavenrepo/master/org/scalatest/scalatest_2.11/2.2.4/scalatest_2.11-2.2.4.pom:
java.net.UnknownHostException: raw.githubusercontent.com
[error]
[error] unresolved dependency: org.scalacheck#scalacheck_2.11;1.12.2: Resolution failed several
times for dependency: org.scalacheck#scalacheck_2.11;1.12.2 {test=[default(compile)]}::
[error]
public: unable to get resource for org/scalacheck#scalacheck_2.11;1.12.2:
res=https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.12.2/scalacheck_2.111.12.2.pom: java.net.UnknownHostException: repo1.maven.org
[error]
Spark Packages Repo: unable to get resource for
org/scalacheck#scalacheck_2.11;1.12.2: res=http://dl.bintray.com/sparkpackages/maven/org/scalacheck/scalacheck_2.11/1.12.2/scalacheck_2.11-1.12.2.pom:
java.net.UnknownHostException: dl.bintray.com
[error]
Repo at github.com/ankurdave/maven-repo: unable to get resource for
org/scalacheck#scalacheck_2.11;1.12.2: res=https://raw.githubusercontent.com/ankurdave/mavenrepo/master/org/scalacheck/scalacheck_2.11/1.12.2/scalacheck_2.11-1.12.2.pom:
java.net.UnknownHostException: raw.githubusercontent.com
[error] Total time: 9 s, completed Dec 16, 2017 1:27:20 PM</pre><br/>See complete log in <a
href="file:/home/hduser/.IdeaIC2017.2/system/log/sbt.last.log">file:/home/hduser/.IdeaIC2017.2/s
ystem/log/sbt.last.log</a>
Maka solusinya cek koneksi internet anda
354
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Maka solusinya cek koneksi internet anda, dengan klik “Wired
connection 1”
Semua file dependencies dari Build.sbt sudah berhasil
didownload, abaikan warning pada log
355
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Untuk menjalankan kode program, buka file main.scala, klik
kanan, pilih “TestKernelSVM”
Kode program, berhasil dibuild, dan ada petunjuk “sparksubmit ..”, jika mau menjalankan dari Terminal
Usage: /path/to/spark/bin/spark-submit --packages amplab:sparkindexedrdd:0.4.0target/scala-2.11/ppackubuntu_2.11-1.0.jar <data file>
356
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Pada tipe “VALIDATION”, pada file “main.scala” terdapat
args(0), args(1), .., args(6)
-
args(0),
args(1),
format
args(2),
args(3),
args(4),
args(5),
args(6),
tipe
trainingfile: Path of the training set in libsvm
lambda: Regularization Term
sigma: Kernel Parameter
iterations: Number of iterations
outputfile: log file
numfeatures: Number of variables of the dataset
Contoh argument yang digunakan:
VALIDATION
file:///home/hduser/ideaProject/MYSVMnBPPGD/iris3.txt
0.8
1.0
10
result.txt
4
Pada tipe “TEST”, pada file “main.scala” terdapat args(0),
args(1), .., args(6), args(7)
-
args(0),
args(1),
format
args(2),
args(3),
args(4),
args(5),
args(6),
args(7),
format
tipe
trainingfile: Path of the training set in libsvm
lambda: Regularization Term
sigma: Kernel Parameter
iterations: Number of iterations
outputfile: log file
numfeatures: Number of variables of the dataset
testingfile: Path of the testing set in libsvm
Contoh argument yang digunakan:
args(0)="TEST"
args(1)="file:///home/hduser/ideaProject/MYSVMnBPPGD/iris3.txt"
args(2)="0.8"
args(3)="1.0"
args(4)="20"
args(5)="result.txt"
args(6)="4"
args(7)="file:///home/hduser/ideaProject/MYSVMnBPPGD/iristest3.txt"
357
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Cara Set Argument di IntelliJ IDEA: Klik Run, pilih “Edit
Configurations....”
Cara Set Argument di IntelliJ IDEA: Pada “Program argument”,
masukkan, misal seperti berikut, lalu klik OK, klik Apply,
klik OK
VALIDATION
file:///home/hduser/ideaProject/MYSVMnBPPGD/iris3.txt
0.8
1.0
10
result.txt
4
358
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Running kembali kode programnya, klik kanan “main.scala”,
pilih Run ”TestKernelSVM”
Hasil Running kembali kode program
result.txt, berisi:
Training time: 10 Accuracy: 1.0 AUC: 1.0
Training time: 5 Accuracy: 1.0 AUC: 1.0
Training time: 4 Accuracy: 1.0 AUC: 1.0
Training time: 3 Accuracy: 1.0 AUC: 1.0
Training time: 2 Accuracy: 1.0 AUC: 1.0
Mean_Accuracy: 1.0 Mean_AUC: 1.0
359
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Tampilan project
Running tanpa argument (tipe TEST). Pastikan agument pada
“Run Edit Configurations.. Program argument” telah
kosong
Lalu pada file main.scala, dibawahnya kode “def main(args:
Array[String]) {”, tambahkan kode berikut
//untuk tipe TEST
//val args = Array("","","","","","","","") atau
val args = Array.fill(8)("")
Lalu set arguments-nya diatas koding “val action = args(0)”,
misal
args(0)="TEST"
args(1)="file:///home/hduser/ideaProject/MYSVMnBPPGD/iris3.txt"
args(2)="0.8"
args(3)="1.0"
args(4)="20"
args(5)="resultTest.txt"
args(6)="4"
args(7)="file:///home/hduser/ideaProject/MYSVMnBPPGD/iristest3.txt"
Hasil Running tanpa argument (tipe TEST)
360
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
8.1.8 Konfigurasi & Solusi Error/Bug
- Ubuntu Desktop does not load Atau Remove Icon Red Minus
Ketikkan perintah berikut,
Tekan Ctrl+Alt+F1/F2/../F6 atau masuk ke
/usr/share/applications/Xterm, lalu
sudo apt-get install gnome-panel
sudo mv ~/.Xauthority ~/.Xauthority.backup
sudo apt-get install unity-tweak-tool
unity-tweak-tool --reset-unity
Untuk mengembalikan terminal yang hilang (gunakan xterm):
sudo apt-get remove gnome-terminal
sudo apt-get install gnome-terminal
nidos@Master:~$ sudo rm /var/cache/apt/archives/*.*
nidos@Master:~$ sudo rm -R /var/lib/dpkg/info
nidos@Master:~$ cd /var/lib/dpkg/
nidos@Master:/var/lib/dpkg$ sudo mkdir info
nidos@Master:~$ sudo apt-get clean
cat -n /etc/apt/sources.list
ls -la /etc/apt/sources.list.d
tail -v -n +1 /etc/apt/sources.list.d/*
sudo apt-get update
sudo apt-get upgrade
sudo apt-get --reinstall install python3-minimal
- Cara Membuat Icon Eclipse di Ubuntu
Ketikkan perintah berikut:
hduser@Master:~$ sudo mkdir ~/.local/share/applications
hduser@Master:~$ sudo chmod 777 -R ~/.local/share/applications
hduser@Master:~$ sudo gedit ~/.local/share/applications/opt_eclipse.desktop
[Desktop Entry]
Type=Application
Name=Eclipse
Comment=Eclipse Integrated Development Environment
Icon=/home/hduser/eclipse/jeeAnda install Eclipse
Exec=/home/hduser/eclipse/jeeAnda install Eclipse
Terminal=false
Categories=Development;IDE;Java;
StartupWMClass=Eclipse
361
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Ketikkan perintah berikut:
hduser@Master:~$ sudo chmod 777 -R ~/.local/share/applications
hduser@Master:~$ sudo nautilus ~/.local/share/applications
Copy Icon Eclipse, lalu paste di Desktop
Hasil paste di Desktop, jangan lupa ketikkan kode berikut:
hduser@Master:~$ cd /usr/local/hadoop
hduser@Master:/usr/local/hadoop$ bin/hadoop fs -chmod -R 777 /
*Agar HDFS hduser bisa juga digunakan oleh user lain, misal nidos,
sehingga ketika eclipse dijalankan dari Desktop nidos, hasil data
prosesing dapat disimpan pada HDFS hduser.
362
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Coba Running dari Desktop
- Solusi Jika Muncul Error pada saat Configure Python Interpreter di
PyCharm
Coba ketikkan berikut:
nidos@Master:~$ sudo apt-get install python-setuptools
nidos@Master:~$ sudo apt-get install python-pip python-dev build-essential
nidos@Master:~$ sudo pip install setuptools --upgrade
363
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
8.2 Konfigurasi Tambahan
8.2.1 Create VM dari file *.vdi dan UUID Baru
- Pada Virtualbox, jika butuh untuk melakukan cloning file *.vdi,
isal Hadoop“pa k. di ke folde lai da di e a e de ga a a
Hadoop“pa kMahoutFi . di
Copy paste file *.vdi, lalu rename filenya dengan
nama bebas
Gambar 8.3 Copy paste file *.vdi
- “et a e UUID u tuk file Hadoop“pa kMahoutFi . di , aga
UUID-nya tidak sama de ga file asli a, aitu Hadoop“pa k. di ,
de ga a a, teka to ol i do , lalu ketik
d uka d as
administrator).
Gambar 8.4 Buka cmd as administrator
364
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Ketikka
d C:\Program Files\Oracle\Vi tualBo , atau di e to
tempat VirtualBox di-install. Lalu tekan enter
Gambar 8.5 Ketikkan “cd C:\Program Files\Oracle\VirtualBox”
- Lalu ketikka
o a age i te al o
a ds sethduuid "E:\VirtualBox VMs\HadoopSparkMahout\Hadoop“pa kMahoutFi . di"
Gambar 8.6 Lalu ketikkan “vboxmanage sethduuid”
- Buka Vi tual o , uat VM a u de ga klik Ne
name dengan Hadoop“pa kMahout , klik Ne t
, lalu
asukka
Gambar 8.7 Buka Virtualbox
365
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- “et Me o
size,
isal
MB , klik Ne t
Gambar 8.8 Set Memory size, misal “5000MB”
- Pilih Use a e isti g i tual ha d disk file de ga
pilih Hadoop“pa kMahoutFi . di , klik Ope
a a klik O ,
Gambar 8.9 Pilih “Use an existing virtual hard disk file”
366
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Virtual Machine siap untuk dijalankan
Gambar 8.10 Virtual Machine siap untuk dijalankan
8.2.2 Share Folder Pada Linux Pada VirtualBox
- Jalankan Virtual Machine
Gambar 8.11 Jalankan Virtual Machine
367
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Misal Folder di Window yang akan di-share ke Linux adalah sebagai
e ikut: E:\VirtualBox VMs\File “ha e
Gambar 8.12 Folder di Window yang akan di-share
- Klik Devices Shared Folders Shared Folders Settings...
hduser@Master:~$ sudo chown hduser:hadoop -R
/usr/local/mahout/
hduser@Master:~$ ls -l /usr/local/mahout/
Gambar 8.13 Klik Devices Shared Folders
368
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Klik Adds e sha ed folde Othe ....
Gambar 8.14 Klik “Adds new shared folder”
- Pilih Folde Path E:\VirtualBox VMs\File “ha e
Gambar 8.15 Pilih Folder
369
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Pilih Folde Path E:\VirtualBox VMs\File “ha e , ek Auto- ou t
da Make Pe a e t , klik OK
Gambar 8.16 cek “Auto-mount” dan “Make Permanent”, klik OK
- Klik OK
Gambar 8.17 Kik OK
370
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Cek pada Media sf_File_“ha e , jika u ul This lo atio
ot e displa ed.
ould
Gambar 8.18 Cek pada Media “sf_File_Share”
- Maka buka terminal, ketikkan:
nidos@Master:~$ sudo chown nidos:nidos -R
/media/sf_File_Share/
nidos@Master:~$ sudo mount -t vboxsf File_Share
/media/sf_File_Share/
Gambar 8.19 set mount dari Terminal ke-1
371
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
- Jika tetap tidak bisa masuk, coba ketikkan:
nidos@Master:~$ sudo su
root@Master:/home/nidos# cd
root@Master:~# umount /media/sf_File_Share/
root@Master:~# su nidos
nidos@Master:/root$ cd
nidos@Master:~$ sudo mount -t vboxsf File_Share
/media/sf_File_Share/
Gambar 8.20 set mount dari Terminal ke-2 (Fix)
372
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
8.3 Konfigurasi Hadoop + MongoDB
NoSQL (Not Only SQL, atau maknanya kurang lebih adalah
"tidak hanya SQL") adalah kelas yang luas dari sistem
manajemen basis data yang di identifikasikan tidak mematuhi
aturan pada model sistem manajemen basis data relasional
yang banyak digunakan.
Gambar 8.21 Relational Vs Non-Relational DB
NoSQL tidak dibangun terutama dengan tabel dan umumnya
tidak menggunakan SQL untuk memanipulasi data.
Gambar 8.22 Collection pada NoSQL
Teorema CAP menyatakan bahwa, tidak mungkin untuk
sebuah sistem komputer terdistribusi secara bersamaan,
memberikan ketiga jaminan sebagai berikut:
373
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
o
Consistency: Semua node melihat data yang sama
dalam waktu yang bersamaan.
o
Availability: Jaminan pada setiap permintaan,
menerima tanggapan tentang apakah itu berhasil atau
tidak.
o
Partition tolerance: Sistem terus beroperasi meski
sistem yang lain gagal.
Visual NoSQL System:
Gambar 8.23 Visual NoSQL System
Gambar 8.24 Bentuk NoSQL
MongoDB merupakan open-source document database dari
keluarga NoSQL, yang memberikan kinerja tinggi, high availability, dan
automatic scaling.
374
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 8.25 SQL Vs NoSQL
Document, Data pada MongoDB dikenal sebagai document.
MongoDB menggunakan BSON (Binary JSON) serialization sebagai
format penyimpanan data untuk document, mirip dengan JSON
(JavaScript Object Notation). Contoh document:
375
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
{
"_id": ObjectId('58520a516a2ea8e208cd6c26'),
"name": "Employee One",
"salary": 20000
}
Source Code 8.1 Contoh Document BSON
Contoh Penggunaan
SQL:
SELECT *
FROM employeedetails
WHERE name = "Employee One"
OR salary = 20000
Source Code 8.2 Contoh Penggunaan BSON
MongoDB:
db.employeedetails.find(
{
$or: [
{ name: "Employee One" },
{ nomor: 20000 }
]
})
Source Code 8.3 Contoh Penggunaan BSON
SQL Vs MongoDB:
Tabel 8.1 Perbedaan SQL dengan MongoDB
SQL
MongoDB
database
Database
table
Collection
row
Document
column
Field
index
Index
376
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
table joins
Embedded documents dan linking
primary key
primary key
Case Study: Mengolah data dan menyimpan hasilnya ke
MongoDB:
Wordcount
Rating By Movie
Note: Secara default, Map Reduce akan menyimpan hasilnya
di file teks biasa di HDFS. Hal ini sangat tidak praktis jika
memang hasilnya ingin dimasukkan ke NoSQL supaya mudah
dibaca.
1. Running Hadoop (Save hasil di MongoDB)
- Lakukan perintah (Install MongoBD untuk simpan file
hasil running kode program di Hadoop):
nidos@master:~$ sudo apt-get install mongodb
nidos@master:~$ sudo apt-get update
nidos@master:~$ sudo service mongodb start
start: Job is already running: mongodb
nidos@master:~$ mongo
MongoDB shell version: 2.4.9
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodbuser
> use mydb;
switched to db mydb
> db;
mydb
> db.employeedetails.insert({name:"Employee
One",salary:20000});
> db.employeedetails.find();
{ "_id" : ObjectId("58520a516a2ea8e208cd6c26"),
"name" : "Employee One", "salary" : 20000 }
> exit
bye
Source Code 8.4 Install MongoBD untuk simpan file hasil running
kode program di Hadoop
377
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
2. Running Hadoop (Install GUI MongoDB)
- Lakukan perintah:
nidos@master:~$ sudo apt-get install curl
nidos@master:~$ curl http://packages.litixsoft.de/installer.sh | sh
Enter ´sudo ./bbs-installer.sh´ to start
installation...
nidos@master:~$ sudo ./bbs-installer.sh
Source Code 8.5 Running Hadoop (Install GUI MongoDB)
Gambar 8.26 Hasil Running Hadoop (Install GUI MongoBD)
nidos@master:~$ sudo ./bbs-installer.sh
BaboonStack Installer for Linux/MacOS
Local Packet found...
Install baboonstack-v1.5.1-linuxx64.tar.gz...
Create /opt/litixsoft/baboonstack...
Extract Files...
Execute Installscript bbs/lxscript.sh...
SUCCESS: Enter ´bbs´ for package
updates.
...
Install MongoDB v2.6.7?: [Y/n] n
sudah Install
Jika
Source Code 8.6 Running Hadoop (Install GUI MongoDB)
378
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Install RedisIO v2.8.4?: [Y/n] Y
Install Node.js v0.12.0?: [Y/n] Y
Activate Io.js support?: [Y/n] Y
lxManager for BaboonStack - Litixsoft
GmbH 2015
Upgrade successful
nidos@master:~$ sudo tar xvzf
/home/nidos/Desktop/GUI\ Mongo/mmsv1.9.4-community-linux.tar.gz
nidos@master:~$ sudo tar xvzf mmsv1.9.4-community-linuxx86_64.tar.gznidos@master:~$ cd mmsv1.9.4-community-linux-x86_64/
Source Code 8.7 Running Hadoop (Install GUI MongoDB) Cont
- Lakukan perintah:
nidos@master:~/mms-v1.9.4community-linux-x86_64$ cd lxmms
nidos@master:~/mms-v1.9.4community-linux-x86_64/lx-mms$
sudo nano config.js
Source Code 8.8 Install GUI MongoDB Cont
Gambar 8.27 Tampilan Install GUI MongoDB
379
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
nidos@master:~/mms-v1.9.4community-linux-x86_64/lx-mms$
sudo ./start
-
Lakukan perintah:
nidos@master:~/mms-v1.9.4-community-linux-x86_64/lx-mms$ sudo
./start
Gambar 8.28 Tampilan Install GUI MongoDB
-
Lakukan perintah (http://127.0.0.1:3333/):
nidos@master:~/mms-v1.9.4-communitylinux-x86_64/lx-mms$ sudo ./start
Gambar 8.29 Hasil perintah (http://127.0.0.1:3333/)
380
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
nidos@master:~/mms-v1.9.4-communitylinux-x86_64/lx-mms$ sudo ./start
Create/Edit connection
Name: ..........., misal “test”
Server connection*:
[username:password@]host1[:port1][,host2
[:port2],....,[,hostN[:portN]]], misal
“localhost”
Source Code 8.9 perintah (http://127.0.0.1:3333/)
Gambar 8.30 Hasil perintah (http://127.0.0.1:3333/)
nidos@master:~/mms-v1.9.4-community-linux-x86_64/lx-mms$ sudo
./start
Gambar 8.31 Perintah (http://127.0.0.1:3333/) test Connection
nidos@master:~/mms-v1.9.4community-linux-x86_64/lx-mms$
sudo ./start
381
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 8.32 Perintah (http://127.0.0.1:3333/)
3. Konfigurasi Koneksi (Hadoop + MongoDB)
- Lakukan perintah:
nidos@master:/usr/local/hadoop$ sudo
apt-get install git
nidos@master:/usr/local/hadoop$ git
clone
https://github.com/mongodb/mongohadoop
nidos@master:/usr/local/hadoop$ cd
mongo-hadoop
nidos@master:/usr/local/hadoop/mongo
-hadoop$ ./gradlew jar
Source Code 8.10 Konfigurasi Koneksi (Hadoop + MongoDB)
Gambar 8.33 Konfigurasi Koneksi (Hadoop + MongoDB)
382
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
4. Cop
file
o go-hadoop-core- . . .ja
/usr/local/hadoop/mongo-hadoop/core/build/libs.
compile dari langkah sebelumnya:
nidos@master:/usr/local/hadoop/mongo-hadoop$
./gradlew jar
Gambar 8.34 Cop file
da i
hasil
o go-hadoop-core- . . .ja
5. Do load
file
o go-java-d i e
da i
li k
http://central.maven.org/maven2/org/mongodb/mongojava-driver/ dan pilih versi terbaru, misal
o go-javadriver- . . .ja
Gambar 8.35 file
o go-java-d i e
Setelah selesai build, copy-kan file jars (“mongo-hadoopcore-2.0.1.jar” dan “mongo-java-driver-3.4.0.jar”) ke directory lib
pada setiap node (master, node1, node2, node3) di hadoop cluster. Berikut lokasinya yang bergantung pada versi Hadoop:
383
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
$HADOOP_PREFIX/lib/
$HADOOP_PREFIX/share/hadoop/mapreduce/
$HADOOP_PREFIX/share/hadoop/lib/
Misal 2 file jar tersebut sudah disiapkan di
“/home/nidos/Desktop/kode/WordCountMongo/”
nidos@master:~/Desktop/kode/WordCountMongo$ ls
mongo-hadoop-core-2.0.1.jar WordCountMongo.java
mongo-java-driver-3.4.0.jar
Untuk PC master:
nidos@master:~$ cp
/home/nidos/Desktop/kode/WordCountMongo/mongo*
/usr/local/hadoop/lib
nidos@master:~$ cp
/home/nidos/Desktop/kode/WordCountMongo/mongo*
/usr/local/hadoop/share/hadoop/mapreduce
nidos@master:~$ mkdir r
/usr/local/hadoop/share/hadoop/lib
nidos@master:~$ cp
/home/nidos/Desktop/kode/WordCountMongo/mongo*
/usr/local/hadoop/share/hadoop/lib
Source Code 8.11 copy file jars (“mongo-hadoop-core-2.0.1.jar”
dan “mongo-java-driver-3.4.0.jar”) ke directory lib pada setiap di
hadoop cluster
384
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Untuk PC node1:
nidos@node1:~$ scp nidos@master:/home/nidos/Desktop/kode/WordCountMongo/mongo* /usr/local/hadoop/lib
nidos@node1:~$ scp nidos@master:/home/nidos/Desktop/kode/WordCountMongo/mongo* /usr/local/hadoop/share/hadoop/mapreduce
nidos@node1:~$ mkdir r
/usr/local/hadoop/share/hadoop/lib
nidos@node1:~$ scp nidos@master:/home/nidos/Desktop/kode/WordCountMongo
/mongo* /usr/local/hadoop/share/hadoop/lib
Lakukan juga pada node2 dan node3
Untuk PC node3:
nidos@node3:~$ scp nidos@master:/home/nidos/Desktop/kode/WordCountMongo/mongo* /usr/local/hadoop/lib
nidos@node3:~$ scp nidos@master:/home/nidos/Desktop/kode/WordCountMongo/mongo* /usr/local/hadoop/share/hadoop/mapreduce
nidos@node3:~$ mkdir r
/usr/local/hadoop/share/hadoop/lib
nidos@node3:~$ scp nidos@master:/home/nidos/Desktop/kode/WordCountMongo/mongo* /usr/local/hadoop/share/hadoop/lib
Source Code 8.12 copy file jars (“mongo-hadoop-core-2.0.1.jar”
dan “mongo-java-driver-3.4.0.jar”) ke directory lib pada setiap di
hadoop cluster Cont
385
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 8.36 copy file jars (“mongo-hadoop-core-2.0.1.jar” dan
“mongo-java-driver-3.4.0.jar”) ke dir. lib pada tiap di hadoop
cluster
8.3.1 WordCount
1. Running Hadoop WordCount (Save hasil di MongoDB)
- Buat DB test
Gambar 8.37 Buat DB “testmr”
-
Buat Colle to i o DB test
Klik ka a pada DB test
, lalu pilih Add olle tio .. ,
e i a a isal i , lalu klik “a e
386
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 8.38 Tampilan Add Collection
-
I po t file *.jso as olle tio pada DB test
ke
olle tio
i
se agai file i put u tuk diproses oleh
WordCountMongo.java
Gambar 8.39 I po t file *.jso
as olle tio pada DB test
olle tio i
-
ke
I po t file *.jso as olle tio pada DB test
se agai
file input untuk diproses oleh WordCountMongo.java
in.json tidak standar Mongo
{"x":
{"x":
{"x":
{"x":
{"x":
{"x":
"hello world"},
"nice to meet you"},
"good to see you"},
"world war 2"},
"see you again"},
"bye bye"}
Source Code 8.13 in.json tidak standar Mongo
387
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
in_standard.json standar Mongo
{ "x" : "hello world", "_id" : { "$oid" :
"5856c34689b0ce4a6e000001" } }
{ "x" : "nice to meet you", "_id" : {
"$oid" : "5856c34689b0ce4a6e000002" } }
{ "x" : "good to see you", "_id" : {
"$oid" : "5856c34689b0ce4a6e000003" } }
{ "x" : "world war 2", "_id" : { "$oid" :
"5856c34689b0ce4a6e000004" } }
{ "x" : "see you again", "_id" : { "$oid"
: "5856c34689b0ce4a6e000005" } }
{ "x" : "bye bye", "_id" : { "$oid" :
Source Code 8.14 in_standard.json standar Mongo
U tuk file i .jso tidak standar Mongo: Klik kanan
pada data ase atau DB test
, lalu pilih I po t
do u e ts... , lalu Isika Na e of desti atio -collection*,
isal i , lalu pilih I po t do u e ts f o te t o , lalu
isika pada Te t I put , de ga :
{"x":
{"x":
{"x":
{"x":
{"x":
{"x":
"hello world"},
"nice to meet you"},
"good to see you"},
"world war 2"},
"see you again"},
"bye bye"}
Gambar 8.40 Text Input
lalu Klik Import
-
U tuk file i .jso
tidak standar Mongo:
388
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 8.41 Import Document U tuk file i .jso
tidak standar Mongo
-
U tuk file i .jso
tidak standar Mongo:
Gambar 8.42 Import Document U tuk file i .jso
tidak standar
Mongo
-
(Klik kanan pada database atau DB test
, lalu pilih
I po t do u e ts... , lalu Isika Na e of desti atio olle tio *, isal i , lalu klik B o se.. :
Untuk file in_standard.json standar Mongo
389
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 8.43 file in_standard.json standar Mongo
-
in_standard.json standar Mongo (Klik Open)
Gambar 8.44 in_standard.json standar Mongo (Klik
Open)
-
Klik Import
390
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 8.45 Import Document
-
Hasil dari klik import
Gambar 8.46 Hasil dari Klik Import
-
Siapkan file *.java (misal WordCountMongo.java Part 1 of
2) untuk dicompile ke *.jar:
391
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
import java.util.*;
import java.io.*;
import org.bson.*;
import
com.mongodb.hadoop.MongoInputFormat;
import
com.mongodb.hadoop.MongoOutputFormat;
import
org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapreduce.*;
/**
* test.in
db.insert( { x: "eliot was here" } )
db.insert( { x: "eliot is here" } )
db.insert( { x: "who is here" } )
*
*/
public class WordCountMongo {
public static class TokenizerMapper
extends Mapper<Object, BSONObject, Text,
IntWritable> {
private final static IntWritable one
= new IntWritable(1);
private Text word = new Text();
public void map(Object key,
BSONObject value, Context context )
throws IOException,
InterruptedException {
System.out.println( "key: " +
key );
System.out.println( "value: "
+ value );
StringTokenizer itr = new
StringTokenizer(value.get( "x"
).toString());
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());
context.write(word,
one);
}
}
}
Source Code 8.15 File WordCountMongo.java Part 1 of 2
392
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Siapkan file *.java (misal WordCountMongo.java Part 2 of
2) untuk dicompile ke *.jar:
-
public static class IntSumReducer extends
Reducer<Text,IntWritable,Text,IntWritable> {
private IntWritable result = new
IntWritable();
public void reduce(Text key,
Iterable<IntWritable> values, Context context )
throws IOException,
InterruptedException {
int sum = 0;
for (IntWritable val : values) {
sum += val.get();
}
result.set(sum);
context.write(key, result);
}
}
public static void main(String[] args)
throws Exception {
Configuration conf = new Configuration();
conf.set( "mongo.input.uri" ,
"mongodb://localhost/testmr.in" );
conf.set( "mongo.output.uri" ,
"mongodb://localhost/testmr.out" );
@SuppressWarnings("deprecation")
Job job = new Job(conf, "word
count");
job.setJarByClass(WordCountMongo.class);
job.setMapperClass(TokenizerMapper.class)
;
job.setCombinerClass(IntSumReducer.class)
;
job.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class
);
job.setInputFormatClass(
MongoInputFormat.class );
job.setOutputFormatClass(
MongoOutputFormat.class );
System.exit(job.waitForCompletion(true) ?
0 : 1);
}
}
Source Code 8.16 File WordCountMongo.java Part 2 of 2
393
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
2. Menghitung Kemunculan Kata dalam file dokumen:
- file Wo dCou tMo go.ja a :
Gambar 8.47 file Wo dCou tMo go.ja a :
-
WordCountMongo.java
melakukan hal berikut:
dicompile
ke
*.jar:
dengan
nidos@master:~$ cd /usr/local/hadoop
nidos@master:/usr/local/hadoop$ cp
/home/nidos/Desktop/kode/WordCountMongo/Wo
rdCountMongo.java /usr/local/hadoop
nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main
WordCountMongo.java
Jika muncul error:
nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main
WordCountMongo.Java
error: Class names, 'WordCountMongo.Java',
are only accepted if annotation processing
is explicitly requested
1 error
Solusi: ubah “WordCountMongo.Java”
“WordCountMongo.java”
Source Code 8.17 Compile ke *.jar file WordCountMongo.java
394
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main WordCountMongo.java
Jika muncul error:
nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main WordCountMongo.java
WordCountMongo.java:4: error: package org.bson does
not exist
import org.bson.*;
^
WordCountMongo.java:6: error: package
com.mongodb.hadoop does not exist
import com.mongodb.hadoop.MongoInputFormat;
^
WordCountMongo.java:7: error: package
com.mongodb.hadoop does not exist
import com.mongodb.hadoop.MongoOutputFormat;
^
WordCountMongo.java:22: error: cannot find symbol
public static class TokenizerMapper extends
Mapper<Object, BSONObject, Text, IntWritable> {
^
symbol:
class BSONObject
location: class WordCountMongo
WordCountMongo.java:25: error: cannot find symbol
public void map(Object key, BSONObject
value, Context context )
^
symbol:
class BSONObject
location: class TokenizerMapper
WordCountMongo.java:60: error: cannot find symbol
job.setInputFormatClass(
MongoInputFormat.class );
^
symbol:
class MongoInputFormat
location: class WordCountMongo
WordCountMongo.java:61: error: cannot find symbol
job.setOutputFormatClass(
MongoOutputFormat.class );
^
symbol:
class MongoOutputFormat
location: class WordCountMongo
7 errors
Solusi: kembali ke langkah “Konfigurasi Koneksi
(Hadoop + MongoDB)” SCP
Source Code 8.18 Compile ke *.jar file WordCountMongo.java
395
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Hasil:
nidos@master:/usr/local/hadoop$
bin/hdfs
com.sun.tools.javac.Main WordCountMongo.java
Gambar 8.48 Hasil: nidos@master:/usr/local/hadoop$
bin/hdfs com.sun.tools.javac.Main WordCountMongo.java
-
Hasil: nidos@master:/usr/local/hadoop$ jar cf wcmongo.jar
WordCountMongo*.class
Gambar 8.49 Hasil: nidos@master:/usr/local/hadoop$ jar cf
wcmongo.jar WordCountMongo*.class
-
Running proses perhitungan kata dalam file dokumen dalam
MongoDB: dengan melakukan hal berikut:
396
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Jika menggunakan hdfs, maka gunakan dfs
Jika menggunakan hadoop, maka gunakan fs
nidos@master:/usr/local/hadoop$
bin/hadoop jar wcmongo.jar WordCountMongo
Source Code 8.19 Running proses perhitungan kata dalam file
dokumen dalam MongoDB
{"_id":"2","value":1}
{"_id":"again","value":1}
{"_id":"bye","value":2}
{"_id":"good","value":1}
{"_id":"hello","value":1}
{"_id":"meet","value":1}
{"_id":"nice","value":1}
{"_id":"see","value":2}
{"_id":"to","value":2}
{"_id":"war","value":1}
Gambar 8.50 Running perhitungan kata dari file dalam MongoDB
-
Lihat hasil dari MongoDB melalui terminal:
Gambar 8.51 Hasil MongoDB
-
Cek di browser:
397
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 8.52 Browse Directory
-
Cek di browser
Gambar 8.53 Browse Directory
-
Cek di browser:
Gambar 8.54 File Information di Browser
398
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
8.3.2 Movie Ratings
Case Study 2: Rating By Movie
1. Running Hadoop Rating By Movie (Save hasil di MongoDB)
- List dataset (dari MovieLens) dan Link ( https://goo.gl/Jd8GOI ):
Gambar 8.55 List dataset
-
Membuat Directories
demi satu:
ate o ie/dataset di HDFS harus satu
nidos@master:~$ cd /usr/local/hadoop
nidos@master:/usr/local/hadoop$ bin/hdfs
mkdir /user/nidos/ratemovie
nidos@master:/usr/local/hadoop$ bin/hdfs
mkdir /user/nidos/ratemovie/dataset
nidos@master:/usr/local/hadoop$ bin/hdfs
ls /user/nidos
nidos@master:/usr/local/hadoop$ bin/hdfs
ls /user/nidos/ratemovie
Source Code 8.20 Membuat Directories
-
dfs dfs dfs dfs -
ate o ie/dataset di HDFS
Copy
semua
file
dataset
dari
local
folder
(/home/nidos/Desktop/data/ratemovie/dataset) ke HDFS folder
(/user/nidos/ratemovie/dataset)
List
dataset
(dari
MovieLens)
dan
Link
(
https://goo.gl/Jd8GOI ):
399
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 8.56 List dataset (dari MovieLens)
-
Copy
semua
file
dataset
dari
local
folder
(/home/nidos/Desktop/data/ratemovie/dataset) ke HDFS folder
(/user/nidos/ratemovie/dataset)
nidos@master:/usr/local/hadoop$ bin/hdfs dfs copyFromLocal
/home/nidos/Desktop/data/ratemovie/dataset/*
/user/nidos/ratemovie/dataset
Source Code 8.21 Copy Semua File Dataset dari Local Folder
Gambar 8.57 Tampilan Browse Directory
-
Add data ase ate o ie pada Mo goDB:
400
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 8.58 Add data ase
-
Add data ase ate o ie pada Mo goDB:
Gambar 8.59 Add data ase
-
ate o ie pada Mo goDB
ate o ie pada Mo goDB
Siapkan file *.java untuk dicompile ke *.jar: da i pa kage
o ati g
o ies. idos;
401
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 8.60 List File*.java untuk di Compile ke *.jar
-
Siapkan file (MovieMapper.java Part 1 of 1) untuk dicompile ke
*.jar:
package comratingbymovies.nidos;
import java.io.IOException;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
public class MovieMapper extends
Mapper<LongWritable,Text,Text,Text>{
Text keyEmit = new Text();
Text valEmit = new Text();
public void map(LongWritable k, Text
value, Context context) throws IOException,
InterruptedException{
String
line=value.toString();
String[]
words=line.split("::");
keyEmit.set(words[0]);
valEmit.set(words[1]);
context.write(keyEmit,
valEmit);
}
}
Source Code 8.22 file (MovieMapper.java Part 1 of 1)
-
Siapkan file (MovieReducer.java Part 1 of 2) untuk dicompile ke
*.jar:
402
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
package comratingbymovies.nidos;
import java.io.IOException;
import java.util.Iterator;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.JobConf;
import
org.apache.hadoop.mapred.OutputCollector;
import org.apache.hadoop.mapred.Reporter;
import org.apache.hadoop.mapreduce.Reducer;
public class MovieReducer extends
Reducer<Text,Text,Text,IntWritable>
{
Text valTitle = new Text();
Text valEmit = new Text();
String merge;
public void reduce(Text key,
Iterable<Text> values, Context context)
throws IOException , InterruptedException{
int counter = 0;
merge = "";
for(Text value:values){
if
(value.toString().startsWith("#")){ //from
rating
counter++;
}
Source Code 8.23 file (MovieReducer.java Part 1 of 2)
-
Siapkan file (MovieReducer.java Part 2 of 2) untuk dicompile ke
*.jar:
else if
("".equalsIgnoreCase(merge)){// from movies get
the title
merge =
value.toString();
}}
valTitle.set(merge);
context.write(valTitle, new
IntWritable(counter));
}
}
Source Code 8.24 file (MovieReducer.java Part 2 of 2)
403
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Siapkan file (RatingCounterByMovieMongo.java Part 1 of 2)
untuk dicompile ke *.jar:
package comratingbymovies.nidos;
import
org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import
org.apache.hadoop.mapreduce.lib.input.Multi
pleInputs;
import
org.apache.hadoop.mapreduce.lib.input.TextI
nputFormat;
import
org.apache.hadoop.mapreduce.lib.output.File
OutputFormat;
import
org.apache.hadoop.util.GenericOptionsParser
;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;
import com.mongodb.hadoop.io.BSONWritable;
import
com.mongodb.hadoop.mapred.MongoOutputFormat
;
public class RatingCounterByMovieMongo
extends Configured implements Tool{
public int run(String[] args) throws
Exception {
final Configuration conf =
getConf();
conf.set("mongo.output.uri",
args[2]);
Path p1=new Path(args[0]);
Path p2=new Path(args[1]);
Job job = new
Job(conf,"Multiple Job");
job.setJarByClass(RatingCounterByMovi
eMongo.class);
MultipleInputs.addInputPath(job, p1,
Source Code 8.25 file (RatingCounterByMovieMongo.java Part 1 of 2)
404
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
job.setJarByClass(RatingCounterByMovi
eMongo.class);
MultipleInputs.addInputPath(job, p1,
TextInputFormat.class, RatingMapper.class);
MultipleInputs.addInputPath(job, p2,
TextInputFormat.class, MovieMapper.class);
Source Code 8.26 file (RatingCounterByMovieMongo.java Part 1 of 2)
Cont
-
Siapkan file (RatingCounterByMovieMongo.java Part 2 of 2)
untuk dicompile ke *.jar:
job.setReducerClass(MovieReducer.class)
;
job.setOutputFormatClass(com.mongodb.ha
doop.MongoOutputFormat.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
boolean success =
job.waitForCompletion(true);
return success?0:1;
}
public static void main(String[] args)
throws Exception {
if (args.length != 3 ){
System.err.println ("Usage
:<inputlocation1> <inputlocation2>
<outputlocation> >");
System.exit(0);
}
int res = ToolRunner.run(new
Configuration(), new
RatingCounterByMovieMongo(), args);
System.exit(res);
}
}
Source Code 8.27 file (RatingCounterByMovieMongo.java Part 2 of 2)
405
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Siapkan file (RatingMapper.java Part 1 of 1) untuk dicompile ke
*.jar:
package comratingbymovies.nidos;
import java.io.IOException;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.JobConf;
import
org.apache.hadoop.mapred.OutputCollector;
import org.apache.hadoop.mapred.Reporter;
import org.apache.hadoop.mapreduce.Mapper;
public class RatingMapper extends
Mapper<LongWritable,Text,Text,Text>{
Text keyEmit = new Text();
Text valEmit = new Text();
public void map(LongWritable k, Text v,
Context context) throws IOException,
InterruptedException{
String line=v.toString();
String[] words=line.split("::");
keyEmit.set(words[1]);
valEmit.set("#");
context.write(keyEmit, valEmit);
}
}
Source Code 8.28 file (RatingMapper.java Part 1 of 1)
-
Semua file *.java dicompile ke *.jar:
Lakukan hal berikut:
nidos@master:~$ cd /usr/local/hadoop
nidos@master:/usr/local/hadoop$ cp -r
/home/nidos/Desktop/kode/RatingByMovies/com
ratingbymovies /usr/local/hadoop
Source Code 8.29 Compile file ke *.jar
406
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 8.61 file comratingbymovies
Lakukan hal berikut:
nidos@master:/usr/local/hadoop$ bin/hdfs
com.sun.tools.javac.Main
comratingbymovies/nidos/*.java
Note:
comratingbymovies/nidos/RatingCounterByMov
ieMongo.java uses or overrides a
deprecated API.
Note: Recompile with -Xlint:deprecation
for details.
Source Code 8.30 Compile file *.java ke *.jar
Gambar 8.62 Compile Semua file *.java ke *.jar
407
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
-
Hasil: nidos@master:/usr/local/hadoop$ jar cf ratemovie.jar
comratingbymovies/nidos/*.class
Gambar 8.63 Hasil: nidos@master:/usr/local/hadoop$ jar cf
ratemovie.jar comratingbymovies/nidos/*.class
-
Hasil: nidos@master:/usr/local/hadoop$ jar cf ratemovie.jar
comratingbymovies/nidos/*.class
Gambar 8.64 Hasil: nidos@master:/usr/local/hadoop$ jar cf
ratemovie.jar comratingbymovies/nidos/*.class
-
Running proses perhitungan rating movie:
Lakukan hal berikut:
408
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
nidos@master:/usr/local/hadoop$
bin/hadoop jar ratemovie.jar
comratingbymovies/nidos/RatingCounterByMo
vieMongo
/user/nidos/ratemovie/dataset/ratings.dat
/user/nidos/ratemovie/dataset/movies.dat
mongodb://localhost/ratemovie.out
Source Code 8.31 Running proses perhitungan rating movie out1
Gambar 8.65 Hasil Running proses perhitungan rating movie
Lakukan hal berikut:
nidos@master:/usr/local/hadoop$
bin/hadoop jar ratemovie.jar
comratingbymovies/nidos/RatingCounterByMo
vieMongo
/user/nidos/ratemovie/dataset/ratings.dat
/user/nidos/ratemovie/dataset/movies.dat
mongodb://localhost/ratemovie.out2
Source Code 8.32 Running proses perhitungan rating movie out2
409
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 8.66 Running proses perhitungan rating movie out2
-
Lihat hasil dari MongoDB melalui terminal:
Gambar 8.67 Lihat hasil dari MongoDB melalui terminal
-
Cek di browser:
410
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 8.68 Tampilan Browse Directory
-
Cek di browser:
Gambar 8.69 File Information di Browser
411
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
8.4 Tugas Kelompok
1. Lakukan Studi Kasus WordCount dengan dokumen yang
berbeda (pada file > 0.5 MB, file > 1 MB, file > 10 MB, file > 100
MB, file > 1000 MB) pada Hadoop Single atau Multi Node
Cluster dan simpan hasilnya dalam MongoDB! dan berilah
penjelasan untuk setiap langkah-langkahnya disertai
screenshot!
2. Lakukan dan ulangi kembali Studi Kasus RateMovie dengan
dokumen yang sama seperti dicontoh pada Hadoop Single
atau Multi Node Cluster dan simpan hasilnya dalam MongoDB!
dan berilah penjelasan untuk setiap langkah-langkahnya
disertai screenshot!
3. Lakukan dan ulangi kembali Studi Kasus pada contoh berikut:
o Eclipse + Spark Standalone (Java EE)
o Eclipse + Spark + Scala IDE + Maven
o Eclipse + Spark + Scala IDE + SBT
o Eclipse + PySpark + PyDev
o PySpark + Pycharm
o IntelliJ IDEA
Seperti pada materi, dan berilah penjelasan untuk setiap
langkah-langkahnya disertai screenshot!
4. Jala ka “tudi Kasus a li g te t da i t itte de ga
“pa k
“t ea i g
da i
li k
kode
berikut: https://goo.gl/Sb5nLR pada Eclipse + Spark + Scala IDE
+ SBT. Dan berilah penjelasan untuk setiap langkahlangkahnya disertai screenshot!
Berikut contoh ketika dijalankan pada IntelliJ IDEA:
412
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
BAB 9 Project Pilihan
Analisis Big Data
9.1 Seleksi Asisten Praktikum
Perkembangan teknologi saat ini membawa kita pada perubahan
hampir dari semua aspek di kehidupan. Dalam menentukan sesuatu,
manusia pasti dihadapkan banyak pilihan. Dengan adanya pilihan yang
benar, akan sangat mempengaruhi kehidupan manusia itu sendiri.
Seiring berkembangnya teknologi, perlu dikembangkan dan juga
ditingkatkan suatu sumber daya manusia agar semakin berkualitas.
Permasalahan seleksi menentukan asisten praktikum banyak dialami
di berbagai universitas di Indonesia, khususnya di Fakultas Ilmu
Komputer (Filkom) Universitas Brawijaya.
Proses seleksi pada asisten praktikum, di Filkom masih
menggunakan cara yang manual. Proses pemilihan asisten praktikum
dilakukan dengan menjalani beberapa tes yang sudah ditentukan,
yaitu melalui tiga tahap tes diantaranya tes administrasi, tes live
coding, dan tes mengajar. Untuk penentuannya dilihat dari hasil tes
yang sudah dilakukan sebelumnya. Kemiripan hasil nilai tes pada
ketentuan tertentu dapat mengakibatkan kerancuan pada proses
pemilihan asisten praktikum, serta
dapat berpengaruh pada
kualitasnya. Dan sangat diharapkan agar pemilihan asisten praktikum
terpilih secara tepat. Untuk menghindari kerancuan hasil, sangat
dibutuhkannya suatu sistem yang mampu membantu dalam seleksi
pemilihan asisten praktikum baru dengan hasil seleksi yang tepat.
Pada penelitian oleh (Kalamsyah, 2014) yaitu tentang aplikasi
untuk pemilihan asisten praktikum dan juga lab yang berbasis web
menggunakan metode pengerjaan SDLC waterfall pada tahap
implementasi. Orang yang terlibat dalam aplikasi tersebut adalah
seorang laboran sebagai admin yang mempunyai akses penuh dalam
mengelola infomasi seleksi, melakukan input nilai, dan melihat hasil
perangkingan. Untuk perhitungan seleksi menggunakan metode
Analytic Hierarchi Process. Hasil dari penelitian tersebut, laboran
dapat mengetahui nilai paling tinggi sampai nilai paling rendah dari
semua hasil seleksi. Hasil seleksi di pilih dengan nilai tes asisten baru
dengan nilai tertinggi.
413
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Selanjutnya penelitian yang dilakukan oleh (Sholihah, 2013),
membahas mengenai penentuan jumlah UKT di Universitas Trunojoyo
Madura. Penentuan UKT tersebut berdasarkan kriteria yang sesuai.
Dalam pembuatan sistem, peneliti menggunakan metode Naïve Bayes
Classifier (NBC). Hasil yang didapatkan pada skenario satu yaitu 90%,
dan skenario hasil dua data kategori 78%.
Kemudian penelitian Naive Bayes Classifier oleh (Kusumadewi,
2009) adalah penggunaan alat ukur antropometri sebagai variabel
masukan dalam pengklasifikasian status gizi manusia. Untuk
mendapatkan hasil yang optimal terdapat beberapa pedoman
antropometri yaitu usia dan berat badan, tinggi dan panjang badan,
serta lingkar lengan atas. Dalam penelitian ini didapatkan 5 golongan
untuk status gizi, diantaranya berat kurang, berat normal, obesitas
kurang, obesitas sedang, dan obesitas berat. Untuk klasifikasi status
gizi metode yang digunakan adalah metode Naive Bayes
Classiffier dengan hasil akurasi cukup tinggi yaitu 93,2%.
Berdasarkan permasalahan di atas, maka dibuat suatu sistem
yang mampu menyeleksi dengan cara melihat hasil klasifikasi tertinggi
terhadap hasil tes yang dilakukan oleh calon asisten praktikum.
Penelitian ini menggunakan konsep Big Data yang seiring berjalannya
waktu data yang digunakan akan semakin besar sebagai data histori
yang dikumpulkan. Pada konsep tersebut menggunakan Hadoop yang
dapat memproses data dalam ukuran besar. Metode yang digunakan
adalah Naïve Bayes karena dianggap mampu menghasilkan klasifikasi
yang akurat, sehingga dapat mempermudah seorang dosen dalam
memilih asisten praktikum dengan kualitas yang baik.
9.1.1 Dasar Teori
1. Big Data
Konsep Big Data pada dasa a adalah se uah lautan
data , de ga
a ak a i fo asi da
sa a a u tuk
menganalisanya (Trivu dan Ivan, 2014). Big Data merupakan sebuah kombinasi teknologi yang dapat mengelola data yang beragam dalam jumlah besar, dengan kecepatan dan waktu yang
tepat dalam keperluan analisis, dan pada saat yang tepat untuk
keperluan analisis dan reaksi. Big Data memiliki tiga karakteristik,
yaitu volume, velocity, dan variety.
Big Data dideskripsikan sebagai suatu dataset dan teknik
analisis di dalam suatu aplikasi yang memiliki jumlah data sangat
414
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
besar dan juga sangat kompleks. Big Data membutuhkan suatu
penyimpanan, manajemen, analisis, dan juga teknologi visualisasi
(Chen, Chiang, & Storey, 2012, p 1161 dalam (Irem, 2016).
Menurut McAfee & Bryjonlfsson, 2012 dalam (Irem, 2016), menerangkan bahwa untuk memanggil data yang begitu besar, dibutuhkan beberapa kategori, terdapat tiga kategori yang memenuhi, diantaranya volume, velocity, dan variety. Dengan masingmasing penjelasan volume merupakan jumlah pada data, velocity
menerangkan tentan kecepatan pencarian informasi data,
kemudian variety adalah macam-macam jenis data misalnya dalam bentuk txt, doc, dan lain sebagainya.
a. Mapreduce
Mapreduce merupakan suatu framework yang digunakan
pada aplikasi dan program yang dikenalkan oleh google untuk
menjalankan pekerjaan komputasi yang terdistribusi dan dijalankan pada cluster. Konsep yang digunakan dalam Mapreduce adalah fungsi Map dan Reduce untuk functional programming
(Industri, 2013).
Hadoop Mapreduce termasuk bagian dari susunan kerja
yang dibuat agar lebih mudah dalam melakukan suatu perhitungan. Hadoop Mapreduce ini membuat user untuk bertugas
lebih ringan dan berjalan secara sejajar dalam node berbeda,
menghemat waktu dalam mengeksekusi keseluruhan.
Gambar 9.1 Mapreduce
415
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
b. Multi Node
Dalam hadoop multi node ini dibutuhkan dua buah
komputer, komputer pertama digunakan pada cluster sedangkan
komputer kedua digunakan pada slave. Dua komputer ini
dikonfigurasi yang merupakan dari mesin dua single node.
Gambar 9.2 Hadoop Multi Node
2. Klasifikasi
Klasifikasi merupakan penentuan objek ke dalam suatu kategori atau kelas. Penentuan objek menggunakan beberapa model
(Han, 2006). Dalam memulai suatu klasifikasi data dengan membangun sebuah rule klasifikasi dengan algoritma tertentu yang
digunakan pada data training dan data testing.
Pada penelitian ini untuk klasifikasi dalam perhitungannya
menggunakan metode Naïve Bayes Classifier.
3. Naïve Bayes Clasifier
Naïve Bayes Classifier merupakan penyederhanaan dari
teorema Bayes, penemu metode ini adalah seorang ilmuwan Inggris
yang bernama Thomas Bayes. Algoritma dalam metode Naïve Bayes
didasarkan dengan teknik klasifikasi (Kusumadewi, 2009) dapat
dibuktikan bahwa saat kecepatan sangat tinggi dan bersamaan
diaplikasikan dalam suatu database dengan jumlah data yang besar,
416
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
naive bayes mempunyai akurasi dan juga kecepatan yang tinggi
(Nugroho, 2009).
Metode Naive Bayesdengan prinsip teorema Bayes mempunyai
atribut yang saling berhubungan satu sama lain. Pendekatan yang
digunakan teorema bayes yaitu menghitung probabilitas sebuah
kejadian pada kondisi tertentu (Lukito & Chrismanto, 2015). Dasar dari
teorema Bayes dinyatakan dalam persamaan (Bustami, 2013).
|
�
=
�( |
�
).� �
(1)
Keterangan:
X
: Data kelas yang belum diketahui.
H
: Hipotesis dari data X yaitu suatu kelas
Spesifik.
P(H| X)
: Probabilitas Hipotesis H berdasarkan kondisi X.
P(H)
: Probabilitas Hipotesis H
P(X | H) : Probabilitas X berdasarkan kondisi H
: Probabilitas X
P(X)
Pada rumus di atas dapat dijelaskan bahwa teorema naive bayes
dibutuhkan sebuah petunjuk sebagai proses penentu kelas yang sesuai
dengan sampel. Sehingga dibutuhkan kesesuaian terhadap teorema
bayes sebagai berikut:
�
|
…
Keterangan:
=
� � � � …� |�
� � …�
C
: Sebagai kelas
F1…Fn
: Petunjuk atau syarat kondisi
(2)
9.1.2 Impelementasi
Dalam penyelesaian masalah seleksi pemilihan sistem praktikum
di Filkom Universitas Brawijaya, data pada penelitian ini berupa atribut
hasil live koding, mata kuliah, hasil mengajar, dan kelas. Kemudian
hasil klasifikasi yang didapatkan adalah sangat disarankan, disarankan,
dan yang terakhir tidak disarankan.
417
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Implementasi berisi kode program dan tahapan-tahapan yang
dilakukan pada hadoop. Implementasi pada permasalahan seleksi
pemelihan asisten praktikum menggunakan bahasa pemrograman
java. Dalam pengimplementasian menggunakan tiga class, satu class
sebagai map, satu class lain sebagai reduce, dan class lainnya sebagai
class main.
1. Kode Program
Berikut kode program dari kedua class, yaitu class Map.java
dan class Reduce.java.
a. Map.java
public void map(LongWritable key,
Text value, Context context) throws IOException, InterruptedException {
if(test_input==null)
test_input=context.getConfiguration().get("test_input").split("\\,");
String[]
input=value.toString().split("\\,"
);
for(int j=0;j<input.length;j++){
if(j==input.length-1){
if(outcome_count.containsKey(input[j])) outcome_count.put(input[j],
outcome_count.get(input[j])+1);
else
outcome_count.put(input[j],
(double) 1);
}
else{
if(input[j].contentEquals(test_input[j])){
if(!inputs.containsKey(j+","+input[j]))
inputs.put(j+","+input[j], 0);
if(features_count.containsKey(j+","+input[j]+"|"+input[input.length-1]))
features_count.put(j+","+input[j]+"|"+input[input.length418
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
1], features_count.get(j+","+input[j]+"|"+input[input.length1])+1);
else
features_count.put(j+","+input[j]+"|"+input[input.length1], (double) 1);
}
}
}
++count;
}
Source Code 9.1 Map.java
b. Reduce.java
public class NBCReduce extends
Reducer<IntWritable, Text, IntWritable, Text>{
public void reduce(IntWritable
key, Iterable<Text> values, Context
context) throws IOException, InterruptedException{
Double
out_value=Double.NEGATIVE_INFINITY;
String out_key=null;
HashMap<String,Integer>
final_output=new
HashMap<String,Integer>();
for(Text value:values){
if(final_output.containsKey(value.toString()))
final_output.put(value.toString(), final_output.get(value.toString())+1);
else
final_output.put(value.toString(), 1);
}
for(Entry<String,Integer>
output:final_output.entrySet()){
if(output.getValue()>out_value){
419
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
out_value=(double)
Value();
output.get-
out_key=output.getKey();
}
}
context.write(null,
Text(out_key));
}
new
}
Source Code 9.2 Reduce.java
2. Langkah-langkah pada Hadoop
Langkah-langkah dimulai dari start sampai mengeluakan output dari metode naïve bayes:
- Ketik start-all.sh
Gambar 9.3 start-all.sh
-
Membuat folder bayes di hduser, kemudian membuat
folder input didalam folder bayes
Gambar 9.4 Membuat Folder
-
Mengecek folder di localhost:50070
420
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 9.5 Cek Folder
-
Compile semua file java
Gambar 9.6 Compile semua file Java
-
Mengecek pada direktori apakah file sudah
menghasilkan *.class
Gambar 9.7 Class Pada Direktori
-
Membuat file *.jar dari hasil *.class
Gambar 9.8 File*.jar
-
Mengecek pada direktori
421
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 9.9 Direktori
-
Memasukkan file data ke folder input localhost
Gambar 9.10 File Pada Folder Input
-
Mengecek apakah file data sudah di localhost:50070
Gambar 9.11 File Pada Localhost
-
Membuat folder output di localhost:50070
Gambar 9.12 Folder Output
-
Mengecek folder output apakah sudah ada di localhost:50070
Gambar 9.13 Folder Output
-
Mengecek secara manual folder apa saja yang ada di localhost:50070
422
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 9.14 Cek Folder
-
Proses menjalankan program
Gambar 9.15 Menjalankan Program
-
Melihat apakah hasil sudah keluar atau belum
Gambar 9.16 Cek Hasil
9.2 Klasifikasi Kendaraan Bermotor
Sepeda motor adalah kendaraan yang memiliki dua roda dimana
mesin bekerja sebagai penggeraknya (Cossalter, 2006). Sepeda motor
memiliki 2 roda yang sebaris sehingga sepeda motor dapat tetap stabil
pada kecepatan tinggi yang disebabkan oleh gaya giroskopik. Sedangkan kestabilan pada kecepatan rendah bergantung pada
pengaturan setang oleh pengendara. Sepeda motor sangat populer di
423
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Indonesia karena memiliki harga yang murah dan terjangkau untuk
kalangan masyarakat dan biaya operasional yang cukup rendah.
Sepeda motor memiliki beberapa jenis dan merk yang berbeda.
Hal ini menyebabkan banyaknya pilihan yang dimiliki konsumen.
Konsumen akan memilih sepeda motor yang diinginkannya
berdasarkan latar belakang yang berbeda. Maka dari itu mengetahui
preferensi konsumen akan sangat menguntungkan penjual. Konsumen
akan dikelompokkan berdasarkan sepeda motor yang dibeli sehingga
penjual dapat mengetahui karakteristik konsumen yang membeli
suatu jenis atau Merk tertentu.
Pengelompokkan dilakukan dengan metode KNN. Algoritma ini
bekerja dengan cara mencari kelompok data uji berdasarkan k data
tetangga terdekatnya. Algoritma ini menerima masukan berupa
parameter dan nilai k.
Pada penelitian yang dilakukan oleh Nouvel (2015), klasifikasi
kendaraan roda empat menggunakan metode K-Nearest Neighbour (KNN) dengan jumlah data sebanyak 14 memiliki tingkat akurasi sebesar
78,57% dan RMSE dari 0,23. Jika jumlah data sebanyak 1728 data,
tingkat akurasi sebesar 95,78%, RMSE 0,19 dan ROC daerah 0.99.
Pengujian itu dilakukan untuk membuktikan bahwa tingkat akurasi
yang dihasilkan dipengaruhi oleh jumlah data latih yang digunakan.
Jika semakin banyak data yang dilatih maka semakin tinggi juga tingkat
akurasinya.
Permasalahan tersebut melatarbelakangi peneliti untuk
melakukan penelitian mengenai pengelompokan sepeda motor
berdasarkan karakteristik konsumen dengan metode K-NN. Penelitian
ini akan menghasilkan sistem pengelompokkan sepeda motor
berdasarkan
9.2.1 Dasar Teori
1. Karakteristik Pembeli
Data yang digunakan adalah data karakteristik pembeli yang
diambil dari GitHub dengan jumlah data sebesar 2500 data. Data
terdiri dari 5 parameter yaitu
1. Usia
Parameter yang menyimpan usia dari pembeli.
2. Pendapatan
Parameter yang menyimpan pendapatan per bulan dari pembeli.
424
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
3. Status Pernikahan
Parameter yang menyimpan status pernikahan pembeli. Status
pernikahan dibagi menjadi 4 yaitu Divorce, Single, Married
dan Widowed.
4. Jenis Kelamin
Parameter yang menyimpan jenis kelamin pembeli. Jenis kelamin
dibagi menjadi 2 yaitu Male dan Female.
5. Jumlah Anak
Parameter yang menyimpan jumlah anak yang dimiliki oleh
pembeli.
Data yang digunakan juga memiliki kelas didalamnya. Kelas dalam
data dibagi menjadi 4 kelas antara lain Vario, Mio, Next dan Beat.
2. Konsep Big Data
Big data merupakan istilah umum untuk sekumpulan data yang
jumlahnya sangat besar dan kompleks sehingga tidak mudah untuk ditangani atau proses hanya dengan metode pemrosesan data biasa.
Terdapat tiga masalah utama yang diselesaikan oleh big data, antara
lain (Pawitra, 2016):
1. Volume
Ukuran data yang disimpan atau diproses.
2. Velocity
Kecepatan membuat data. Kecepatan data dibuat umumnya
berbanding lurus dengan volume data.
3. Variety
Keberagaman data yang diolah. Dari segi format maupun
struktur data.
eknologi yang berkaitan dengan big data akan memudahka
proses pengumpulan data-data yang sebelumnya tidak bisa atau
sulit untuk dikumpulkan.
a. Single Node
Hadoop single node menggunakan 1 mesin / computer saja
dalam melakukan prosesnya. Secara default Hadoop dikonfigurasikan untuk berjalan pada mode non-distributed (berdiri
sendiri). Komputer didesain sebagai master bukan slave sehingga semua proses dilakukan dalam satu mesin seperti yang
ditunjukkan pada Gambar 1.
425
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 9.17 Arsitektur Single Cluster
b. Mapreduce
Pada Gambar 2, Mapreduce bertujuan untuk memproses
data yang memiliki ukuran yang besar secara terdistribusi dan
parallel dalam kluster yang terdiri atas ribuan computer. Dalam
prosesnya, mapreduce dibagi menjadi 2 proses yaitu map dan reduce. Map berfungsi dalam pengumpulan informasi dari datadata yang terdistribusi dalam tiap komputer. Keluaran dari proses
map akan digunakan dalam proses reduce. Proses reduce berfungsi dalam penggabungan atau pengelompokan berdasarkan
kata kunci (Dean & Ghemawat, 2004).
Gambar 9.18 Cara Kerja Mapreduce
3. KNN
K-Nearest Neighbor (kNN) merupakan algoritma untuk
menentukan kelas objek data uji berdasarkan K objek pada data
latih yang terdekat (mirip). Algoritma ini termasuk instance-based
426
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
learning dan merupakan salah satu teknik lazy learning. Dasar Algoritma K-Nearest Neighbour (Brammer, 2007):
- Tentukan data latih yang paling dekat dengan data uji.
-
Kelas yang paling sering muncul dari k data latih yang terdekat
akan dipilih.
a. Inisialisasi
Menentukan parameter K, dimana K merupakan jumlah
dari tetangga terdekat, nilai K untuk menguji data uji ditentukan berdasarkan nilai K optimum pada saat training.
b. Alokasi Data
Alokasikan data uji dengan cara menghitung jarak setiap
atribut data uji terhadap data latih dengan persamaan (1).
,
=
−
+
−
(1)
dimana xij menyatakan koordinat titik xi pada dimensi
ke-j dan d merupakan jarak. Setelah menghitung jarak data uji
terhadap data latih, urutkan jarak setiap atribut data uji,
kelompokkan menurut jarak yang terdekat.
c. Klasifikasi
Klasifikasi kelompok data uji dilakukan dengan cara
mengumpulkan kategori Y (klasifikasi nearest neighbour).
Lalu, memilih kategori mayoritas dari K data yang ditentukan.
9.2.2 Implementasi
1. Kode Program
Berikut ini diberikan bagian kode program JAVA untuk
implementasi Klasifikasi Kendaraan Bermoto. Proses ini merupakan
proses map dalam MapReduce kNN. Proses map sendiri berfungsi
dalam pengumpulan informasi data-data yang menjadi input dalam
proses kNN. Keseluruhan proses map dapat dilihat dalam Kode
Program 1.
1
2
3
4
5
6
7
8
@Override
public void map(Object kunci, Text hasil, Context konteks)
throws IOException, InterruptedException
{
String baris = hasil.toString();
StringTokenizer token = new StringTokenizer(baris,
",");
427
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
double umur = normalisasi(token.nextToken(), min_umur,
max_umur);
double penghasilan = normalisasi(token.nextToken(),
min_penghasilan, max_penghasilan);
String status_pernikahan = token.nextToken();
String kelamin = token.nextToken();
double anak = normalisasi(token.nextToken(), minanak,
maxanak);
String motor = token.nextToken();
double jarak = totaljarak(umur, penghasilan,
status_pernikahan, kelamin,anak, umur2, penghasilan2,
status_pernikahan2, kelamin2, anak2);
KnnMap.put(jarak, motor);
if (KnnMap.size() > K)
{
KnnMap.remove(KnnMap.lastKey());
}
}
Source Code 9.3 Kode Program 1
Penjelasan dari Kode Program 1:
1. Baris 1-8 merupakan proses tokenisasi yaitu
2. proses memecah baris menjadi beberapa kata.
3. Baris 8-21 merupakan proses inisialisasi parameter. Terdapat
beberapa parameter yang perlu dinormalisasi terlebih dahulu
yaitu age, income dan children.
4. Baris 23-28 merupakan proses perhitungan jarak data uji dan data
latih.
5. Baris 31 merupakan proses pembuatan TreeMap dengan jarak
sebagai sebuah key dan model sepeda motor sebagai value.
6. Baris 32-37 memproses TreeMap agar hanya memuat K data.
Apabila TreeMap memiliki data lebih dari K data maka akan
menghapus data yang tidak diperlukan.
Proses ini merupakan proses reduce dalam MapReduce kNN.
Proses reduce sendiri berfungsi dalam penggabungan dan
pengelompokan berdasarkan key atau kata kunci. Keseluruhan proses
reduce dapat dilihat pada Kode Program 2.
1
2
3
4
5
6
public void reduce(NullWritable kunci, Iterable<DoubleString>
hasil, Context konteks) throws IOException, InterruptedException
{
for (DoubleString hsl : hasil)
{
428
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
String motor = hsl.getmotor();
double jarak = hsl.gettotaljarak();
KnnMap.put(jarak, motor);
if (KnnMap.size() > K)
{
KnnMap.remove(KnnMap.lastKey());
}
}
List<String> baris = new ArrayList<String>(KnnMap.values());
Map<String, Integer> frekuensi = new
HashMap<String, Integer>();
for(int i=0; i< baris.size(); i++)
{
Integer frek = frekuensi.get(baris.get(i));
if(frek == null)
{
frekuensi.put(baris.get(i), 1);
} else
{
frekuensi.put(baris.get(i), frek+1);
}
}
String MotorMuncul = null;
int frekuensi_maks = -1;
for(Map.Entry<String, Integer> masukan:
frekuensi.entrySet())
{
if(masukan.getValue() > frekuensi_maks)
{
MotorMuncul = masukan.getKey();
Frekuensi_maks = masukan.getValue();
}
}
konteks.write(NullWritable.get(), new Text(MotorMuncul));
}
}
Source Code 9.4 Kode Program 2
Penjelasan dari Kode Program 2 :
1. Baris 1-20 merupakan proses pembuatan TreeMap berdasarkan
data dari objek DoubleString dengan jarak sebagai key dan model
sepeda motor sebagai value dan mengatur agar TreeMap tidak
melebihi K data.
2. Baris 21-22 merupakan proses menyimpan nilai dari TreeMap
dalam sebuah ArrayList.
429
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
3. Baris 24-25 merupakan proses inisialisasi sebuah HashMap.
4. Baris 27-41 merupakan proses menghitung banyaknya frekuensi
dati tiam model sepeda motor. HashMap digunakan untuk
menyimpan nilai frekuensi tersebut sebagai value dan model
sepeda motor sebagai key.
5. Baris 43-57 merupakan proses memeriksa HashMap untuk
memperoleh model sepeda motor yang memiliki frekuensi paling
tinggi.
6. Baris 59-62 merupakan proses penyimpanan hasil perhitungan
frekuensi tertinggi ke dalam context.
2. Hadoop Single Node
Langkah utama Hadoop Single Node yang perlu dilakukan
dapat dilihat pada Gambar 3 hingga 6.
Gambar 9.19 Jalankan hadoop (start-all.sh)
430
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Gambar 9.20 Folder Data Latih dan Data Uji
Gambar 9.21 Proses Klasifikasi
Gambar 9.22 Contoh Hasil Klasifikasi
431
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Dengan penjelasan sebagai berikut:
Langkah 1: Pada Gambar 9.19, masuk sebagai hduser, cek kondisi
apakah hadoop telah berjalan atau belum dengan jps, jika belum
maka jalankan hadoop dengan start-all.sh, lalu cek kebali kondisi
hadoop dengan jps
Langkah 2: Pada Gambar 9.20, menyiapkan file data latih dan data
uji, dengan data latih berupa file .csv dan data uji berupa file .txt
Langkah 3: Pada Gambar 9.21, masuk ke direktori hadoop dengan
path /user/local/hadoop, lalu membuat direktori input pada hdfs,
dan memasukkan file data latih serta data uji kedalam direktori
input yang telah dibuat, selanjutnya cek bentuk format
penjalanan programnya dengan bin/hadoop jar kp.jar KnnPattern,
kemudian jalankan program dengan masukkan path file data latih,
path direktori output, dan path file data uji dengan urutan <data
latih> <output> <data uji>, lalu tekan enter dan tunggu program
berjalan, dan lihat apakah program berjalan dengan benar tanpa
error
Langkah 4: Pada Gambar 9.22, menampilkan output hasil program
dengan memasukkan path direktori output yang ditentukan pada
saat menjalankan program pada langkah ke-3
Berdasarkan Gambar 9.19 hingga 9.22, Hadoop Single node dapat
berjalan dengan baik dalam melakukan komputasi klasifikasi sepeda
motor digunakan kode program KnnPattern.java dan data latih yang
didapatkan dari sumber ini ( https://github.com/matthicks/MapReduce-KNN ) dengan membuat analogi kesetaraan tingkat
harga mobil, yang disesuaikan dengan urutan harga motor dalam
penelitian ini sebagai kelas, baik untuk data latih maupun data uji.
9.3 Clustering Judul Majalah
Di era globalisasi seperti saat ini dimana teknologi semakin
berkembang, hampir semua aktivitas dilakukan menggunakan
internet. Adanya internet memudahkan berbagai kegiatan manusia,
terutama komunikasi dan pencarian pengetahuan atau informasi.
Penggunaan e-magazine di internet menjadi cara baru masyarakat
dalam mencari informasi dan pengetahuan. Banyak masyarakat yang
beralih menggunakan e-magazine karena kemudahan akses informasi
yang ditawarkan dan lebih efisien. Selain meningkatnya pengguna e432
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
magazine terdapat peningkatan juga pada penggunaan media sosial.
Penggunaan sosial media telah meningkat dari tahun 2005 hingga
tahun 2015. Pengguna media sosial merupakan pengguna yang
berumur antara 18 hingga 29 tahun. Saat ini sebanyak 90% anak muda
aktif di media sosial dimana sebelumnya tahun 2005 hanya sebesar
12% (Çakir and Güldamlasioglu, 2016).
Berdasarkan fakta tersebut, banyak e-magazine yang
memanfaatkan teknologi media sosial seperti Facebook, Twitter, dll
dalam membuat akun dari media sosial yang terintegrasi dengan emagazine. Manfaat integrasi dengan media sosial yaitu sebagai wadah
untuk berinteraksi antara penerbit dengan pembaca maupun
pembaca dengan pembaca lainnya.
Semakin banyaknya pengguna internet berdampak pada
banyaknya data berukuran besar yang dihasilkan setiap detik pada
web. Dikarenakan meningkatnya pengguna internet terutama emagazine dan media sosial, sejumlah data berukuran besar
membanjiri setiap server penyimpanan. Untuk mengolah,
mengelompokkan dan mengkomunikasi antar data teks yang
didapatkan dari media sosial dibutuhkan teknik text mining. Namun,
pemrosesan dan penganalisisan teks berjumlah besar menggunakan
metode tradisional dinilai sulit dilakukan karena metode tradisional
memiliki sumberdaya dan infrastruktur yang terbatas (Rathore and
Shukla, 2015). Dengan adanya pengembangan teori Big Data
ditemukan solusi yang menyediakan cara yang efisien dan reliabel
untuk penyimpanan data dan infrastruktur yang efektif untuk
perhitungan yang efisien. Namun, pada aplikasinya untuk mengenali
berkas target yang dicari dari sejumlah data yang besar dibutuhkan
metode untuk mengelompokkan data ke dalam beberapa kelompok
data yang mudah dikenali. Salah satu metode yang efektif digunakan
untuk mengelompokkan data (clustering) adalah K-Means.
Sebelumnya terdapat penelitian oleh Rathore dan Shukla (2015)
yang mengembangkan metode K-Means untuk mengolah Big Data
pada 5 data set yang berbeda yaitu Laustralian dataset, Breast cancer
dataset, Diabetes dataset, Iris dataset, dan Bupa dataset. Hasil
penelitian menunjukkan bahwa pengembangan metode K-Means
yang diusulkan lebih baik daripada K-Means tradisional dengan ratarata akurasi meningkat sekitar 3.78% sampai 8.94%. selain itu terdapat
juga penlitian yang dilakukan oleh Çakir dan Güldamlasioglu (2016)
dengan topik clustering data teks berukuran besar dari media sosial
berbahasa Turki menggabungkan penggunaan sistem Hadoop dengan
Spark dan metode clustering menggunakan K-Means. Hasil
433
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
menunjukkan
bahwa
metode
yang
digunakan
mampu
mengelompokkan data berukuran besar dengan benar. Pada
penelitian ini, peneliti bermaksud untuk melakukan penelitian tentang
analisis judul bacaan pada majalah Kawanku menggunakan metode
yang sama dengan penelitian Çakir & Güldamlasioglu yaitu K-Means
clustering pada Big Data environment. Peneliti berharap penggunaan
teknologi Big Data dan K-Means clustering dapat memberikan akurasi
yang tinggi untuk proses penentuan judul bacaan pada majalah
Kawanku.
9.3.1 Dasar Teori
1. Judul Bacaan
Data yang digunakan adalah judul bacaan majalah Kawanku yang
dikategorikan dalam 7 kategori judul, dan masing-masing kategori
memiliki 10 buah dokumen yang akan digunakan sebagai data latih.
Kategori judul yang digunakan yaitu: seleb dan entertainment, news,
playground, fashion, beauty, love, dan life. Berikut ini adalah contoh
dataset yang digunakan berdasarkan kategorinya ditunjukkan Tabel 1.
Tabel 9.1 Contoh Dataset Setiap Kategori
Kategori
Seleb &
Entertainment
Dokumen
10 Lagu .. yang Cocok Untuk Jadi Soundtrack
Moment Perpisahan Sekolah
News
5 Fakta Tentang Gajah Yani yang Mati Karena
Sakit & Enggak Terawat di Kebun Binatang Bandung
Playground
10 Lagu .. yang Bisa Bantu Menenangkan
Pikiran Stres Saat SBMPTN
Fashion
10 Inspirasi Gaya Memakai Kemeja ..
Beauty
10 Inspirasi Makeup .. yang Cocok Untuk Prop
atau Wisuda SMA
Love
5 Alasan Kita Harus Mempertahankan
Hubungan ..
Life
5 Cara Tetap Kompak dengan Teman ..
434
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
2. Text Mining
Analisis kata atau kalimat menggunakan proses text mining. Text
mining memiliki dua proses antara lain preprocessing dan pengolahan
data (clustering atau klasifikasi). Proses text preprocessing merupakan
tahapan pertama yang dilakukan sebelum input dokumen diolah lebih
lanjut menjadi kluster-kluster kalimat. Proses-proses yang dilalui
antara lain menghilangkan tanda baca, angka, mengkoversi huruf
besar, tokenizing (cari kata dalam kalimat), stemming (ubah kata ke
kata dasar), dan menghapus kata sesuai stopword (Çakir and
Güldamlasioglu, 2016). Setelah itu proses pengolahan data, hasilmya
akan digunakan untuk pengkategorian dengan clustering atau
klasifikasi.
3. Clustering Text
Input yang digunakan dalam pembentukan sebuah cluster
kalimat berasal dari hasil text processing. Proses ini mempunyai
peranan yang sangat penting dalam meringkas secara otomatis. Setiap
topik dalam dokumen harus diidentifikasi secara tepat untuk
menemukan kesamaan (similarity) dan ketidaksamaan (dissimilarity)
yang ada pada dokumen sehingga menjamin good coverage (Sarkar,
2009). Faktor koherensi cluster digunakan untuk menjamin kualitas
hasil ringkasan. Koherensi cluster menunjukkan keterkaitan antar
kalimat pada masing-masing cluster yang terbentuk dalam proses
peringkasan banyak dokumen. Tingginya derajat koherensi cluster
yang sangat sulit dicapai karena memerlukan pengetahuan tentang
makna dan struktur kalimat (Sarkar, 2009). Tingginya derajat
koherensi dalam sebuah cluster dapat dicapai dengan
mempertahankan derajat similarity antar anggota tetap tinggi
(Hammouda and Kamel, 2003).
4. K-Means
Algoritma K-Means dikenal sebagai algoritma yang sangat mudah
dalam proses clustering data besar. Proses untuk melakukan clustering
data outlier sangatlah cepat. Selain itu, metode ini juga memiliki
kelemahan yaitu dapat dimungkinkan bagi setiap data cluster tertentu
pada suatu tahapan dapat berpindah ke cluster yang lain pada tahapan
selanjutnya (Larose et al., 2005).
Berikut ini adalah persamaan dan langkah-langkah perhitungan
menggunakan algoritma K-Means (Hung et al., 2005) antara lain:
=
∑=
∑=
� |
� |
= ,…,
(1)
435
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Inisialisasi dataset dari n titik data = { , … , }
Masukkan jumlah k cluster.
Inisialisasi centroid untuk k cluster dari sejumlah dataset.
Letakkan setiap titik pada cluster terdekat dengan menggunakan rumus
jarak Euclidean.
e. Hitung ulang mencari nilai centroid dari setiap k cluster dengan jumlah
data m untuk menemukan nilai centroid cluster yang baru.
f. Proses diulang hingga mendapatkan hasil yang konvergen.
a.
b.
c.
d.
9.3.2 Implementasi
Pada penelitian ini terdapat beberapa tahapan yang harus
dijalankan untuk menentukan cluster dari judul bacaan majalah
Kawanku. Berikut ini pada Gambar 9.23 ditunjukkan alur proses
clustering.
mulai
judulBacaan
preprocessing
menentukan wordcount
menentukan fitur data
menentukan cluster dengan
KMeans
centroid tiap
cluster
selesai
Gambar 9.23 Diagram Alir Clustering K-Means Judul Majalah
436
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
1. Kode Program
Berikut ini ditunjukkan potongan kode program proses clustering
pada Source Code 9.5.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
51
52
53
54
int shouldNextIteration(Configuration conf) throws IOException{
//Merging output from reducer
FileSystem fs = FileSystem.get(conf);
Path reducerOutput = new
Path("kmeansOutput/out1"); // FOR JAR
Path centroidOld = new Path("centroid/centroid_"+(iterationCount)+".txt");
Path centroidNew = new Path("centroid/centroid_"+(iterationCount+1)+".txt");
FileUtil.copyMerge(fs,reducerOutput,fs,centroidNew,false,conf,null);
//Reading new centroid file
String line;
Datapoint[] newCentroid = new
Datapoint[numberOfCentroids];
BufferedReader br = new BufferedReader(new InputStreamReader(fs.open(centroidNew)));
for(int x=0;x<numberOfCentroids;x++){
line= br.readLine();
String[] centroidString =
line.split("\t");
newCentroid[x]= new
Datapoint(centroidString[0],centroidString[1]);
System.out.println(centroidString[0]
+ "===VSD NEW===="+
centroidString[1]);
}
br.close();
//Reading old centroid
line="";
Datapoint[] oldCentroid = new Datapoint[numberOfCentroids];
br = new BufferedReader(new InputStreamReader(fs.open(centroidOld)));
for(int x=0;x<numberOfCentroids;x++){
line=br.readLine();
String[] centroidString =
437
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
line.split("\t");
oldCentroid[x]= new Datapoint(centroidString[0],centroidString[1]);
System.out.println(centroidString[0]
+ "===VSD OLD===="+
centroidString[1]);
}
br.close();
//Comparing thechange from previous centroid
for(int i = 0; i<numberOfCentroids;i++){
for(int k = 0;k<numberOfAttributes;k++){
if(0.02<Math.abs(newCentroid[i].getVal(k)-oldCentroid[i].getVal(k))){
shouldContinue = true;
System.out.println("Should continue: "+ shouldContinue);
return 1;
}
else{
shouldContinue = false;
System.out.println("Should continue: "+ shouldContinue);
}
}
}
return 0;
}
Source Code 9.5 KMeansHadoop.java
Berikut ini merupakan tampilan keluaran dari sistem proses
run file yang dijalankan ditunjukkan pada Gambar 9.24.
Gambar 9.24 Keluaran dari Proses Run File
438
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Selain itu, berikut tampilan keluaran dari sistem proses run
clustering yang dijalankan ditunjukkan pada Gambar 4.
Gambar 9.25 Keluaran Proses Run Clustering
Keluaran dari sistem menunjukkan hasil dari proses
clustering yaitu nilai centroid dari setiap cluster yang
dibandingkan dengan nilai centroid awal dari setiap cluster.
439
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
9.4 Collaborative Filtering
Pada dasarnya, film merupakan salah satu media massa
komunikasi yang digunakan untuk mengkomunikasikan suatu realita
yang terjadi dalam kehidupan sehari-hari. Didukung oleh
perkembangan teknologi dan paduan unsur seni, film semakin dapat
menciptakan gambar-gambar yang mendekati kenyataan. Kehadiran
film dianggap sangat penting, konten yang disajikan mampu menjadi
sumber hiburan bahkan mampu memberikan indoktrinasi kepada
penontonnya. Perkembangan produksi film menjadi semakin banyak,
dan peminat film pun mengalami kesulitan dalam pemilihan film yang
akan ditonton sesuai dengan keinginannya diantara banyak deretan
film baru tersebut. Hal ini yang mendasari adanya sistem rekomendasi
film yang memberikan informasi atau item yang bersifat personal
dengan mempelajari interaksi seorang pengguna dengan pengguna
lain dengan item film yang telah tersimpan sebelumnya.
Collaborative Filtering adalah salah satu metode rekomendasi film
yang didasarkan pada rating. Rating setiap pengguna film menjadi
penting dan khusunya rating 5 bintang agar menghasilkan rekomendasi
yang berkualitas. Collaborative filtering menganggap bahwa selera
pengguna terhadap suatu item atau barang akan cenderung sama dari
waktu ke waktu. Ditambah lagi, pengguna yang menyukai suatu item
biasanya juga akan menyukai item lain yang disukai oleh pengguna lain
yang juga menyukai item yang sama dengan pengguna tersebut. Pada
penelitian ini mengajukan metode Collaborative Filtering (CF)
menggunakan maching learning Hadoop sebagai metode
dalammemberikan rekomendasi dengan skalabilitas yang besar.
9.4.1 Dasar Teori
4. Dataset
Dataset yang digunakan adalah training dataset dari Netflix
Prize Challenge. Data tersebut dalam betuk training_set.tar yang
berisi 17770 file film. Pada baris pertama setiap file film berisi id
film, kemudia paragraph penjelasan film berisi rating dari costumer
beserta tanggal film tersebut di tayangkan. Kemudian file training
tersebut di ubah dalam 3 fitur yang terdiri atas UserID, MovieID,
Rating. Data yang di ubah menjadi 3 fitur tersebut di masukkan
pada folder input dengan nama file userRating.txt.
5. Konsep Big Data
Big data adalah suatu kondisi yang menggambarkan sistem
basis data konvensional yang memiliki volume data terstruktur
ataupun tidak terstruktur yang besar. Pertumbuhan jumlah data ini
akan semakin berkembang dan arsitektur sistem basis data
440
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
konvensional pun tidak bisa untuk menghadapi kondisi yang
sedemikian rupa disebabkan karena ketidakmampuan untuk
memperbesar kapasitas yang telah dibuat.
Untuk itu, dibutuhkan sebuah teknologi informasi yang
dapat melakukan proses pengolahan, penyimpanan dan analisis
data dalam beragam bentuk/format, berjumlah besar dan
pertambahan data yang sangat cepat.
6. Collaborative Filtering
Metode CF merupakan salah satu metode rekomendasi
yang menggunakan data rating dari pengguna lain. Metode ini
bertujuan untuk memberikan rekomendasi kepada pengguna
yang akan memilih atau membeli suatu produk berdasarkan dari
rating yang diberikan oleh pengguna lain. Ada dua (2) jenis sistem
rekomendasi menggunakan CF, yaitu:
a. User-based Collaborative Filtering (UFC)
Pada UFC ada banyak teknik yang dapat digunakan untuk
mencari nilai prediksi untuk pengguna aktif ( ��, ), mulai dari
dengan cara menjumlahkan semua rating dari pengguna lain yang
seleranya sama dan kemudian dibagi dengan jumlah pengguna
tersebut, hingga menggunakan cara pembobotan.
Ada 3 tahap dalam mencari nilai prediksi (�) dan daftar
rekomendasi ( ) untuk pengguna aktif, yaitu: input, proses
(algoritma UFC), dan keluaran (� dan ). Input berupa nilai irisan
�, dimana nilai itu merupakan item yang sudah di rating oleh
pengguna aktif dan irisan , yang merupakan item yang di rating
oleh pengguna lain. Dalam algroitma UFC, sebelum mencari nilai
��, perlu dicari dahulu nilai tetangga dari � (jumlah rating dari
pengguna lain yang seleranya sama dengan pengguna aktif).
Perhitungan rumusnya:
∑
��,
(1)
��, = �=
Pada Rumus (1), variabel merupakan jumlah tetangga.
Dalam algortima ini dalam perhitungannya tidak melibatkan
variabel yang menunjukan bahwa seorang tetangga berbeda dari
tetangga lainnya.
��, =
∑�= ��,
∑ �
�
(2)
Pada Rumus (2), variabel
merupakan bobot yang
diberikan pengguna
. Nilai
dapat ditentukan secara manual
oleh � atau pembuat sistem. Atau dapat juga dicari dengan cara
menambahkan variabel rata-rata rating dari � dan
, seperti
pada rumus:
441
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
∑
̅̅̅̅
��, −�
�
��, = ̅̅̅�̅ + �=
(3)
Algoritma pembobotan dan rata-rata rating dapat
digabungkan supaya mendapatkan � yang lebih spesifik dengan
menggunakan rumus:
��, = ̅̅̅�̅ +
̅̅̅̅
∑�= ��, −�
�
∑
�
�
(4)
Dengan menggabungkan pembobotan dan rata-rata rating
penggua, nilai ��, akan lebih spesifik karena melibatkan dua
variabel yang berasal dari kegiatan lampau pengguna aktif dan
tetangga.
b. Item-based Collaborative Filtering
Pendekatan item-based yaitu dengan menggunakan
sekumpulan item yang telah diberi rating oleh pengguna dan
menghitung kemiripannya terhadap target item untuk kemudian
dipilih sebanya item yang paling mirip. Setelah ditemukan item
yang paling mirip, kemudian dihitung berdasarkan nilai rata-rata
dari rating dari pengguna pada item yang mirip. Untuk menghitung
kemiripan item terdapat dua cara yaitu:
o
Adjusted Cosine-based similarity
Digunakan menghitung kemiripan dari pengguna yang
memberikan rating berbeda, dengan menggunakan rumus:
( , )=
∑= �
√∑ = �
,
,
̅̅̅̅ �
−�
,
̅̅̅̅
−�
̅̅̅̅ √∑ = �
−�
,
(5)
̅̅̅̅
−�
Dimana variabel
( , ) merupakan nilai similarity
antara item dan . , merupakan nilai rating pengguna
terhadap item , sedangkan
adalah rata-rata rating dari
user .
o
Correlation-based similarity
Digunakan untuk mengukur seberapa dekat hubungan
antara dua variabel. Untuk lebih jelasnya dapat dilihat pada
rumus:
( , )=
̅̅̅̅ � , −�
̅̅̅̅
∑ = � , −�
(6)
̅̅̅̅ √∑
̅̅̅̅
√∑ = � , −�
= � , −�
Dimana untuk mendapatkan persmaan
dengan menggunakan rumus:
̅̅̅̅ =
̅̅̅̅ =
∑=
∑=
,
,
dan
adalah
(7)
(8)
442
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
dan
Dimana , merupakan rating item oleh pengguna
oleh pengguna .
, merupakan rating item
9.4.2 Implementasi
Proses ini menjelaskan mengenai tahapan map reduce pada
dataset yang dimasukkan. Map reduce ini berdasarkan userID dari
pemberi rating. Berikut sedikit potongan kode program dari proses map
reduce.
publicvoid map(LongWritable key, Text value, Context context) throws
IOException, InterruptedException {
//input user,movie,rating
String[] user_movie_rating = value.toString().trim().split(",");
intuserID = Integer.parseInt(user_movie_rating[0]);
String movieID = user_movie_rating[1];
String rating = user_movie_rating[2];
context.write(new IntWritable(userID), new Text(movieID + ":" + rating));
}
publicvoid reduce(IntWritable key, Iterable<Text>values, Context
context)
throws IOException, InterruptedException {
StringBuilder sb = new StringBuilder();
while (values.iterator().hasNext()) {
sb.append("," +
values.iterator().next());
}
//key = user value=movie1:rating, movie2:rating...
context.write(key, new Text(sb.toString().replaceFirst(",", "")));
}
Source Code 9.6 Map Reduce
Penjelasan dari Kode Program1:
o
o
Baris 1-10 merupakan proses mapping untuk memilah data pada
setiap dataset.
Baris 12-22 merupakan proses reduce untuk mengelompokkan
data berdasarkan userID.
Sebelum dapat menjalankan program, penulis melakukan start
hadoop dengan syntax “start-all.cmd”
443
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Setelah hadoop aktif, maka penulis menyiapkan data yang akan
dijalankan pada kode program.seperti yang sudah dijelaskan pada subbab dataset, penulis menggunakan data yang berisi userID, movieID,
dan rating. Data ini berjumlah 21 data yang disimpan dalam file
userRating.txt.
Ketika ingin menjalankan kode program, sebaiknya file yang
dijadikan dataset diunggah ke dalam database hadoop. Disini penulis
menggunakan Syncfusion Big Data Studio untuk menyimpan file input
dan hasil output dari kode program yang dijalankan. Untuk
mengkoneksikan antara kode program yang dijalankan dengan
database hadoop, maka diperlukan syntax yang mendefinisikan
dimana file input yang akan dijalankan. Berikut syntax yang digunakan
untuk koneksi ke database hadoop.
444
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
1
2
3
4
5
6
7
8
9
args = new String[7];
args[0]=
"hdfs://localhost:9000/user/hduser/cf/input/userRating.txt";
args[1]=
"hdfs://localhost:9000/user/hduser/cf/output6/DividerByUser";
args[2]=
"hdfs://localhost:9000/user/hduser/cf/output6/coOccurrenceMatr
ixBuilder";
args[3]=
"hdfs://localhost:9000/user/hduser/cf/output6/NormalizeCoOccur
renceMatrix";
args[4]=
"hdfs://localhost:9000/user/hduser/cf/output6/MultiplicationMa
pperJoin";
args[5]=
"hdfs://localhost:9000/user/hduser/cf/output6/MultiplicationSu
m";
args[6]=
"hdfs://localhost:9000/user/hduser/cf/output6/RecommenderListG
enerator";
Penjelasan dari Kode Program1:
o
o
o
Baris 1 merupakan inisialisasi objek baru bernama args dengan
panjang array String sejumlah 7.
Baris 3 merupakan pengambilan file input bernama userRating
pada localhost:9000.
Baris 4-9 merupakan penyimpanan hasil running setiap file class
dari kode program.
Maka setelah kode program berhasil dijalankan, hasil output akan
disimpan dalam localhost:9000.
Hasil output dari implementasi Hadoop Map Reduce telah berhasil
diimplementasikan seperti terlihat pada gambar 4 sampai dengan gambar 7. Implementasi Hadoop MapReduce ini menggunakan kode program dan dataset yang diperoleh dari https://github.com/blackruan/recommender-system.git.
445
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
9.5 Klasifikasi Data Kualitatif (C4.5)
Penelitian merupakan hal yang sangat penting dalam
perkembangan kehidupan bermasyarakat maupun kemajuan
peradaban. Dari hasil peneitian, banyak dihasilkan pengetahuan baru
. Namun dalam pelaksanaannya terjadi berbagai kendala dan
persoalan yang terjadi, salah satunya adalah kendala pada pengolahan
data. Data merupakan sekumpulan dari catatan fakta yang kemudian
di simbolkan dalam bentu angka (kuantitatif) maupun kata – kata
(kualitatif). Masing-masing data didapat dari hasil pengamatan maupun
hasil pengukuran sehingga menghasilkan nilai – nilai variable tertentu.
Pada era ini jumlah data semakin membeludak, baik dari sektor
pendidikan, bisnis, maupun dari sumber – sumber data yang lain. Dari
sekumpulan data tadi dapat diambil bebrbagai macam informasi yang
bermanfaat bagi pihak pengolah data maupun bagi masyarakat pada
umumnya. Kebanyakan dari data – data tersebut merupakan data
berupa kata –kata yang menggambarkan kondisi atau merupakan
karakteristik dari objek. Data bernilai kualitatif ini tentunya memerlukan
metode tersendiri untuk dapat menghasikan informasi yang
bermanfaat. Jika data kualitatif diolah dengan tepat dapat
mendapatkan banyak informasi, diantaranya adalah rule yang bisa
digunakan sebagai acuan untuk klasifikasi. Metode yang yang dapat
digunakan untuk mengolah data kualitatif menjadi rule klasifikasi
adalah C4.5. Algoritma C4.5 merupakan kelompok algoritma Decision
Tree. Pohon keputusan merupakan metode klasifikasi dan prediksi
yang sangat kuat dan terkenal.
Dari permasalahan di atas sebenarnya sudah banyak sekali
metode – metode yang ditemukan dan diterapkan. Fitur – fitur yang
akan digunakan pada penelitian ini adalah cuaca, kelembapan,
temperatur, dan kecepatan. Data yang digunakan tentu sangat besar
dan bervariasi maka dari itu diperlukan sebuah framework tersendiri
yang mampu melakukan pengolahan dan penyimpanan untuk data
dengan jumlah yang besar.
Pada penelitian ini digunakan Map Reduce sebagai framework dan
metode pengolahan datanya yaitu menggunakan algoritma decision
tree C4.5. metode tersebut dipilih karena merupakan metode klasifikasi
dan prediksi yang sangat kuat dan terkenal. Metode pohon keputusan
mengubah fakta yang sangat besar menjadi pohon keputusan yang
merepresentasikan aturan. Hasil pada penelitian ini berupa rule.
446
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
9.5.1 Dasar Teori
7. Data Kualitatif
Data kualitatif berbentuk deskriptif, berupa kata-kata lisan
atau tulisan tentang tingkah laku manusia yang dapat diamati
(Taylor dan Bogdan, 1984). Data kualitatif dapat dipilah menjadi
tiga jenis (Patton, 1990) [3]:
-
-
Hasil pengamatan: uraian rinci tentang situasi, kejadian,
interaksi, dan tingkah laku yang diamati di lapangan.
Hasil pembicaraan: kutipan langsung dari pernyataan orangorang tentang pengalaman, sikap, keyakinan, dan pemikiran
mereka dalam kesempatan wawancara mendalam.
Bahan tertulis: petikan atau keseluruhan dokumen, suratmenyurat, rekaman, dan kasus sejarah.
8. Big Data
Era Big Data telah menjadi era baru yang merupakan hasil
perkembangan sejarah panjang media pemrosesan dan
penyimpanan data. IBM 305 RAMAC adalah komputer komersial
pertama yang menggunakan hard disk drive (magnetic disk
storage) sebagai penyimpanan sekundernya. Sistem ini
dipublikasikan pada tanggal 14 September 1958 dimana unit-unit
percobaannya telah dipasang pada angkatan laut US dan
perusahaan-perusahaan swasta. RAMAC, singkatan dari
“Random Access Method of Accounting and Control”,
perancangannya dimotivasi oleh kebutuhan akuntansi real-time
dalam bisnis. Saat itu, RAMAC hanya memiliki kapasitas 5 MB.
Pada tahun 1963 ditemukan teknologi Audio Tape yang memiliki
kapasitas 660 KB. Floppy Disk, kemudian muncul pada tahun
1971 dengan ukuran 8 inchi dan kapasitas 80 KB, tahun 1976
dengan ukuran 5,5 inchi dan kapasitas 100 KB, serta tahun 1981
semakin kecil secara fisik yaitu 3,5 inchi namun lebih besar
dengan kapasitas 1,4 MB. Pada tahun-tahun selanjutnya,
teknologi penyimpanan data berpindah pada Optical Disk yaitu CD
(Compact Disk) dengan kapasitas 400 MB, DVD (Digital Versatile
Disk) dengan kapasitas 4,7 GB hingga Blue Ray yang mampu
menyimpan data hingga 25 GB[1].
Dari tahun ke tahun, harga media penyimpanan semakin
murah, dengan ukuran yang semakin kecil, namun kapasitas yang
semakin besar. Penelitian menunjukkan bahwa setiap hari, 2,5
triliun byte data diproduksi dan 90% data di dunia hari ini
diproduksi dalam dua tahun terakhir. Fakta inilah yang memicu
ledakan data hingga lahirlah istilah Big Data yang kita kenal
sekarang. Terdapat 5 karakteristik dari Big Data yang disebut
dengan istilah 5V, yaitu:
447
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
1. Volume
Karakteristik ini mengacu pada kapasitas atau jumlah data
yang dihasilkan untuk setiap waktu. Dalam satu detik, media
seperti E-Mail, Facebook, Youtube, Twitter menghasilkan berjuta
data. Diperkirakan ledakan data yang membanjiri bumi mencapai
2.5 Exabyte (1 Exabyte = 1 Milyar Gigabyte). Pada tahun 2020,
diperkirakan ledakan data yang dihasilkan perhari mencapai 35
Zettabyte (1 Zettabyte = 1000 Exabyte).
2. Variety
Berbagai jenis media produksi data yang digunakan
mengakibatkan beragamnya jenis data yang dihasilkan. Dengan
begitu banyaknya sensor, perangkat pintar dan teknologi
kolaborasi sosial, data yang pada umumnya dihasilkan dalam
bentuk data terstruktur, sekarang berkembang menjadi berbagai
bentuk data yaitu data terstruktur, tidak terstruktur, dan
semiterstruktur.
3. Velocity
Velocity adalah kecepatan data yang terus meningkat.
Karakteristik ini mengacu pada kecepatan di mana data dibuat,
diolah, dan dianalisis secara terus-menerus. Teknologi Big Data
sekarang memungkinkan kita untuk menganalisis data sementara
yang dihasilkan tanpa pernah memasukkannya ke dalam
database.
4. Veracity
Veracity merupakan ketidakpastian dari data. Veracity
mengacu pada tingkat kehandalan dari data dengan jenis tertentu.
Big Data juga mengandung data-data yang rusak, tidak normal,
dan tidak sesuai. Data tersebut tentu saja dapat menghasilkan
informasi yang salah. Oleh karena itu, diperlukan kemampuan
untuk meneliti dan mengidentifikasi ketidakpastian data tersebut.
5. Value
Value mengacu pada nilai data yang terus bertambah.
Diperlukan kemampuan untuk mengubah data yang banyak
tersebut menjadi bernilai agar dapat digunakan mendukung tujuan
tertentu. Semua data yang tersedia tidak akan memiliki arti kecuali
kita dapat mengambil nilai penting darinya.
9. Hadoop
Apache Hadoop adalah suatu framework yang
memungkinkan pemrosesan data set besar pada kluster-kluster
komputer secara terdistribusi dengan memanfaatkan modelmodel pemrograman sederhana. Hadoop dirancang untuk dapat
448
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
dikembangkan (scale up) dari sebuah server hingga ribuan mesin,
dimana tiap-tiap mesin tersebut menawarkan fitur komputasi dan
penyimpanan secara lokal. Hadoop tidak bergantung pada
hardware untuk memberikan tingkat ketersediaan yang tinggi
(high availability) karena library Hadoop sendiri dirancang untuk
mendeteksi dan menangani kegagalan (failure) pada layer
aplikasi. Pada intinya, Hadoop bukanlah sebuah software,
melainkan sebuah framework open source Apache yang
dikembangkan menggunakan bahasa pemrograman Java, dan
dapat digunakan untuk memproses data set yang besar menjadi
komputasi terdistribusi yang lebih kecil. Dengan fitur-fitur Hadoop
yang terbilang powerful, diiringi dengan lisensinya yang opensource, menjadikan Hadoop sebagai suatu solusi data yang costeffective. Hadoop membawa komputasi paralel yang sangat besar
ke dalam suatu commodity server. Hal ini akan menghemat biaya
penyimpanan per terabyte dan membuat pemodelan seluruh data
menjadi lebih terjangkau (affordable). Oleh karena itu, beberapa
perusahaan terkemuka di dunia pun menggunakan Hadoop
sebagai solusi untuk mengolah data masif yang mereka miliki,
baik data yang terstruktur maupun tidak terstruktur [1]. Hadoop
diciptakan oleh Doug Cutting dan Mike Cafarella pada tahun 2005
yang pada saat itu bekerja di Yahoo!. Beberapa perusahaan yang
menggunakan Hadoop dapat dilihat pada Gambar berikut.
10. MapReduce
MapReduce merupakan suatu model pemrograman dan
implementasi terkait untuk memproses dan menghasilkan dataset
besar. Pengguna menspesifikasikan fungsi map yang memproses
pasangan key/vaiue untuk menghasilkan sekumpulan pasangan
intermediate
key/value.
Sedangkan,
fungsi
reduce
menggabungkan seluruh intermediate value yang berasosiasi
dengan intermediate key yang sama. MapReduce adalah suatu
teknik dan model pemrograman untuk komputasi terdistribusi.
Keuntungan utama dari MapReduce adalah kemudahan untuk
449
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
mengatur pemrosesan data dengan memanfaatkan beberapa
node komputasi. Ketika aplikasi yang kita inginkan sudah kita buat
dengan model pemrograman MapReduce, maka aplikasi dapat
berjalan dalam ratusan, ribuan, bahkan puluh ribuan mesin dalam
suatu kluster dengan hanya mengubah konfigurasi saja.
Skalabilitas sederhana inilah yang membuat banyak programmer
tertarik untuk menggunakan model MapReduce. MapReduce
merupakan ‘jantung’ dari Hadoop[1]. Singkatnya, komputasi pada
model MapReduce memanfaatkan sekumpulan key/value sebagai
input, dan menghasilkan output yang juga berupa pasangan
key/value. Pengguna pustaka MapReduce mengekspresikan
komputasi tersebut dalam dua buah fungsi, yaitu Map dan
Reduce.
a. Map
Fungsi Map menerima pasangan input dan menghasilkan
sekumpulan pasangan kunci/nilai perantara (intermediate
key/value). Pustaka MapReduce mengelompokkan seluruh nilai
perantara yang berasosiasi dengan kunci perantara yang sama,
kemudian meneruskannya ke fungsi Reduce.
b. Reduce
Fungsi Reduce menerima suatu kunci perantara dan
sekumpulan nilai untuk kunci tersebut. Fungsi ini menggabungkan
nilai-nilai tersebut untuk kemudian membentuk sekumpulan nilai
yang lebih sederhana atau jumlahnya lebih sedikit. Idealnya,
setiap pemanggilan Reduce akan menghasilkan nol atau satu nilai
output. Nilai perantara diberikan ke fungsi Reduce melalui suatu
iterator. Hal ini memungkinkan kita untuk menangani nilai yang
terlalu besar untuk dimasukkan ke dalam memori. Reduce
mengambil output dari fungsi Map sebagai input, kemudian
menggabungkan data tersebut menjadi satu set data yang lebih
sederhana atau jumlahnya lebih sedikit. Fungsi Reduce ini selalu
dilakukan setelah fungsi Map.
Dalam model pemrograman MapReduce, tipe data antara
fungsi Map dan Reduce memiliki hubungan sebagai berikut:
map (k1,v1) → list(k2,v2)
reduce (k2,list(v2)) → list(v2)
Tipe data input kunci/nilai pada fungsi Map (k1, v1) boleh
saja berbeda dengan tipe data output fungsi Map (k2, v2). Namun
tipe data input fungsi Reduce (k2, v2) harus sama dengan tipe
data output fungsi Map. Tipe data output fungsi Reduce (v2)
450
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
cenderung sama dengan tipe data nilai dari input fungsi
Reduce[1].
11. Algoritma C4.5
Secara umum Algoritma C4.5 untuk membangun pohon
keputusan adalah sebagai berikut [2]:
-
Memilih atribut untuk digunakan sebagai akar
Membuat cabang untuk masing-masing nilai
Membagi kasus dalam cabang
Mengulangi proses untuk masing-masing cabang sampai
semua kasus pada cabang memiliki kelas yang sama.
Untuk pemilihan atribut sebagai akar, didasarkan pada nilai
gain tertinggi dari atribut-atribut yang ada., Rumus perhitungan
gain adalah seperti yang tertera berikut:
,� =
−∑
=
| |
∗
| |
Keterangan:
S : Himpunan kasus
A : Atribut
n : Jumlah partisi atribut A
|Si| : Jumlah kasus pada partisi ke i
|S| : Jumlah kasus dalam S
Sebelum mendapatkan nilai Gain adalah dengan mencari
nilai Entropi. Entropi digunakan untuk menentukan seberapa
informatif sebuah masukan atribut untuk menghasilkan sebuah
atribut. Rumus dasar dari Entropi adalah sebagai berikut:
= ∑−
=
∗
Keterangan:
S : Himpunan Kasus
n : Jumlah partisi S
pi: Proporsi dari Si terhadap S
451
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
9.5.2 Implementasi
Berikut kode program dari kedua class, yaitu class GainRatio.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
public double entropy(int c[]){
double entropy=0;
int i=0;
int sum=0;
double frac;
while(c[i]!=0) {
sum=sum+c[i];
i++;}
i=0;
while(c[i]!=0){
frac=(double)c[i]/sum;
entropy=entropy-frac*(Math.log(frac)/Math.log(2));
i++;}
return entropy;}
public double gainratio(int index,double enp){
int c[][]=new int[1000][100];
int sum[]=new int[1000]; //
String currentatrrval="@3#441get";
double gainratio=0;
int j=0;
int m=-1; //index for split number
int lines=linenumber;
int totalsum=0;
for(int i=0;i<lines;i++){
if(Integer.parseInt(count[i][0])==index) {
if(count[i][1].contentEquals(currentatrrval)) {
j++;
c[m][j]=Integer.parseInt(count[i][3]);
sum[m]=sum[m]+c[m][j]; }
else{
j=0;
m++;
currentatrrval=count[i][1];
c[m][j]=Integer.parseInt(count[i][3]); //(different class) data sets count
per m index split
sum[m]=c[m][j]; }
}
}
int p=0;
while(sum[p]!=0) {
totalsum=totalsum+sum[p]; //calculating total instance in node
p++;}
double wtenp=0;
double splitenp=0;
double part=0;
for(int splitnum=0;splitnum<=m;splitnum++){
part=(double)sum[splitnum]/totalsum;
wtenp=wtenp+part*entropy(c[splitnum]); }
splitenp=entropy(sum);
gainratio=(enp-wtenp)/(splitenp);
return gainratio;
}
452
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Langkah-langkah dimulai dari start sampai mengeluakan output dari
metode c45:
7.
Ketik start-all.sh
8.
Cek JPS
9.
Membuat folder c45 di hduser, kemudian membuat folder input didalam
folder C45.
10. Mengecek folder di localhost:50070
11. Copy file dari local ke hdfs
453
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
12. Mengecek file di localhost:50070
13. Membuat folder folder output1 didalam folder C45.
14. Mengecek folder di localhost:50070
15. Menjalankan Eclipse
16. Memilih direktori workplace
454
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
17. File Input
18. Run Program
19. Download Output
455
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
20. Hasil Output
9.6 Clustering Tingkat Pengetahuan
Perkuliahan merupakan suatu sarana pembelajaran Mahasiswa
terkait dengan bidang studi yang diambil. Pada umumnya seorang
Mahasiswa dapat mengambil lebih dari satu mata kuliah sesuai dengan
jumlah yang telah ditentukan. Beragamnya matakuliah yang diambil
mengakibatkan tingkat pemahaman terhadap mata kuliah tersebut
beragam. Terlebih lagi keminatan Mahasiswa juga mempengaruhi
tingkat pemahaman Mahasiswa tersebut terhadap mata kuliah yang
tengah diambil. Proses perkuliahan telah di rancang dengan
sedemikian rupa dengan kurikulum yang telah diterapkan, dengan
harapan Mahasiswa tersebut dapat memahami mata kuliah yang
disampaikan dengan baik. Tetapi karena tingkat pemahaman siswa
yang berbeda – beda diperlukan pengukuran tingkat pemahaman
siswa untuk kemudian dapat dilakukan evaluasi dalam melakukan
proses pengajaran.
Dalam sistem ini digunakan user modeling. User modelling
merupakan salah satu mekanisme yang kuat untuk aplikasi adaptif
yang menggunakan pengguna sebagai model untuk menyesuaikan
subyek sesuai dengan pengetahuannya. Tujuan utama dari
penggunaan user modeling system adalah untuk memberikan
pengetahuan yang cukup bagi Mahasiswa. Dengan memberikan
tingkat pengetahuan yang cukup bagi Mahasiswa, diharapkan dapat
meningkatkan kualitas Mahasiswa tersebut setelah selesai menempuh
pendidikan dalam perguruan tinggi tersebut. Siswa yang terdapat
dalam perguruan tinggi tersebut terdapat lebih dari seratus Mahasiswa
sehingga mustahil digunakan klasifikasi manual dalam penentuan
klasifikasi tingkat pemahaman Mahasiswa tersebut. Oleh karena itu
diperlukan sistem untuk mengklasifikasi tingkat pemahaman
mahasiswa berdasarkan parameter yang telah di dapat sebelumnya.
Dalam membangun sistem ini penulis menggunakan K-means
clustering untuk mengklasifikasi tingkat pemahaman tersebut. Tingkat
pemahaman mahasiswa kemudian ditentukan clusternya berdasarkan
parameter berikut, tingkat waktu belajar terhadap objek,tingkat
456
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
pengulangan belajar terhadap objek, tingkat waktu belajar pada objek
lain, kemampuan menghadapi ujian sesuai objek, kemampuan
menghadapi ujian pada objek lain, dan tingkat pengetahuan siswa.
9.6.1 Dasar Teori
12. Dataset
Data yang digunakan adalah data mengenai status pengetahuan siswa terhadap mata kuliah mesin listrik. Data tersebut
akan dikategorikan menjadi 4 kategori tingkat pengetahuan siswa
yang terdiri dari very low, low, middle, dan high berdasarkan 5
buah fitur. Contoh dataset yang digunakan pada Tabel berikut.
Fitur
UNS
STG
SCG
STR
LPR
PEG
0
0
0
0
0
very_low
0.08
0.08
0.1
0.24
0.9
High
0.06
0.06
0.05
0.25
0.33
Low
0.1
0.1
0.15
0.65
0.3
Middle
0.08
0.08
0.08
0.98
0.24
Low
0.09
0.15
0.4
0.1
0.66
Middle
0.1
0.1
0.43
0.29
0.56
Middle
0.15
0.02
0.34
0.4
0.01
very_low
0.2
0.14
0.35
0.72
0.25
Low
Sumber:
https://archive.ics.uci.edu/ml/datasets/User+Knowledge+Modeling
Keterangan:
STG : Tingkat waktu belajar terhadap objek
SCG : Tingkat pengulangan belajar terhadap objek
STR : Tingkat waktu belajar pada objek lain
LPR : Kemampuan menghadapi ujian sesuai objek
PEG : Kemampuan menghadapi ujian pada objek lain
UNS : tingkat pengetahuan siswa
13. Konsep Big Data
Big data merupakan data yang melebihi kapasitas dalam
sistem basis data, berukuran sangat besar dan memiliki struktur
yang tidak sesuai dengan struktur basis data yang ada sehingga
dalam pengolahannya membutuhkan proses dari teknik-teknik
yang lain (Dumbill, 2012). Big Data dapat didefinisikan sebagai
sebuah teknologi baru yang memungkinkan untuk melakukan
457
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
pemrosesan, pengolahan, analisis, dan penyimpanan data dalam
format beragam yang berukuran sangat besar dengan waktu pemrosesan yang lebih singkat. Sebuah big data memiliki beberapa
karakteristik diantaranya volume, variety serta velocity.
Volume dalam big data merupakan besarnya ukuran sebuah data yang menyebabkan dibutuhkannya solusi untuk
melakukan pemrosesan dan penyimpanan data. Karakteristik
kedua yaitu velocity, pertumbuhan data dapat terjadi dalam waktu
yang sangat cepat dengan bertambah dalam jumlah yang sangat
banyak. Karakteristik ketiga yaitu variety, keberagaman bentuk
atau format sejumlah data memerlukan teknologi untuk dapat
mempermudah dalam pengolahannya. Dalam pengolahan big
data salah satu teknologi yang dapat dimanfaatkan yaitu hadoop.
14. Hadoop
Hadoop merupakan sebuah framework open source yang
mendukung aplikasi untuk dapat berjalan pada lingkungan big
data. Hadoop berjalan pada lingkungan yang menyediakan storage dan komputasi secara terdistribusi ke kluster-kluster dari komputer atau node. Hadoop didukung oleh dua komponen utama
yaitu HDFS dan MapReduce.
HDFS merupakan
sistem
penyimpanan/
storage
terdistribusi, yang melakukan proses pemecahan file besar
menjadi bagian-bagian lebih kecil kemudian didistribusikan ke
kluster-kluster dari komputer. MapReduce merupakan algoritma
atau komputasi terdistribusi
15. MapReduce
MapReduce adalah model pemrograman untuk memproses
data berukuran besar secara terdistribusi. Dalam memproses
data, MapReduce dibagi menjadi dua proses yaitu prose Map dan
proses Reduce. Proses Map bertugas untuk mengumpulkan informasi dari data yang terdistribusi dari tiap komputer dalam cluster.
Sedangkan Reduce merupakan hasil akhir dari Map yang dikirim
langsung ke pengguna.
Program yang memuat kalkulasi dalam proses Map disebut
Fungsi Map sedangkan pada proses Reduce disebut Fungsi Reduse. Fungsi Map bertugas untuk membaca input dalam bentuk
pasangan Key/Value yang kemudian menghasilkan funsi map
yang disebut Key/Vakue intermediate. Fungsi Reduce bertugas
untuk membaca pasangan Key/Value Intermediate yang selanjutnya dikelompokkan berdasarkan Key tersebut.
458
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
16. Single Node
Hadoop dapat dijalankan dalam single node. Pada single
node hanya melibatkan satu buah komputer untuk menjalankan
fungsi-fungsi dalam pengolahan data.
17. Clustering
Clustering adalah proses pengelompokkan kumpulan data
menjadi beberapa cluster atau kelompok sehingga objek di dalam
satu kelompok memiliki banyak kesamaan dan memiliki banyak
perbedaan dengan objek dikelompok lain. (Han, Kamber, & Pei,
2012).
Clustering merupakan Unsupervised Learning karena clustering memiliki sifat untuk dipelajari karena tidak memiliki data latih
dan data yang dimasukkan tidak memiliki label kelas sehingga
data yang ada akan dikelompokkan.
18. K-Means
K-Means merupakan salah satu algoritma clustering yang
paling umum karena K-Means memiliki kemampuan untuk mengelompokkan dengan jumlah yang cukup besar dan waktu komputasi yang cepat dan efisien.
Langkah-langkah untuk melakukan K-Means clustering
adalah sebagai berikut:
-
Menentukan jumlah cluster K
Menentukan nilai centroid
Menghitung jarak dari objek ke centroid dengan
menggunakan rumus euclidean.
= √∑
=
−
(1)
Dimana:
p = Dimensi Data
X1 = Posisi Titik Satu
X2 = Posisi Titik Dua
- Mengelompokkan data sesuai centroid terdekat.
- Hitung kembali pusat cluster, jika pusat cluster berubah maka
kembali hitung jarak dari objek ke centroid, jika tidak maka
proses clustering selesai.
Dimana:
= Jarak Euclidean
= Banyaknya objek
-
Perbarui nilai centorid
Ulangi proses sampai nilai dari titik centroid tidak lagi berubah
459
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
9.6.2 Implementasi
Proses dari algoritma k-means dimulai dengan menginputkan
dataset, nilai k dan threshold yang akan digunakan untuk
pengelompokan data. Proses pertama adalah menentukan centroid
yang dipilih secara random, kemudian menghitung jarak dari objek ke
centroid dengan menggunakan metode euclidean dan hasil
perhitungan jarak dikelompokan sesuai dengan centroid terdekat.
Selanjutnya cek kondisi, jika data masih mengalami perubahan maka
kembali ke proses menentukan centroid sampai data kovergen
kemudian proses selesai dijalankan. Proses menentukan centroid dan
algoritma k-means ditunjukan pada potongan kode program berikut.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
private static void createCenters(int k, Configuration conf,
Path centers) throws IOException {
SequenceFile.Writer centerWriter =
SequenceFile.createWriter(conf,
SequenceFile.Writer.file(centers),
SequenceFile.Writer.keyClass(IntWritable.class),
SequenceFile.Writer.valueClass(Center.class));
Random r = new Random();
List<DoubleWritable> listParameters = new
ArrayList<DoubleWritable>();
Center tempC;
Double temp;
for (int i = 0; i < k; i++) {
for (int j = 0; j < conf.getInt("iCoordinates",
2); j++) {
temp = Math.floor(100.0 * r.nextDouble() *
100) / 100;
listParameters.add(new DoubleWritable(temp));
}
tempC = new Center(listParameters, new
IntWritable(i), new IntWritable(0));
centerWriter.append(new IntWritable(i), tempC);
listParameters = new ArrayList<DoubleWritable>();
}
centerWriter.close();
}
}
460
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Proses menghitung jarak dari algoritma k-means dengan
menggunakan metode euclidean ditunjukan pada potongan kode
program berikut.
1
2
3
4
5
6
7
8
9
10
11
12
13
static Double findDistance(Point p1, Point p2) {
int len = p1.getListOfCoordinates().size();
List<DoubleWritable> l1 = p1.getListOfCoordinates();
List<DoubleWritable> l2 = p2.getListOfCoordinates();
Double sum = 0.0;
//euclidean
for (int i = 0; i < len; i++) {
sum += Math.pow(l1.get(i).get() - l2.get(i).get(),
2);
}
return Math.sqrt(sum);
}
Sumber: https://github.com/mameli/k-means-hadoop
Langkah – langkah yang dilakukan dalam clustering pada hadoop:
1. Menjalankan hadoop dengan perintah “start-all.sh”
2. Jalankan eclipse dengan masuk kedalam direktori eclipse
461
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
3. File hasil clustering tersimpan didalam hdfs
4. Hasil clustering
9.7 Klasifikasi Kanker Payudara (SVM)
Kanker payudara merupakan salah satu kanker yang menyerang
manusia. Kanker ini lebih sering teridentifikasi pada kaum perempuan.
Diketahui bahwa 2 dari 10.000 perempuan yang terdapat di dunia
diperkirakan akan mengalami kanker payudara untuk setiap tahunnya
(Kemenkes RI, 2011). Untuk saat ini, kasus baru penyakit kanker
payudara per tahun ada sekitar 1.050.346 dan kasus kematian akibat
kanker payudara sudah mencapai 411.100 jiwa. Untuk beberapa
negara berkembang telah diprediksi bahwa terdapat sekitar 70% kasus
baru dan 55% kematian (Rasjidi, 2010). Penyebab pasti kanker
payudara masih belum diketahui hingga saat ini. Sebuah riset telah
mengidentifikasi bahwa terdapat beberapa faktor yang dapat
meningkatkan risiko terkena kanker payudara. Faktor tersebut terdiri
dari riwayat keluarga, kehamilan pertama di atas usia 30 tahun, tidak
memiliki anak, faktor hormonal, serta lamanya periode menstruasi
(Darsyah, 2013).
Kanker payudara memiliki dua tipe, yaitu kanker jinak atau kanker
yang tidak berbahaya dan kanker ganas atau kanker yang sangat
berbahaya. Proses pendeteksian kanker di beberapa negara masih
banyak yang menggunakan cara manual. Rangkaian tes yang
dilakukan adalah dimulai dari tes fisik hingga tes secara klinis. Tes klinis
terdiri dari tes laboratorium, biopsi, prognosis, serta monitoring tes.
Proses pendeteksian secara manual dapat menyebabkan kemiripan
462
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
hasil antara kanker payudara jinak dan ganas, sehingga dapat
menyebabkan kerancuan pada hasil pengklasifikasian jenis penyakit
payudara. Untuk mengatasi permasalahan tersebut, maka dibutuhkan
sebuah sistem yang dapat mendeteksi jenis kanker payudara secara
akurat.
Penelitian yang dilakukan oleh Novianti dan Purnami telah
melakukan analisis terhadap akurasi klasifikasi diagnosis pasien
kanker payudara dengan menggunakan algoritma SVM. Hasil akurasi
dari penelitian tersebut sebesar 92,48%. dengan perbandingan data
testing dan data training sebesar 50 : 50 (Novianti & Purnami, 2012).
Sedangkan penelitian yang sudah dilakukan oleh Puspitasri, dkk hal ini
bertujuan melakukan klasifikasi penyakit terhadap mulut dan gigi
dengan menggunakan metode yang yang digunakan peneliti yaitu SVM
dapat menghasilkan nilai akurasi sebesar 94,442%. Penelitian tersebut
menggunakan perbandingan data sebesar 80:20 (Puspitasari,
Ratnawati, & Widodo, 2017).
Penelitian yang dilakukan oleh Zhu, dkk membahas tentang
bagaimana performa dari algoritma P-packSVM. Algoritma P-packSVM
merupakan sebuah metode optimasi pada SVM dengan menggunakan
parallel stochastic gradient desent (SGD). Data yang digunakan dalam
penelitian tersebut adalah CCAT dataset sebanyak 800.000 data. Hasil
pengujian algoritma P-packSVM didapatkan nilai akurasi sebesar 95%
dengan waktu komputasi selama 13 menit.
Peneliti juga
membandingkan hasil dari penerapan algoritma packSVM tanpa
konsep parallel yang menghasilkan nilai akurasi sebesar 92% dengan
waktu komputasi selama 5 jam dengan menggunakan data yang sama
(Zhu, Chen, Wang, Zhu, & Chen, 2009).
Selanjutnya menurut penelitian Sitepu dkk yang sudah melakukan
analisis berbasis stream analisis menggunakan Apache Spark sangat
cepat dalam mengolah berukuran besar. Penelitian ini memproses data
100 kali lebih cepat dibandingkan dengan pada clauster hadoop yang
hanya 10 kali lebih cepat. Lalu cara kerja pada penelitian ini kerja spark
streaming terbagi jadi 3 yaitu Tuple at a time, Micro Batch, Windowed.
Untuk menghasilkan kualiafikasi baik memperbesar ukuran Ram,
harddisk, dan intel core. Hasil pada analisis ini bahwa menunjukkan Big
Data dapat diolah untuk penerapan metode Stream Processing, lalu
metode ini yang akan diterapkan pada pengelolaan Big Data yang
disinkronisasi pada Apache Spark yang menghasilkan informasi data
input (Sitepu, Tumbel, & Hutagalung, 2016).
Berdasarkan performance Spark yang sangat baik maka dilakukan
klasifikasi diagnosis kanker payudara dengan menggunakan metode
support vector machine (SVM) pada Spark. Penelitian ini membahas
tentang penyakit kanker payudara dengan metode SVM. Tujuan
peneliti ini adalah untuk memberikan hasil akurasi yang baik dalam
proses penentuan klasifikasi jenis penyakit kanker payudara jinak dan
ganas. peneliti sangat mengharapkan bahwa dengan adanya ini sangat
membantu masyarakat.
463
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
9.7.1 Dasar Teori
19. Data Yang Digunakan
Pada penelitian ini, data yang digunakan untuk melakukan
diagnosis terhadap klasifikasi payudara berasal dari WDBC
(Wisconsin Diagnostic Breast Cancer). Data ini terdiri atas 10 fitur
dan dua jenis kelas, yakni Ganas dan Jinak. Fitur yang digunakan
pada data ini antara lain ketebalan (Clump Thickness), ukuran sel
(Uniformity of Cell Size), bentuk sel (Uniformity of Cell Shape),
adhesi marjinal (Marginal Adhesion), ukuran sel tunggal Epithelial
(Single Epithelial Cell Size), Bare Nuclei, Bland Chromatin, Bland
Chromatin, dan mitosis (Mitoses). Data ini terbagi atas dua jenis,
yakni data training dan data testing. Data ini dapat diperoleh
dengan
mengakses:
http://archive.ics.uci.edu/ml/machinelearning-databases/breast-cancer-wisconsin/.
20. Konsep Big Data
Big Data ialah suatu kumpulan data dalam jumlah yang
sangat besar. Informasi yang terdapat di dalamnya dapat
digunakan sebagai sarana analisis terhadap data itu sendiri.
Pengelolaan data dalam jumlah yang besar serta dengan
penerapan teknologi, diharapkan dapat memberikan hasil analisis
dengan cepat dan akurat (Maryamah, Asikin, Kurniawati, Sari, &
Cholissodin, 2016).
Untuk menerapkan konsep Big Data membutuhkan suatu
manajemen, penyimpanan, analisis, serta teknologi visualisasi.
Ada beberapa karakteristik yang dimiliki Big Data, yaitu variety,
velocity, dan volume. (Rahadian, Kurnianingtyas, Mahardika,
Maghfira, & Chilissodin, 2017) Variety merupakan bentuk
implementasi data, volume merupakan banyaknya jumlah data,
serta velocity merupakan kecepatan yang didapatkan dari hasil
proses pencarian data (Maryamah, Asikin, Kurniawati, Sari, &
Cholissodin, 2016).
21. Apache Spark
Apache Spark pertama kali dikembangkan oleh UC
Berkeley AMPLab pada tahun 2009. Tahun 2010, Apache
dikembangkan menjadi sebuah project open source yang
digunakan untuk menganalisa data secara real-time. Apache
Spark menggunakan API dalam mesin pengolahan data, serta
terdiri dari satu set library dan Spark core (Sitepu, Tumbel, &
Hutagalung, 2016).
Core merupakan sebuah mesin eksekusi terdistribusi
dengan Python, Java API, dan Scala yang digunakan dalam
pengembangan aplikasi. Apache Spark memungkinkan adanya
sumber daya yang digunakan dengan lebih efisien dalam satu
464
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
cluster. Spark dapat mengelola berbagai jenis data dengan
dengan ukuran yang besar, serta berbagai sumber data seperti
real-time streaming data maupun batch data. Keunggulan dari
Spark adalah Spark dapat memproses data 100 kali lebih cepat,
serta dapat memproses data pada disk 10 kali lebih cepat apabila
terdapat pada cluster Hadoop (Sitepu, Tumbel, & Hutagalung,
2016).
22. Parallel Pack Support Vector Machine (P-packSVM)
Support Vector Machine atau yang sering disingkat SVM ini
dapat didefinisikan sebagai suatu model pembelajaran dengan
konsep hipotesis berupa fungsi linear yang berdimensi tinggi serta
dilatih dengan algoritma pembelajaran didasarkan dengan konsep
optimasi. Algoritma SVM diperkenalkan pertama kali oleh Vapnik
tahun 1992 (Puspitasari, Ratnawati, & Widodo, 2017).
Terdapat dua prinsip dasar dalam SVM, yaitu linear classifier dan non-linear classifier. Prinsip non-linear classifier dikembangkan dengan memasukkan konsep kernel trick. Konsep ini
sangat berguna apabila diaplikasikan ke dalam suatu ruang kerja
berdimensi tinggi. Proses pembelajaran yang diterapkan pada
algoritma SVM dilakukan dengan menggunakan data input dan
data latih sebagai solusi yang diharapkan.
Penelitian ini menggunakan algoritma P-packSVM sebagai
pengembangan dari algoritma SVM. Awalnya, algoritma PpackSVM diadaptasi dari algoritma Sequential packSVM (SpackSVM) (Zhu, Chen, Wang, Zhu, & Chen, 2009).
a. Sequential pack SVM
S-packSVM menerapkan Stochastic Gradient Descent
(SGD) yang dapat digunakan untuk mengatasi hinge loss pada
data training. Proses pembelajran sangat bergantung pada nilai T
iterasi. Pada iterasi
, … , diambil sebuah random example
� dan dilakukan proses pembelajaran dengan
,
Persamaan 1 untuk mengatasi permasalahan empirical loss.
≈
ℓ
≈ℓ
�
= max [ , −
= ‖ ‖ +ℓ
.
, �(
) ]
Untuk meningkatkan kinerja pembelajaran, maka dilakukan
modifikasi terhadap perhitungan prediktor pada iterasi t.
←
−
�
Karena operator
tidak merepresentasikan perbedaan
fungsi pada
tetapi merepresentasikan sub-gradient, maka
dapat dihitung nilai sub-gradient dengan Persamaan berikut.
465
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
=� −
. .�
,
<
. .�
,
�
Ketika proses perhitungan kernel dijalankan maka nilai w
memiliki posisi sebagai superposition dengan proses perhitungan
, dimana:
�
=∑=
{
←( − )
{
+
,
∅
,
.
.�
.
.�
<
Nilai kernel yang digunakan adalah kernel Radial Basis
Function (RBF).
‖ ⃗ − ⃗‖
�
Setelah dilakukan update terhadap nilai w maka dilakukan
proses proyeksi terhadap nilai w agar mendapatkan solusi yang
mendekati optimal.
⃗, ⃗ =
← min { ,
−
√�
‖ ‖
}
b. Parallel pack SVM
P-pack SVM merupakan pengembangan dari S-pack SVM
yang ditujukan untuk memperbaiki beberapa permasalahan
terhadap kompleksitas waktu dalam proses pelatihan SVM kernel.
P-pack SVM memiliki dua karakteristik utama yang terdiri dari:
Keunggulan: Sebuah iterasi tunggal dapat di implementasikan
secara paralel. Proses , ∅
yang dapat memakan waktu
perhitungan sangat lama dapat di paralelkan melalui
dalam
penyimpanan terdistribusi dari masukkan berupa
,
ℋ.
Kendala: Akan ada banyak proses iterasi. Hal ini disebabkan
karena biasanya terdapat minimal satu permintaan komunikasi
di antara semua prosesor pada setiap iterasi. Banyaknya
komunikasi akan memperlambat program paralel ketika jumlah
prosesor meningkat (synchronization overhead).
Untuk mengatasi permasalahan tersebut makan digunakan
Distributed Hash Table untuk meningkatkan keunggulan dan
Packing Strategy untuk mengatasi kendala pada P-pack SVM.
466
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Distributed Hash Table. Proses Distributed Hash Table
diaktifkan untuk mempercepat proses bottleneck. Dua operasi
penting dalam Distributed Hash Table, yaitu proses Enumerasi
dan proses Look-up & Modification. Enumerasi adalah sebuah
proses perhitungan hasil , ∅
yang didistribusikan ke semua
prosesor melalui komunikasi antar prosesor. Look-up &
Modification merupakan proses pengecekkan key yang diberikan
pada tabel hash lokal ℋ . Jika key sudah ditemukan, maka akan
dilakukan penginformasian ke seluruh prosesor. Jika tidak, maka
akan dilakukan entri key baru ke salah satu prosesor.
ℋ = {(
,
,
,
)}
|ℋ |
=
⊂ℋ
Packing Strategy. Proses yang terjadi pada Packing
Strategy adalah mengemas iterasi menjadi satu untuk mengurangi
jumlah komunikasi dengan pemberian integer r. Algoritma
packing untuk r terdiri dari:
Pre-calculate ′ = (
Pre-calculate Κ ,
) untuk i = t ...t + r -1
,∅
untuk
<
+ −
Lakukan iterasi i pada t untuk t + r – 1 untuk melakukan
update secara offline (tanpa komunikasi).
′+ ←
9.7.2 Implementasi
′+ +
Κ
+
,
Penelitian klasifikasi penyakit payudara ini menggunakan algoritma
Support Vector Machine, untuk metode SVM ini dianggap dapat
menghasilkan akurasi pengklasifikasian yang cukup tinggi (Zhang,
2012). Proses klasifikasi menggunakan algoritma SVM dimulai dengan
melakukan pelatihan pada data training dengan menggunakan
pendekatan Stochastic Gradient Descent (SGD). Kemudian, pada
penghitungan data uji dengan rumus svm menggunakan kernel Radial
Basis Function (RBF).
Pelatihan data latih dilakukan dengan pendekatan SGD dimulai
dengan inisialisasi parameter SGD, melatih model dengan
memperbarui pack, lalu menyimpan bagian model yang dioptimasi.
Pada pembaruan pack terdiri dari menghitung pasangan produk di
dalam kernel, menghitung sub gradient, lalu memperbarui model.
Berikut potongan kode program untuk menghitung sub gradien yang
dapat dilihat pada kode program berikut.
467
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Compute sub gradients
for (i <- 0 until pack_size) {
t = t+1
s = (1 - 1D/(t))*s
for (j <- (i+1) until (pack_size)) {
yp(j) = (1 - 1D/(t))*yp(j)
}
if (y(i) * yp(i) < 1) {
norm = norm + (2*y(i)) / (lambda * t) *
yp(i)+math.pow((y(i)/(lambda*t)),2)*inner_prod((i,i))
alpha = sample(i)._2._2
local_set=local_set+(sample(i)._1->(sample (i)._2._1,
alpha + (1/(lambda*t*s))))
for (j <- (i+1) to (pack_size-1)) {
yp(j) = yp(j) + y(j)/(lambda*t) *
inner_prod((i,j))
}
if (norm > (1/lambda)) {
s = s * (1/math.sqrt(lambda*norm))
norm = (1/lambda)
for (j <- (i+1) to (pack_size-1)) {
yp(j) = yp(j) /math.sqrt(lambda*norm)
}
}
}
}
Berdasarkan alur penelitian yang telah disebutkan, berikut
potongan kode program saat melakukan perhitungan kernel RBF pada
data uji yang ditampilkan pada kode program berikut.
1
2
3
4
5
6
7
class RbfKernelFunc(gamma_s:Double) extends
java.io.Serializable{
var gamma: Double = gamma_s
def evaluate(x_1: Vector, x_2:Vector): Double = {math.exp(-1 *
gamma * math.pow(Vectors.sqdist (x_1, x_2),2))
}
}
468
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Setelah melakukan implementasi pelatihan data latih dan
pengujian dengan SVM maka akan dihasilkan keluaran dari eclipse
seperti Gambar berikut.
Selain itu akan terbentuk file txt yang berisi jumlah data latih dan
data uji yang dipakai, banyak iterasi, pack size, akurasi yang didapat,
dan lama waktu komputasi. Isi file txt dari hasil runing program dapat
dilihat pada Gambar berikut.
469
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Daftar Pustaka
Big Data Analytics, 1st Edition. Editor(s): Govindaraju,
Raghavan, and Rao. Release Date: 07 Jul 2015. Imprint:
Elsevier.
Big Data Working Group. Big Data Administrator. Yogyakarta:
Universitas Gajah Mada.
(2013, Oktober). Diambil kembali dari Apache TM Hadoop @
homepage: http://hadoop.apache.org/.
Big Data Working Group, 2013. Big Data Analytics for Security
Intelligence. Cloud Security Alliance – All Rights
Reserved.
Brammer, 2007. Principles of Data Mining. UK: University of
Portsmouth.
Bustami. 2013. Penerapan Algoritma Naive Bayes untuk
Mengklasifikasi Data Nasabah Asuransi.
Çakir, M. U. & Güldamlasioglu, S., 2016. Text Mining Analysis
in Turkish Language Using Big Data Tools. Computer
Software and Applications Conference (COMPSAC),
IEEE 40th Annual. IEEE, 614-618.
Chitta, Radha, Rong Jin, Timothy C. Havens, dan Anil K. Jain.
2011.Approximate kernel k-means: solution to large
scale kernel clustering. In KDD, pp. 895-903.
Cossalter, V., 2016. Motorcycle Dynamics.
C. W. Hsu and C. J. Lin, 2002. A Comparison of Methods for
Multiclass Support Vector Machines, Neural Networks,
IEEE Transactions Vol. 13 No. 2, pp. 415-425.
Darsyah, M. Y. 2013. Menakar Tingkat Akurasi Support
Vector Machine Studi Kasus Kanker Payudara.
Statistika, Vol 1 No 1.
Dean, J., & Ghemawat, S., 2004. MapReduce: Simplified Data
Processing on Large Clusters. Google Corp.
Dietrich, D., Heller, B., dan Yang, B., 2015. Data Science and
Big Data Analytics: Discovering, Analyzing, Visualizing
and Presenting Data. Editor: EMC Education Services.
470
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Filiana, Agata. 2014. Recommendation System [Online]. Diakses pada 26 Desember 2017.
Hammouda, K. M. & Kamel, M. S., 2003. Incremental document clustering using cluster similarity histograms. Web
Intelligence. WI 2003. Proceedings. IEEE/WIC International Conference on, 2003. IEEE, 597-601.
Han, J. K. 2006. Concept and Techniques. Morgan Kaufmann.
Han, J., Kamber, M., & Pei, J. 2012. Data Mining Concepts
and Techniques Third Edition. Waltham: Elsevier Inc.
Hung, M.-C., Wu, J., Chang, J.-H. & Yang, D.-L., 2005. An
Efficient k-Means Clustering Algorithm Using Simple
Partitioning. Journal of Information Science and Engineering, 21, 1157-1177.
Hurwitz, J., Alan, N., Halper, F., dan Kaufman, M., 2013. Big
Data For Dummies. [e-book] John Wiley & Sons, Inc.
Tersedia melalui: <https://kat.cr> [Diakses 27 Mei 2015].
Industri, M. 2013. Definisi cloud Computing. Diambil kembali
dari Cloud Computing: Meruvian.org
Irem, D. 2016. Classifying Multi-Destination Trips in Austria
with Big Data. Elsevier, 2211-9736.
Judith S. Hurwitz, et. al. 2013. Big Data For Dummies, John
Wiley & Sons, Inc., Hoboken, New Jersey.
Kahraman, H. T., Colak, I., & Sagiroglu, S. (2009, October).
User Knowledge Modeling Data Set. Diambil kembali
dari
UCI:
https://archive.ics.uci.edu/ml/datasets/User+Knowledge+Modeling.
Kalamsyah, S. A. 2014. Aplikasi Pendukung Keputusan Seleksi Asisten Praktikum dan Lab Menggunakan Metode
Analytical Hierarchi Process (Studi Kasus: Lab Informatika Universitas Telkom).
Kelimutu, Rizki Dwi. Sistem Rekomendasi Komunitas
Pemuda di Kota Semarang Berbasis Item Based Collaborative Filtering dengan Metode Adjusted Cosine Similarity. Semarang: Universitas Dian Nuswantoro.
471
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Kemenkes RI. 2011. Menuju Masyarakat Sehat yang Mandiri
dan Berkeadilan. Jakarta Pusat, DKI Jakarta:
Kementerian Kesehatan Republik Indonesia.
Kusumadewi, S. 2009. Klasifikasi Status Gizi Menggunakan
Naive Bayesian Classification.
Larose, E., Yeghiazarians, Y., Libby, P., Yucel, E. K., Aikawa,
M., Kacher, D. F., Aikawa, E., Kinlay, S., Schoen, F. J. &
Selwyn, A. P., 2005. Characterization of human atherosclerotic plaques by intravascular magnetic resonance
imaging. Circulation, 112, 2324-2331.
Lukito, Y., & Chrismanto, A. R. 2015. Perbandingan MetodeMetode Klasifikasi Untuk Indoor Positioning System.
Jurnal Teknik Informatika dan Sistem Informasi, 2.
Magoulas, R., dan Lorica, B., 2009. Introduction to Big Data.
[e-book] Sebastopol CA: O'Reilly Media. Tersedia
melalui: <http://www.oreilly.com> [Diakses 20 Januari
2016].
Mameli, F. 2017. k-means-hadoop. Diambil kembali dari
Github:
https://github.com/mameli/k-meanshadoop/tree/master/mameli.
Maryamah, Asikin, M., Kurniawaty, D., Sari, S., & Cholissodin,
I., 2016. Implementasi Metode Naïve Bayes Classifier
Untuk Seleksi Asisten Praktikum Pada Simulasi Hadoop
Multinode Cluster. Jurnal Teknologi Informasi dan Ilmu
Komputer Vol 3 No 4.
Nouvel, Ahmad, 2015. Klasifikasi Kendaraan Roda Empat
Berbasis KNN. Jurnal Bianglala Informatika Vol 3 No 2.
Novianti, F. A., & Purnami, S. W. 2012. Analisis Diagnosis
Pasien Kanker Payudara Menggunakan Regresi Logistik
dan Support Vector Machine (SVM) Berdasarkan Hasil
Mamografi. Jurnal Sains dan Seni ITS Vol 1 No 1.
Pawitra, P. M., 2016. Paper Basis Data. Surakarta.
Pratama, A. Y.,dkk. 2013. Digital Cakery dengan Algoritma
Collaborative Filtering. Medan: STMIK Mikroskil.
Puspitasari, A. M., Ratnawati, D. E., & Widodo, A. W. 2017.
Klasifikasi Penyakit Gigi dan Mulut Menggunakan
472
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Metode Support Vector Machine. Jurnal Pengembangan
Teknologi Informasi dan Ilmu Komputer Vol 2, 802-810.
Putra, N. A., Putri, A. T., Prabowo, D. A., Surtiningsih, L.,
Arniantya, R., & Cholissodin, I., 2017. Klasifikasi Sepeda
Motor Berdasarkan Karakteristik Konsumen Dengan
Metode K-Nearest Neighbour Pada Big Data
Menggunakan Hadoop Single Node Cluster. Jurnal
Teknologi Informasi dan Ilmu Komputer Vol 4 No 2.
Rahardian, B. A., Kurnianingtyas, D., Mahardika, D. P.,
Maghfira, T. N., & Cholissodin, I., 2017. Analisis Judul
Majalah Kawanku Menggunakan Clustering K-Means
Dengan Konsep Simulasi Big Data Pada Hadoop Multi
Node Cluster. Jurnal Teknologi Informasi dan Ilmu
Komputer Vol 4 No 2.
Rasjidi. 2010. Epidemiologi Kanker Pada Wanita. Jakarta,
Indonesia: Sagung seto.
Rathore, P. & Shukla, D., 2015. Analysis And Performance
Improvement Of K-Means Clustering In Big Data
Environment. Communication Networks (ICCN), 2015
International Conference on, 43-46.
S., Russel, & P, Norvig., 2010. Artificial Intelligence A Modern
Approach. New Jersey: Pearson Education, Inc.
Sarkar, K., 2009. Sentence clustering-based summarization of
multiple text documents. International Journal of
Computing Science and Communication Technologies,
2, 325-335.
Shenoy, A. 2004. Hadoop Explained. Brimingham, Mumbai:
PACKT Publishing.
Sitepu, H., Tumbel, C. Z., & Hutagalung, M. 2016. Analisis Big
Data Berbasis Stream Processing Menggunakan
Apache Spark. Jurnal Telematika, 27-32.
Sitepu, H., Tumbel, C. Z., & Hutagalung, M. 2016. Analisis Big
Data Berbisnis Stream Processing Menggunakan
Apache Spark. Bandung, Jawa Barat, Indonesia.
Steinwart, I., & Christmann, A. 2008. Support Vector Machine
(Information Science and Statistics). Springer.
473
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Sujana, A. P., 2013. Memanfaatkan Big Data Untuk
Mendeteksi Emosi. Jurnal Teknik Komputer UnikomKomputika, 2, 1-4.
Supriyanti, Wiwit, Kusrini, dan Armadyah Amborowati. 2016.
Perbandingan Kinerja Algoritma C4.5 Dan Naive Bayes
Untuk Ketepatan Pemilihan Konsentrasi Mahasiswa.
Jurnal INFORMA Politeknik Indonusa Surakarta ISSN :
2442-7942 Vol. 1 Nomor 3.
Sholihah, A. 2013. Sistem Penentuan Uang Kuliah Tunggal
(UKT) Menggunakan Metode Naive Bayes Classifier.
Taylor, SJ dan R Bogdan. 1984. Introduction to Qualitative
Research Methods: The Search for meanings, Seconds
Edition. John Wiley and Sons. Toronto.
Vaidya, M., 2012. Parallel Processing of cluster by Map
Reduce. International journal of distributed and parallel
systems, 3, 167.
Watson, H. J., 2014. Tutorial: Big Data Analytics: Concepts,
Technologies, and Applications. Communications of the
Association for Information Systems (CAIS). Department
of MIS, University of Georgia.
Wijaya W.M. 2015. Teknologi Big Data: Sistem Canggih
dibalik Google, Facebook, Yahoo!, IBM.
X., Wu, & V., Kumar., 2009. The Top Ten Algorithm in Data
Mining. Chapman and Hall.
Zhang, Y. 2012. Support Vector Machine Classification
Algorithm and Its Application. Information Computing
and Applications, 179-186.
Zhu, Z. A., Chen, W., Wang, G., Zhu, C., & Chen, Z. 2009. PpackSVM: Parallel Primal Gradient Descent Kernel
SVM. Ninth IEEE International Conference. Miami, FL,
USA: IEEE.
Zikopoulos, P. C., Eaton, C., deRoos D., Deutsch T., Lapis G.,
2012. Understanding Big Data: Analytics for Enterprise
Class Hadoop and Streaming Data. McGraw-Hill
Companies.
474
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
https://tecadmin.net/install-oracle-java-8-ubuntu-viappa/#
https://medium.com/@GalarnykMichael/install-sparkon-ubuntu-pyspark-231c45677de0
http://spark.praveendeshmane.co.in/spark/sparkwordcount-scala-example.jsp
https://stackoverflow.com/questions/27478096/cannotread-a-file-from-hdfs-using-spark
https://spark.apache.org/examples.html
https://www.impactradius.com/blog/7-vs-big-data/
https://www.xenonstack.com/blog/ingestion-processingdata-for-big-data-iot-solutions
https://stackoverflow.com/questions/24115828/what-ishue-all-about
475
Cholissodin, I., Riyandani, E., 2016, Analisis Big Data, Fakultas Ilmu Komputer,
Universitas Brawijaya, Malang.
Biografi Penulis
Imam Cholissodin, lahir di Lamongan pada
tanggal 19 Juli 1985, telah menyelesaikan
pendidikan S2 di Teknik Informatika FTIF ITS
Surabaya pada Tahun 2011. Sejak Tahun 2012
telah aktif sebagai dosen pengajar di jurusan
Teknik Informatika Program Teknologi dan Ilmu
Komputer (PTIIK), dan Alhamdulillah mulai tahun
2016 telah menjadi Fakultas Ilmu Komputer
(FILKOM) Universitas Brawijaya (UB) Malang
pada beberapa mata kuliah, seperti Information Retrieval, Pengolahan
Citra Digital, Probabilitas dan Statatistika, Grafika Komputer, Decision
Support System, Kecerdasan Buatan, Data Mining, Analisis Big Data,
Pemrograman GPU, Algoritma Evolusi, Swarm Intelligence dan
Pengenalan Pola. Di samping mengajar, peneliti juga aktif dalam Riset
Group Sistem Cerdas dan Riset Group Media, Game & Mobile
Technology (MGM) di dalam Laboratorium Riset. Selain itu peneliti juga
telah melakukan beberapa publikasi pada seminar maupun jurnal
nasional dan internasional (IEEE, Scopus, etc). Riset pada tahun 20152018 yang sedang dilakukan sekarang bersama dengan beberapa tim
dosen dan mahasiswa semester akhir adalah berfokus pada bidang
Information Retrieval, teknik optimasi untuk melakukan analisis
dokumen lembaga pemerintahan secara Real-time, yaitu dengan tema
“Pengembangan Sistem Audit Dokumen Lembaga Pemerintahan
Menggunakan Stream Deep Learning Untuk Mendukung Smart
Governance” yang merupakan kombinasi dari beberapa multi-disiplin
keilmuan antara Decision Support System (DSS), Teknik Optimasi, Big
Data, Machine Learning, Ilmu Administrasi Pemerintahan serta
Information Retrieval (IR).
Motto: “We Are A Code, We Are The Best Code Of God”.
Efi Riyandani , lahir di Riau pada tanggal 20 April
1995. Pada tahun 2016 berhasil menyelesaikan
studi S1 Teknik Informatika, Program Teknologi
Informasi dan Ilmu Komputer, Universitas Brawijaya Malang dengan tugas akhir yang berjudul
“Optimasi Komposisi Pakan Sistem Polikultur Ikan
dan Udang Menggunakan Algoritma Genetika”.
476