Academia.eduAcademia.edu

Buku Analisis Big Data

( Alternatif Link download Buku Analisis Big Data: http://bit.ly/2x8ta9S ) 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: 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

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 sshOK): 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 sshError): 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 statusOK): 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 sshOK): 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 sshError): 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 statusOK): 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 sshOK): 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 sshError): 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 statusOK): 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 in1 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 FileNew - Latiha : Hello“ ala.s ala . Cek FileNew  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 FileNew 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 FileNew  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