Pemrosesan Data Semesta
Fundamental Hadoop MapReduce09 Maret 2020
Husni
Hari ini
▪Pertemuan yang lalu:▪MPI (Message Passing Interface)
▪Pembahasan hari ini:▪Hadoop Distributed File System (HDFS) dan MapReduce
▪Pengumuman:▪UTS Take Home
Ujian Tengah Semester▪Take Home, Personal▪Baca Bab_Urutaan_Presensi buku:
Bernard Marr (2016) Big Data in Practice: How 45 Successful Companies Used Big Data Analytics to Deliver Extraordinary Results, John Wiley & Sons
▪Rangkum dalam 2 s.d 3 halaman (bahasa, A4, 1 spasi, Arial 11)▪Dikumpulkan paling lambat 03 April 2020
via email [email protected].▪Rangkuman dalam format .docx▪Presentasi dalam format .pptx
Kita Hidup dalam Dunia Data…
Apa yang Kita Lakukan Dengan Big Data?
Store
Access
Encrypt
Kita ingin melakukan semua ini dengan lancar ...
Share
Process
…. dan lainnya!
Kemana Menyimpan Big Data?▪ Sistem penyimpanan adalah komponen kunci untuk menghadirkan Permintaan (Query) /
Penambangan (Mining) / Analisis (Analytics) Big Data
▪Biasanya, sistem penyimpanan akan "mempartisi" dan "mendistribusikan" Big Data,menggunakan teknik striping (atau pemartisian) dan penempatan▪ Ini memungkinkan akses bersamaan (concurrent) ke data
▪ serta meningkatkan toleransi kesalahan (fault-tolerance)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Logical File Stripe SizeStriping Unit
Server 1 Server 2 Server 3 Server 4
0 1 2 34 5 6 10 14 7 11 159 138 12
Contoh: Google File SystemGFS membagi file besar menjadi blok ukuran tetap dan mendistribusikannya secaraacak di mesin cluster.
Server 0(Writer)
Blk0
Blk1
Blk2
Blk3
Blk4
Blk5
Blk6
Server 1
Blk0
Blk2
Blk3
Blk3
0M
64M
128M
192M
256M
320M
384M
Server 2 Server 3
Blk1
Blk2
Blk4
Blk6
Blk0
Blk1
Blk4
Blk5
Blk6
Large FileBlk0Blk1
Blk2
Blk3
Blk4
Blk5
Blk6
Blk5
Contoh: Google File System
▪GFS mengadopsi arsitektur master-slave
GFS client Master
Chunk Server
Linux File System
Chunk Server
Linux File System
Chunk Server
Linux File System
File name
Contact address
Chunk Id, range
Chunk data
Bagaimana Memroses Big Data?▪Satu alternatif: membuat sistem (program) terdistribusi khusus untuk setiap
algoritma baru▪ Tidak praktis!
▪Alternatif lain: menggunakan kerangka kerja analitik terdistribusi modern yang▪ Membebaskan programmer dari urusan dengan banyak aspek berbeda dari
pengembangan program terdistribusi▪ Memungkinkan programmer untuk fokus HANYA pada bagian sequential dari
programnya.
▪ Contoh:▪Hadoop MapReduce▪Google’s Pregel
Kerangka Kerja Analitika Terdistribusi
Hadoop MapReduce
PendahuluanModel
Pemrograman
ModelEksekusi
Model Arsitektural & Penjadwalan
Hadoop▪Hadoop merupakan salah satu realisasi paling berhasil dari
kerangka kerja analitik terdistribusi dari "data paralel" skalabesar
▪Hadoop MapReduce adalah implementasi open source dari Google’s MapReduce
▪Hadoop menggunakan Hadoop Distributed File System (HDFS) sebagai layer storage (penyimpanan)-nya
▪HDFS adalah implementasi open source dari GFS
Hadoop MapReduce: Pandangan Sekilas▪Hadoop MapReduce menggabungkan dua fase: Map dan Reduce yang
mencakup beberapa tugas Map dan Reduce
Map Task
Map Task
Map Task
Map Task
Reduce Task
Reduce Task
Reduce Task
Partition
PartitionPartition
Partition
Partition
Partition PartitionPartition
Partition
ke HDFSDataset
HDFS
HDFS BLK
HDFS BLK
HDFS BLK
HDFS BLK
Map PhaseShuffle Stage
Merge & Sort Stage Reduce Stage
Reduce Phase
Partition
Split 0
Split 1
Split 2
Split 3
Partition
Partition
Partition
Partition
Partition
Partition
Partition
Kerangka Kerja Analitika Terdistribusi
Hadoop MapReduce
PendahuluanModel
Pemrograman
ModelEksekusi
Model Arsitektural & Penjadwalan
✓
• Paradigma komunikasi dapat dikategorikan ke dalam tiga tipe berdasarkan padatempat entitas tersebut berada. Jika entitas berjalan pada:
Files, Signals, Shared Memory…
Klasifikasi Paradigma Komunikasi
Global variables, Procedure calls, …
2. Satu Komputer tetapiberbeda Address-Space
1. Address-Space Sama Sistem Terdistribusi fokus pada entitas yang berada pada
komputer jaringan berkomunikasi dalam sistemterdistribusi menggunakan
komunikasi socket dan remoteinvocation
• Socket Communication
• Remote Invocation
3. Komputer di Jaringan
Model Pemrograman▪Hadoop MapReduce menggunakan suatu model shared-based programming
yang mensyaratkan bahwa:• Beberapa task dapat berinteraksi (jika diperlukan) via reading dan writing ke suatu ruang
bersama (shared space)
• HDFS menyediakan shared space tersebut untuk semua task Map dan Reduce
• Programmer hanya menuliskan kode sequential, tanpa mendefinisikan fungsi untuk send/receive pesan antar task.
MT1 MT2 MT3 MT4 MT5 MT6
Shared Address Space (disediakan oleh HDFS)
RT1 RT2 RT3
Komunikasi “Implisit” (disediakan oleh MapReduce Engine)- Programmer tidak menuliskan atau memanggil rutin komunikasi
Shared Address Space (disediakan oleh HDFS)
Contoh: Hitung Kata
He is delivering a lecture to the TIK744 classThe course name of TIK744is Big Data
A Text File
He is delivering a lecture to theTIK744 class
The course name of TIK744is Big Data
Sepotong File
Sepotong File
Fungsi Map
Urai&
Hitung
Key1 Value1
0 He is
20 delivering a
38 lecture to the
60 TIK744 class
Key2 Value2
He 1
is 1
delivering 1
a 1
lecture 1
to 1
the 1
TIK-744 1
class 1
Key2 Value2
He 1
is 2
delivering 1
a 1
lecture 1
to 1
the 2
TIK-744 2
class 1
course 1
name 1
of 1
Big 1
Data 1
Iterate&
Sum
Urai&
Hitung
Key1 Value1
0 The course
17 name of TIK744
40 is Big
58 Data
Key2 Value2
The 1
course 1
name 1
of 1
TIK-744 1
is 1
Big 1
Data 1
Fungsi Map
FungsiReduce
Kerangka Kerja Analitika Terdistribusi
✓ ✓
Hadoop MapReduce
PendahuluanModel
Pemrograman
ModelEksekusi
Model Arsitektural & Penjadwalan
Model Eksekusi▪Hadoop MapReduce mengadopsi suatu synchronous execution model
▪ Suatu program (atau sistem) terdistribusi dikatakan sinkron jika dan hanya jika taskunsur/elemen-nya beroperasi dalam suatu lock-step mode• Tidak ada dua tugas yang dapat berjalan secara bersamaan di bawah dua iterasi yang berbeda
• Dalam MapReduce:
• Setiap iterasi diperlakukan sebagai suatu kerja (job) MapReduce
• Suatu job dapat mencakup 1 atau lebih tugas Map dan 0 atau lebih tugas Reduce.
• Program dengan banyak iterasi (yaitu program iteratif) dieksekusi menggunakan banyak job MapReduce berantai.
• Ketika semua task Reduce di dalam job i dicommit, suatu job baru i + 1 dimulai (jika ada)
• Oleh karena itu, dua tugas berbeda tidak dapat berjalan secara paralel di bawah duapekerjaan (atau iterasi) berbeda.
Kerangka Kerja Analitika Terdistribusi
✓ ✓ ✓
Hadoop MapReduce
PendahuluanModel
Pemrograman
ModelEksekusi
Model Arsitektural & Penjadwalan
Arsitektur MapReduce
Master Slave
https://www.guru99.com/images/Big_Data/061114_0930_Introductio2.png
Model Arsitektural & Penjadwalan• Hadoop MapReduce menggunaka master-slave architecture
• Suatu strategi pull-based task scheduling digunakan, dimana:• Task Map dijadwalkan dekat dengan blok-blok HDFS
• Task Reduce dijadwalkan dimana saja.
Core Switch
TaskTracker1
Request a Map Task
Schedule a Map Task at an Empty Map Slot on TaskTracker1
Rack Switch 1 Rack Switch 2
TaskTracker2 TaskTracker3 TaskTracker4 TaskTracker5 JobTrackerMT1 MT2 MT3MT2 MT3
Slave Master
Model Arsitektural & Penjadwalan• Hadoop MapReduce menggunakan master-slave architecture
• Dengan setup di atas, berapa banyak task Map dapat berjaan secara paralell?• Setiap TaskTracker secara default mempunyai dua slot Map, jadi dapat menjalankan dua task
Map secara bersamaan (concurent)• Dengan 4 TaskTrackers dan 2 slot Map pada setiap TaskTracker, 8 task Map dapat dieksekusi
secara paralel• Jumlah maksimum task Map yang dapat berjalan secara parallel dikenal sebagai Map wave
Core Switch
TaskTracker1
Request a Map Task
Schedule a Map Task at an Empty Map Slot on TaskTracker1
Rack Switch 1 Rack Switch 2
TaskTracker2 TaskTracker3 TaskTracker4 TaskTracker5 JobTracker
MT1 MT2 MT3MT2 MT3
Slave Master
Model Arsitektural & Penjadwalan• Hadoop MapReduce menggunakan master-slave architecture
• Untuk dataset dengan ukuran 1024MB, berapa banyak Map wave diperlukan?• Ukuran blok HDFS defaultnya adalah 64MB dan setiap split secara default mencakup 1 blook HDFS
• Mengakibatkan ada total 1024/64 = 16 blok HDFS atau 16 split.
• Input ke setiap task Map adalah split tunggal, jadi akan ada total 16 task Map
• Karena itu akan diperlukan 16 task/8 slot = 2 Map wave.
Core Switch
TaskTracker1
Request a Map Task
Schedule a Map Task at an Empty Map Slot on TaskTracker1
Rack Switch 1 Rack Switch 2
TaskTracker2 TaskTracker3 TaskTracker4 TaskTracker5 JobTracker
MT1 MT2 MT3MT2 MT3
Slave Master
Contoh Hitung Kata
Input:Welcome to Hadoop ClassHadoop is goodHadoop is bad
bad 1
Class 1
good 1
Hadoop 3
is 2
to 1
Welcome 1
Contoh Hitung Kata
https://www.guru99.com/images/Big_Data/061114_0930_Introductio1.png
Contoh Hitung Kata
Mencari Teman Bersama di Media Sosial
Mencari Teman Bersama di Media Sosial
Input: Key->Value : Orang->[Daftar Teman]
Annya -> [Brahm, Chieya, Dipa]
Brahm -> [Annya, Chieya, Dipa, Elsa]
Chieya -> [Annya, Brahm, Dipa, Elsa]
Dipa -> [Annya, Brahm, Chieya, Elsa]
Elsa -> [Brahm, Chieya, Dipa]
Input displit jadi 5, sehingga
perlu 5 task Map
Fase Map
map(Annya -> [Brahm, Chieya, Dipa]), hasilnya :• (Annya Brahm) -> [Brahm, Chieya, Dipa]• (Annya Chieya) -> [Brahm, Chieya, Dipa]• (Annya Dipa) -> [Brahm, Chieya, Dipa]
map(Brahm -> [Annya, Chieya, Dipa, Elsa]), hasilnya : (pada bagian key Annya ditulis lebih dahulu daripada Brahm)
• (Annya Brahm) -> [Annya, Chieya, Dipa, Elsa]• (Brahm Chieya) -> [Annya, Chieya, Dipa, Elsa]• (Brahm Dipa) -> [Annya, Chieya, Dipa, Elsa]• (Brahm Elsa) -> [Annya, Chieya, Dipa, Elsa]
Fase Mapmap(Chieya -> [Annya, Brahm, Dipa, Elsa]), hasilnya:• (Annya Chieya) -> [Annya, Brahm, Dipa, Elsa]• (Brahm Chieya) -> [Annya, Brahm, Dipa, Elsa]• (Chieya Dipa) -> [Annya, Brahm, Dipa, Elsa]
• (Chieya Elsa) -> [Annya, Brahm, Dipa, Elsa]
map(Dipa -> [Annya, Brahm, Chieya, Elsa]), hasilnya:• (Annya Dipa) -> [Annya, Brahm, Chieya, Elsa]• (Brahm Dipa) -> [Annya, Brahm, Chieya, Elsa]• (Chieya Dipa) -> [Annya, Brahm, Chieya, Elsa]• (Dipa Elsa) -> [Annya, Brahm, Chieya, Elsa]
map(Elsa -> [Brahm, Chieya, Dipa]), hasilnya:• (Brahm Elsa) -> [Brahm, Chieya, Dipa]• (Chieya Elsa) -> [Brahm, Chieya, Dipa]• (Dipa Elsa) -> [Brahm, Chieya, Dipa]
Fase Shuffle: Gabungkan Key yang sama
(Annya Brahm) -> [Annya, Chieya, Dipa, Elsa] [Brahm, Chieya, Dipa](Annya Chieya) -> [Annya, Brahm, Dipa, Elsa] [Brahm, Chieya, Dipa](Annya Dipa) -> [Annya, Brahm, Chieya, Elsa] [Brahm, Chieya, Dipa]
(Brahm Chieya) -> [Annya, Brahm, Dipa, Elsa] [Annya, Chieya, Dipa, Elsa](Brahm Dipa) -> [Annya, Brahm, Chieya, Elsa] [Annya, Chieya, Dipa, Elsa](Brahm Elsa) -> [Annya, Chieya, Dipa, Elsa] [Brahm, Chieya, Dipa]
(Chieya Dipa) -> [Annya, Brahm, Chieya, Elsa] [Annya, Brahm, Dipa, Elsa](Chieya Elsa) -> [Annya, Brahm, Dipa, Elsa] [Brahm, Chieya, Dipa](Dipa Elsa) -> [Annya, Brahm, Chieya, Elsa] [Brahm, Chieya, Dipa]
Fase Reduce: Ambil Irisannya
(Annya Brahm) -> [Chieya Dipa](Annya Chieya) -> [Brahm Dipa](Annya Dipa) -> [Brahm Chieya](Brahm Chieya) -> [Annya Dipa Elsa](Brahm Dipa) -> [Annya Chieya Elsa](Brahm Elsa) -> [Chieya Dipa](Chieya Dipa) -> [Annya Brahm Elsa](Chieya Elsa) -> [Brahm Dipa](Dipa Elsa) -> [Brahm Chieya]
Siapa saja teman dari Annya yang
juga berteman dengan Chieya?
Hadoop MapReduce: Rangkuman
Aspek Hadoop MapReduce
Programming Model Shared-Based
Execution Model Synchronous
Architectural Model Master-Slave
Scheduling Model Pull-Based
Suitable Applications Loosely-Connected/Embarrassingly-Parallel Applications
Hadoop MapReduce: Rangkuman
Aspek Hadoop MapReduce
Model Pemrograman Shared-Based
Model Eksekusi Synchronous
Model Arsitektural Master-Slave
Model Penjadwalan Pull-Based
Aplikasi yang Cocok Aplikasi Loosely-Connected/Embarrassingly-Parallel
Pertemuan Berikutnya
▪ Pregel dari Google