Minggu 5
Outcome:
Mahasiswa mampu menjelaskan layer arsitektur dan konsep pengolahan Big Data.
Ciri-ciri HDFS:
• Penyimpanan yang Dapat Diskalakan untuk File Besar: HDFS telah dirancang
untuk menyimpan file besar (biasanya dari ukuran gigabyte hingga terabyte). File
besar dipecah menjadi potongan atau blok dan setiap blok direplikasi di beberapa
mesin di cluster. HDFS telah dirancang untuk menskalakan ke cluster yang terdiri
dari ribuan node.
• Replikasi: HDFS mereplikasi blok data ke beberapa mesin dalam sebuah cluster
yang membuat sistem dapat diandalkan dan toleran terhadap kesalahan. Ukuran
blok default yang digunakan adalah 64MB dan faktor replikasi default adalah 3.
• Akses Data Streaming: HDFS telah dirancang untuk pola akses data streaming
dan menyediakan pembacaan dan penulisan streaming dengan throughput tinggi.
Desain HDFS melonggarkan beberapa persyaratan POSIX untuk mengaktifkan akses
data streaming dan membuatnya cocok untuk operasi batch sehingga
memperdagangkan kemampuan akses interaktif. Pilihan desain ini dibuat untuk
memenuhi persyaratan aplikasi yang melibatkan pola akses data sekali baca, baca
berkali-kali. HDFS tidak cocok untuk aplikasi yang memerlukan akses data dengan
latensi rendah. Sebaliknya, HDFS menyediakan akses data throughput yang tinggi.
• Menambahkan File: HDFS pada awalnya dirancang untuk memiliki file yang tidak
dapat diubah. File yang pernah ditulis ke HDFS tidak dapat dimodifikasi dengan
menulis di lokasi sembarang dalam file atau menambahkan ke file. Versi terbaru dari
HDFS telah memperkenalkan kemampuan append.
a. Arsitektur HDFS
e. Fitur HDFS
• Cost-Effective
HDFS adalah platform penyimpanan sumber terbuka; karenanya, tersedia gratis
untuk organisasi yang memilih untuk mengadopsinya sebagai alat
penyimpanannya. HDFS tidak memerlukan perangkat keras kelas atas untuk
penyimpanan. Ini menggunakan perangkat keras komoditas untuk penyimpanan,
yang membuatnya hemat biaya. Jika HDFS menggunakan perangkat keras versi
high-end khusus, penanganan dan penyimpanan data besar akan mahal.
• Distributed Storage
HDFS membagi file input menjadi blok, masing-masing berukuran 64MB secara
default, dan kemudian menyimpannya dalam HDFS. Sebuah file berukuran 200
MB akan dibagi menjadi tiga blok 64 MB dan satu blok 8 MB. Tiga file 64 MB
menempati tiga blok sepenuhnya, dan file 8 MB tidak menempati satu blok
penuh. Blok ini dapat dibagi untuk menyimpan file lain untuk membuat 64 MB
dimanfaatkan sepenuhnya.
• Data Replication
HDFS secara default membuat tiga salinan dari semua blok data dan
menyimpannya di node yang berbeda dalam cluster. Jika ada node yang crash,
node yang membawa salinan data yang hilang akan diidentifikasi dan data
diambil.
2. NoSQL
Database Non-relational ("NoSQL databases") menjadi populer dengan meningkatnya
penggunaan layanan komputasi awan. Basis data non-relasional memiliki kemampuan
penskalaan horizontal yang lebih baik dan kinerja yang lebih baik untuk data besar
dengan mengorbankan model konsistensi yang kurang ketat.
Basis data NoSQL populer untuk aplikasi di mana skala data yang terlibat sangat besar
dan datanya mungkin tidak terstruktur. Selanjutnya, kinerja waktu nyata lebih penting
3. NoSQL (MongoDB)
MongoDB adalah sistem database non-relasional berorientasi dokumen. MongoDB adalah
database yang kuat, fleksibel, dan sangat skalabel yang dirancang untuk aplikasi web
dan merupakan pilihan yang baik untuk melayani database untuk aplikasi analisis data.
Unit dasar data yang disimpan oleh MongoDB adalah dokumen. Dokumen menyertakan
kumpulan pasangan nilai kunci seperti JSON.
menggunakan perintah shell MongoDB untuk menulis data ke database MongoDB dan
menanyakan data. Data yang digunakan dalam contoh ini adalah data produk untuk
aplikasi eCommerce. Data untuk setiap produk disimpan sebagai satu dokumen.
4. NoSQL (HBase)
HBase adalah column family database yang skalabel, non-relasional, terdistribusi, yang
menyediakan penyimpanan data terstruktur untuk tabel besar. HBase dapat menyimpan
data terstruktur dan tidak terstruktur. Penyimpanan data di HBase dapat diskalakan
secara linier dan otomatis dengan penambahan node baru. HBase telah dirancang untuk
bekerja dengan perangkat keras komoditas dan merupakan sistem yang sangat andal
dan toleran terhadap kesalahan. HBase memungkinkan pembacaan dan penulisan acak
yang cepat.
Sebuah tabel dalam Hbase terdiri dari baris, yang diindeks oleh kunci baris. Setiap baris
mencakup beberapa keluarga kolom. Setiap keluarga kolom mencakup beberapa kolom.
Setiap kolom mencakup beberapa sel atau entri yang diberi stempel waktu. Tabel HBase
diindeks oleh kunci baris, kunci kolom, dan stempel waktu. Tidak seperti tabel database
relasional, tabel HBase tidak memiliki skema tetap. Keluarga kolom HBase dideklarasikan
pada saat pembuatan tabel dan tidak dapat diubah nanti. Kolom dapat ditambahkan
secara dinamis, dan HBase dapat memiliki jutaan kolom.
a. Fitur Hbase
HBase sering dideskripsikan sebagai peta terurut yang Sparse, terdistribusi,
persisten, multidimensi. Mari kita lihat fitur-fitur ini secara rinci:
• Sparse: Dalam database relasional tradisional, tabel memiliki skema tetap.
Setiap baris dalam tabel memiliki jumlah kolom yang sama. Setiap baris
memiliki semua kolom meskipun semuanya tidak terisi. HBase, sebaliknya,
memiliki tabel yang Sparse karena setiap baris tidak perlu memiliki semua
kolom. Hanya kolom yang diisi dalam satu baris yang disimpan.
• Terdistribusi: HBase adalah database terdistribusi. Tabel HBase dipartisi
berdasarkan kunci baris ke dalam wilayah. Setiap wilayah berisi berbagai kunci
b. Arsitektur Hbase
Struktur penyimpanan yang digunakan oleh HBase adalah Log Structured Merge
(LSM) Tree. LSM Tree menggunakan dua pohon, yang satu merupakan pohon
dalam memori yang lebih kecil (di Memstore) dan yang lainnya adalah pohon yang
lebih besar yang disimpan pada disk (sebagai file penyimpanan). Ketika ukuran
pohon dalam memori melebihi batas tertentu, pohon tersebut digabungkan dengan
pohon yang lebih besar pada disk menggunakan algoritma pengurutan gabungan
dan pohon dalam memori baru dibuat. LSM Tree memungkinkan HBase untuk
menangani pembacaan dan penulisan acak yang cepat untuk sejumlah besar data.
LSM Tree mencapai ini dengan mengubah akses data acak menjadi akses data
sekuensial.
d. Read Path
Untuk operasi baca (get atau scan) klien terlebih dahulu menghubungi Zookeeper
untuk mendapatkan lokasi tabel ROOT. Klien kemudian memeriksa tabel ROOT
untuk tabel META yang benar yang berisi kunci baris dan memperoleh nama Server
Wilayah yang bertanggung jawab untuk melayani permintaan untuk kunci baris
tersebut. Klien kemudian menghubungi Server Wilayah secara langsung untuk
menyelesaikan operasi baca. Pencarian tabel ROOT dan META di-cache oleh klien
sehingga dalam operasi baca berikutnya klien dapat langsung menghubungi Server
Wilayah yang benar untuk kunci baris yang diberikan.
e. Write Path
Semua permintaan tulis pertama kali masuk ke WAL (HLog) secara berurutan.
Setelah data dicatat, itu juga ditulis ke Memstore. Memstore menyimpan pembaruan
f. Compactions (Pemadatan)
Setiap kali Memstore di-flush ke disk, file store baru dibuat. Seiring waktu, banyak
file store kecil dibuat di HDFS. Karena HDFS dirancang untuk bekerja lebih baik
dengan sejumlah kecil file besar (sebagai lawan dari sejumlah besar file kecil),
proses yang disebut pemadatan dilakukan untuk menggabungkan file kecil menjadi
satu file. Proses pemadatan meningkatkan efisiensi baca karena sejumlah besar file
kecil tidak perlu dicari. Pemadatan HBase terdiri dari dua jenis - minor dan mayor.
Pemadatan kecil menggabungkan file-file kecil menjadi satu file ketika jumlahnya
melebihi ambang batas. Pemadatan kecil dilakukan secara teratur (biasanya
beberapa kali dalam sehari). Pemadatan besar menggabungkan semua file
penyimpanan menjadi satu file penyimpanan besar. Dalam proses pemadatan
utama, nilai-nilai usang dan dihapus (sel yang memiliki versi kedaluwarsa atau sel
yang ditandai dengan Tombstones) dihapus. Proses pemadatan meningkatkan
kinerja HBase karena mencari satu file penyimpanan besar untuk operasi
pengambilan atau pemindaian lebih efisien daripada mencari beberapa file
penyimpanan kecil.
g. Bloom Filters
HBase menggunakan Filter Bloom untuk mengecualikan file store yang perlu dicari
saat melayani permintaan baca untuk kunci baris tertentu. Filter Bloom adalah
struktur data probabilistik yang digunakan untuk menguji apakah suatu elemen
merupakan anggota dari suatu himpunan. Filter Bloom dapat memberikan jawaban
yang pasti jika elemen tersebut ada di dalam himpunan, namun dapat juga
dikatakan bahwa suatu elemen ada di dalam himpunan sedangkan tidak. Dengan
kata lain, positif palsu dimungkinkan, tetapi negatif palsu tidak mungkin. Jumlah
positif palsu dapat disetel hingga kurang dari 1%.
Untuk membuat tabel, digunakan perintah create seperti gambar di bawah ini. Nama
tabel dan keluarga kolom ditentukan saat membuat tabel.
Untuk menulis data ke HBase, perintah put dapat digunakan. Kotak di bawah ini
menunjukkan contoh penulisan ke tabel produk. Untuk baris dengan kunci baris
baris-1 dan baris-2 data ditulis ke kolom rincian keluarga dan kolom (nama).
Kolom dapat ditambahkan secara dinamis. Kotak di bawah ini menunjukkan contoh
penambahan kolom baru ke baris yang dibuat sebelumnya.
Untuk membaca data, HBase menyediakan operasi get dan scan. Kotak di bawah ini
menunjukkan contoh pembacaan baris dengan kunci baris baris-1.
Hasil dari operasi get menunjukkan dua sel pada baris-1. Nilai diberi stempel waktu,
dan beberapa versi dapat disimpan untuk sel. Kotak di bawah ini menunjukkan
contoh operasi pemindaian yang mengembalikan semua baris dalam tabel.
Pic 5.10 HBase web interface showing details of HBase Master and list of tables
Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016
Mari kita lihat contoh penggunaan database Graph untuk aplikasi eCommerce.
Gambar 4.11 menunjukkan model grafik properti berlabel untuk aplikasi
eCommerce. Dalam grafik ini, kami memiliki dua jenis node: Pelanggan dan Produk.
Node Pelanggan memiliki atribut seperti nama pelanggan, alamat, kota, negara, dan
Untuk operasi create, read, update and delete (CRUD), Neo4j menyediakan bahasa
query yang disebut Cypher. Cypher memiliki beberapa kesamaan dengan bahasa
query SQL yang digunakan untuk database relasional