Anda di halaman 1dari 25

LECTURE NOTES

Big Data Technologies

Minggu 5

Hadoop Storage Layer

COMP6725 - Big Data Technologies


LEARNING OUTCOMES

LO 1: Menjelaskan layer arsitektur dan konsep pengolahan Big Data

Outcome:

Mahasiswa mampu menjelaskan layer arsitektur dan konsep pengolahan Big Data.

OUTLINE MATERI (Sub-Topic):

• Hadoop Distributed File System (HDFS)


• NoSQL
• NoSQL (MongoDB)
• NoSQL (HBase)
• NoSQL (GraphDB)

COMP6725 - Big Data Technologies


ISI MATERI

1. Hadoop Distributed File System (HDFS)


HDFS adalah distributed file system (DFS) yang berjalan pada cluster besar dan
menyediakan akses throughput tinggi ke data. HDFS adalah sistem yang sangat toleran
terhadap kesalahan dan dirancang untuk bekerja dengan perangkat keras komoditas.
HDFS menyimpan setiap file sebagai urutan blok. Blok setiap file direplikasi pada
beberapa mesin dalam sebuah cluster untuk memberikan toleransi kesalahan.

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

Pic 5.1 HDFS architecture


Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

COMP6725 - Big Data Technologies


HDFS memiliki dua jenis node: Namenode dan Datanode.
• Namenode
Namenode mengelola namespace sistem file. Semua meta-data sistem file
disimpan di Namenode. Sementara Namenode bertanggung jawab untuk
menjalankan operasi seperti membuka dan menutup file, tidak ada data yang
benar-benar mengalir melalui Namenode. Namenode mengeksekusi operasi baca
dan tulis saat data ditransfer langsung ke/dari Datanodes. HDFS membagi file
menjadi blok, dan blok disimpan di Datanodes. Untuk setiap blok, beberapa
replika disimpan. Namenode secara terus-menerus menyimpan meta-data sistem
file dan pemetaan blok ke datanodes, pada disk sebagai dua file: fsimage dan
mengedit file. Fsimage berisi snapshot lengkap dari meta-data sistem file. File
suntingan menyimpan pembaruan tambahan ke meta-data.
Ketika Namenode dimulai, ia memuat file fsimage ke dalam memori dan
menerapkan file suntingan untuk memperbarui tampilan sistem file di dalam
memori. Namenode kemudian menulis file fsimage baru ke disk. fsimage berisi
snapshot lengkap dari meta-data sistem file. File suntingan menyimpan
pembaruan tambahan ke meta-data.
Ketika Namenode dimulai, ia memuat file fsimage ke dalam memori dan
menerapkan file suntingan untuk memperbarui tampilan sistem file di dalam
memori. Namenode kemudian menulis file fsimage baru ke disk.
• Secondary Namenode
Ukuran file suntingan terus bertambah, seiring waktu, karena pembaruan
tambahan disimpan. Tanggung jawab menerapkan pembaruan ke file fsimage
didelegasikan ke Namenode Sekunder, karena Namenode mungkin tidak memiliki
cukup sumber daya yang tersedia, karena melakukan operasi lain. Proses ini
disebut pos pemeriksaan. Proses checkpointing dilakukan baik secara berkala
(default 1 jam) atau setelah sejumlah transaksi uncheckpointed tercapai pada
Namenode.
Ketika proses checkpointing dimulai, Sekunder Namenode mendownload fsimage
dan mengedit file dari Namenode ke direktori checkpoint di Sekunder Namenode.
Namenode Sekunder kemudian menerapkan pengeditan pada file fsimage dan
membuat file fsimage baru. Fsimage baru diunggah oleh Namenode Sekunder ke
Namenode.
• Datanode
Sementara Namenode menyimpan meta-data sistem file, Datanodes menyimpan
blok data dan melayani permintaan baca dan tulis. Datanodes secara berkala
mengirim pesan detak jantung dan memblokir laporan ke Namenode. Sementara
pesan detak jantung memberi tahu Namenode bahwa Datanode masih hidup,
laporan blok berisi informasi tentang blok pada Datanode.
• Data Blocks & Replication
Blok direplikasi pada Datanodes dan secara default tiga replika dibuat.
Penempatan replika pada Datanodes ditentukan oleh kebijakan penempatan
sadar rak. Kebijakan penempatan ini memastikan keandalan dan ketersediaan
blok. Untuk faktor replikasi tiga, satu replika ditempatkan pada simpul pada rak
lokal, replika kedua ditempatkan pada simpul berbeda pada rak jarak jauh dan
replika ketiga ditempatkan pada simpul berbeda pada rak jarak jauh yang sama.

COMP6725 - Big Data Technologies


Ini memastikan bahwa meskipun rak menjadi tidak tersedia, setidaknya satu
replika akan tetap tersedia. Penempatan replika pada node yang berbeda di rak
yang sama meminimalkan lalu lintas jaringan antar rak.

b. HDFS Read Path

Pic 5.2 HDFS read path


Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

Proses membaca dimulai dengan klien mengirimkan permintaan ke Namenode untuk


mendapatkan lokasi blok data untuk sebuah file. Namenode memeriksa apakah file
ada dan apakah klien memiliki izin yang cukup untuk membaca file. Namenode
merespon dengan lokasi blok data yang diurutkan berdasarkan jarak ke klien. Ini
membantu dalam meminimalkan lalu lintas antar node karena klien dapat membaca
blok dari node terdekat. Misalnya, jika klien berada di node yang sama dengan blok
data, ia dapat membaca blok data secara lokal. Klien membaca blok data langsung
dari Datanodes secara berurutan, hingga semua blok telah dibaca. Datanodes
mengalirkan data ke klien. Selama proses membaca, jika replika menjadi tidak
tersedia, klien dapat membaca replika lain di Datanode yang berbeda.

c. HDFS Write Path

Pic 5.3 HDFS Write Path


Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

Proses penulisan dimulai dengan klien mengirimkan permintaan ke Namenode untuk


membuat file baru di namespace filesystem. Namenode memeriksa apakah
pengguna memiliki izin yang memadai untuk membuat file dan apakah file tersebut
belum ada di sistem file. Namenode merespons klien dengan objek aliran keluaran.

COMP6725 - Big Data Technologies


Klien menulis data ke objek aliran keluaran yang membagi data menjadi paket-paket
dan memasukkannya ke dalam antrian data. Paket dikonsumsi dari antrian data di
utas terpisah, yang meminta Namenode untuk mengalokasikan blok baru pada
Datanodes tempat data harus ditulis. Namenode merespon dengan lokasi blok pada
Datanodes. Klien kemudian membuat koneksi langsung ke Datanodes di mana blok
akan direplikasi membentuk pipa replikasi. Paket data yang digunakan dari antrian
data ditulis ke Datanode pertama pada pipeline replikasi, yang menulis data ke
Datanode kedua dalam pipeline, dan seterusnya. Setelah paket-paket berhasil
ditulis, setiap Datanode dalam pipeline mengirimkan sebuah acknowledgment. Klien
melacak semua paket yang diakui oleh Datanodes. Proses penulisan paket data ke
Datanodes berlangsung hingga ukuran blok tercapai. Setelah mencapai ukuran blok,
klien kembali meminta Namenode untuk mengembalikan satu set blok baru pada
Datanodes. Klien kemudian mengalirkan paket ke Datanodes. Proses ini berulang
sampai semua paket data ditulis dan diakui. Akhirnya, klien menutup aliran output
dan mengirimkan permintaan ke Namenode untuk menutup file.

d. HDFS Usage Examples


HDFS Command Line

COMP6725 - Big Data Technologies


Pic 5.4 Browsing files on HDFS using web interface
Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

COMP6725 - Big Data Technologies


Pic 5.5 Download a file from HDFS using web interface
Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

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

COMP6725 - Big Data Technologies


daripada konsistensi. Sistem ini dioptimalkan untuk pengambilan cepat dan operasi
penambahan pada catatan. Tidak seperti database relasional, database NoSQL tidak
memiliki skema yang ketat. Record bisa dalam bentuk key-value pair atau dokumen.
Basis data NoSQL diklasifikasikan tergantung pada model penyimpanan data atau jenis
catatan yang dapat disimpan, yaitu:
• Key-value Database
Key-value databases adalah bentuk database NoSQL yang paling sederhana. Basis
data ini menyimpan data dalam bentuk pasangan nilai kunci. Kunci digunakan untuk
mengidentifikasi secara unik nilai yang disimpan dalam database. Aplikasi yang ingin
menyimpan data menghasilkan kunci unik dan mengirimkan pasangan nilai kunci ke
database. Basis data menggunakan kunci untuk menentukan di mana nilai harus
disimpan. Sebagian besar key-value databases memiliki arsitektur terdistribusi yang
terdiri dari beberapa node penyimpanan. Data dipartisi di seluruh node penyimpanan
dengan kunci. Untuk menentukan partisi untuk kunci, fungsi hash digunakan. Nomor
partisi untuk kunci diperoleh dengan menerapkan fungsi hash ke kunci. Fungsi hash
dipilih sedemikian rupa sehingga kunci didistribusikan secara merata di seluruh
partisi.
Key-value databases memberikan banyak fleksibilitas dalam hal jenis nilai yang
dapat disimpan. Nilai dapat berupa virtual jenis apa pun (seperti string, integer,
float, objek besar biner (BLOB), dll.). Sebagian besar penyimpanan nilai kunci
memiliki dukungan untuk tipe data bahasa pemrograman asli. Ada batasan ukuran
nilai yang dapat disimpan.
Tidak seperti database relasional di mana tabel memiliki skema tetap dan ada
kendala pada kolom, dalam key-value databases, tidak ada kendala seperti itu. Key-
value databases tidak memiliki tabel seperti dalam basis data relasional. Namun,
beberapa key-value databases mendukung tabel, keranjang, atau koleksi untuk
membuat ruang nama terpisah untuk kunci. Kunci dalam tabel, ember, atau koleksi
bersifat unik.
Key-value databases cocok untuk aplikasi yang memerlukan penyimpanan data tidak
terstruktur tanpa skema tetap. Basis data ini dapat ditingkatkan secara horizontal
dan dapat menyimpan pasangan nilai kunci dalam jumlah yang sangat besar. Tidak
seperti database relasional yang menyediakan bahasa kueri khusus (seperti SQL),
key-value databases hanya menyediakan kemampuan kueri dan pencarian dasar.
Key-value databases cocok untuk aplikasi di mana kemampuan untuk menyimpan
dan mengambil data dengan cara yang cepat dan efisien lebih penting daripada
memaksakan struktur atau batasan pada data. Misalnya, key-value databases dapat
digunakan untuk menyimpan data konfigurasi, data pengguna, data sementara atau
perantara (seperti data keranjang belanja), atribut item, dan Gumpalan (seperti
audio dan gambar).
• Document Database
Database penyimpanan dokumen menyimpan data semi terstruktur dalam bentuk
dokumen yang dikodekan dalam standar yang berbeda seperti JSON, XML, BSON,
atau YAML. Dengan data semi-terstruktur, yang kami maksud adalah bahwa
dokumen yang disimpan serupa satu sama lain (bidang, kunci, atau atribut serupa)
tetapi tidak ada persyaratan ketat untuk skema. Dokumen diatur dengan cara yang

COMP6725 - Big Data Technologies


berbeda dalam database dokumen yang berbeda seperti dalam bentuk koleksi,
ember, atau tag.
Setiap dokumen yang disimpan dalam database dokumen memiliki kumpulan bidang
bernama dan nilainya. Setiap dokumen diidentifikasi dengan kunci atau ID unik.
Tidak perlu mendefinisikan skema apa pun untuk dokumen sebelum menyimpannya
di database. Meskipun dimungkinkan untuk menyimpan dokumen seperti JSON atau
XML sebagai nilai dalam basis data nilai kunci, manfaat menggunakan basis data
dokumen di atas basis data nilai kunci adalah bahwa basis data ini memungkinkan
kueri dokumen secara efisien berdasarkan nilai atribut dalam dokumen. Database
dokumen berguna untuk aplikasi yang ingin menyimpan data semi terstruktur
dengan jumlah bidang yang bervariasi.
Sementara dalam database relasional, data disimpan dalam bentuk yang
dinormalisasi untuk menghilangkan duplikat, dalam database dokumen, data
disimpan dalam bentuk yang didenormalisasi. Database dokumen tidak menyediakan
fungsionalitas gabungan yang disediakan oleh database relasional. Oleh karena itu,
semua data yang perlu diambil bersama-sama disimpan dalam sebuah dokumen.
Misalnya, dalam aplikasi eCommerce, semua data yang terkait dengan produk
tertentu biasanya diambil bersama. Dalam hal ini, dokumen dapat dibuat untuk
setiap produk. Setiap dokumen terdiri dari data tentang fitur dan atribut produk.
• Column Store Database
Database berorientasi kolom menyimpan data sebagai kolom menyimpannya
sebagai baris. Untuk pemahaman yang lebih baik, di sini database kolom
dibandingkan dengan database berorientasi baris dan menjelaskan bagaimana
perbedaan dalam tata letak fisik dari data yang sama meningkatkan kinerja.
• Graph Database
Database berorientasi grafik menyimpan entitas yang juga dikenal sebagai node dan
hubungan di antara mereka. Setiap node memiliki properti, dan hubungan antar
node dikenal sebagai edge. Hubungan memiliki sifat dan signifikansi terarah.
Properti hubungan digunakan untuk mengkueri basis data grafik.

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.

COMP6725 - Big Data Technologies


Dokumen dikelompokkan bersama untuk membentuk koleksi. Koleksi tidak memiliki
skema tetap dan dokumen yang berbeda dalam koleksi dapat memiliki kumpulan
pasangan nilai kunci yang berbeda. Koleksi diatur ke dalam database, dan mungkin ada
beberapa database yang berjalan pada satu instans MongoDB.

Pic 5.6 Using document database for storing product records


Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

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.

COMP6725 - Big Data Technologies


program Python untuk menulis data ke MongoDB dan membaca data. Untuk contoh ini,
kami menggunakan pustaka python pyMongo.

COMP6725 - Big Data Technologies


COMP6725 - Big Data Technologies
• Column Family Database
Dalam column family database, unit dasar penyimpanan data adalah kolom, yang
memiliki nama dan nilai. Kumpulan kolom membentuk baris yang diidentifikasi oleh
kunci baris. Kolom dikelompokkan bersama ke dalam keluarga kolom. Tidak seperti,
database relasional, column family database tidak perlu memiliki skema tetap dan
jumlah kolom tetap di setiap baris. Jumlah kolom dalam column family database
dapat bervariasi di berbagai baris. Keluarga kolom dapat dianggap sebagai peta
yang memiliki pasangan nilai kunci dan peta ini dapat bervariasi di berbagai baris.
Column family database menyimpan data dalam bentuk denormalisasi sehingga
semua informasi relevan yang terkait dengan entitas yang diperlukan oleh aplikasi
dapat diambil dengan membaca satu baris. Basis data keluarga kolom mendukung
pembacaan dan penulisan throughput tinggi dan memiliki arsitektur terdistribusi dan
sangat tersedia.

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.

COMP6725 - Big Data Technologies


Pic 5.7 HBase table structure
Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

Pic 5.8 HBase key-value format


Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

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

COMP6725 - Big Data Technologies


baris. Penyebaran HBase tipikal berisi beberapa Server Wilayah. Setiap Server
Wilayah berisi beberapa wilayah dari tabel yang berbeda.
• Persistent: HBase bekerja di atas HDFS dan semua data yang disimpan dalam
tabel HBase disimpan di HDFS.
• Multi-dimensi: HBase menyimpan data sebagai pasangan nilai kunci di mana
kuncinya multi-dimensi. Sebuah kunci meliputi: (Tabel, RowKey, ColumnFamily,
Column, TimeStamp) seperti yang ditunjukkan pada Gambar 4.8. Untuk setiap
entri/sel, beberapa versi disimpan, yang diberi stempel waktu.
• Sorted Map: Baris HBase diurutkan berdasarkan kunci baris dalam urutan
leksikografis. Column family database kolom diurutkan berdasarkan kunci
kolom.

b. Arsitektur Hbase

Pic 5.9 HBase Architecture


Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

HBase memiliki arsitektur terdistribusi. Penyebaran HBase terdiri dari beberapa


server wilayah yang biasanya berjalan pada mesin yang sama dengan node data
Hadoop. Tabel HBase dipartisi oleh kunci baris menjadi beberapa wilayah
(HRegions). Setiap server wilayah memiliki beberapa wilayah. HBase memiliki
arsitektur master-slave dengan salah satu node bertindak sebagai master node
(HMaster) dan node lainnya adalah node slave. HMaster bertanggung jawab untuk
memelihara meta-data HBase dan menetapkan wilayah ke server wilayah.
HBase menggunakan Zookeeper untuk koordinasi status terdistribusi. HBase
memiliki dua tabel khusus - ROOT dan META, untuk mengidentifikasi server wilayah
mana yang bertanggung jawab untuk melayani permintaan baca/tulis untuk kunci
baris tertentu.

c. Penyimpanan & Operasi Data


Setiap Server Wilayah menyimpan dua jenis file - store file (HFile) and a write-
ahead log (HLog).

COMP6725 - Big Data Technologies


HFile berisi sejumlah variabel blok data dan blok tetap untuk informasi file dan
trailer. Setiap blok data berisi angka ajaib dan beberapa pasangan nilai kunci.
Ukuran default dari blok data adalah 64 KB. Blok indeks menyimpan offset untuk
data dan meta-blok. Trailer menyimpan pointer ke blok lain. HFiles bertahan pada
HDFS.
Setiap Server Wilayah memiliki Memstore dan Block Cache. Memstore menyimpan
suntingan terbaru pada data dalam memori dan Block Cache menyimpan blok data
tersebut.
Setiap Server Wilayah juga memelihara write-ahead log (WAL) yang dikenal sebagai
Hlog yang mencatat penulisan (yang juga ditulis ke Memstore). Karena HLog
disimpan di HDFS, ini memastikan bahwa bahkan jika terjadi kehilangan Memstore
(yang merupakan buffer dalam memori), penulisan tidak akan pernah hilang.
Setiap Server Wilayah memiliki cache Blok, yang merupakan penyimpanan dalam
memori yang menyimpan blok yang terakhir digunakan untuk pencarian cepat.
HBase mendukung operasi berikut:
• Get: Operasi Get digunakan untuk mengembalikan nilai untuk kunci baris yang
diberikan.
• Scan: Operasi pindai mengembalikan nilai untuk rentang tombol baris.
• Put: Operasi Put digunakan untuk menambah entri baru.
• Delete: Operasi penghapusan menambahkan penanda khusus yang disebut
Tombstone ke entri. Entri ditandai dengan Tombstones dihilangkan selama
proses pemadatan.

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

COMP6725 - Big Data Technologies


terbaru untuk mengaktifkan pencarian cepat. Seiring waktu, Memstore mulai terisi
saat pembaruan baru disimpan. Ketika Memstore terisi, mem-flush ke disk membuat
file store baru (HFile).

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%.

h. Contoh Penggunaan HBase


HBase hadir dengan shell interaktif dari mana pengguna dapat melakukan berbagai
operasi HBase. Shell HBase dapat diluncurkan sebagai berikut:

Untuk membuat tabel, digunakan perintah create seperti gambar di bawah ini. Nama
tabel dan keluarga kolom ditentukan saat membuat tabel.

COMP6725 - Big Data Technologies


Dalam contoh ini, kami membuat tabel bernama produk yang memiliki dua column
families bernama detail dan penjualan. Perintah list dapat digunakan untuk
membuat daftar semua tabel di HBase, seperti yang ditunjukkan di bawah ini:

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.

i. HBase - Contoh Python


Mari kita lihat beberapa contoh operasi HBase menggunakan Python. Kami akan
menggunakan happybase library Python untuk contoh-contoh ini.

COMP6725 - Big Data Technologies


Web Interface HBase

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

COMP6725 - Big Data Technologies


5. NoSQL (GraphDB)
Penyimpanan grafik adalah database NoSQL yang dirancang untuk menyimpan data yang
memiliki struktur grafik dengan simpul dan tepi. Sedangkan database relasional
memodelkan data dalam bentuk baris dan kolom, database graf memodelkan data dalam
bentuk node dan relasi. Node mewakili entitas dalam model data. Node memiliki satu set
atribut. Node dapat mewakili berbagai jenis entitas, misalnya, orang, tempat (seperti
kota, restoran, atau bangunan) atau objek (seperti mobil). Relasi antar entitas
direpresentasikan dalam bentuk link antar node. Tautan juga memiliki seperangkat
atribut. Tautan dapat diarahkan atau tidak diarahkan. Tautan terarah menunjukkan
bahwa hubungan itu searah.
Basis data grafik berguna untuk berbagai aplikasi, di mana Anda mungkin perlu
memodelkan entitas dan hubungan di antara mereka, seperti media sosial, keuangan,
jaringan, atau berbagai jenis aplikasi perusahaan. Dalam database relasional, hubungan
antar entitas dimodelkan dalam bentuk tabel yang berbeda dengan kunci utama dan
kunci asing.
Komputasi hubungan dan query entitas terkait dalam database relasional memerlukan
operasi gabungan yang kompleks antara tabel database. Basis data grafik, berbeda
dengan basis data relasional, memodelkan hubungan dalam bentuk tautan antar node.
Karena hubungan antara entitas secara eksplisit disimpan dalam bentuk tautan, kueri
untuk entitas terkait dalam basis data grafik jauh lebih sederhana dan lebih cepat
daripada basis data relasional karena operasi gabungan yang kompleks dihindari. Basis
data grafik cocok untuk aplikasi di mana fokus utama adalah pada kueri hubungan antara
entitas dan menganalisis hubungan.
a. Neo4j
Neo4j adalah salah satu database grafik populer yang menyediakan dukungan untuk
Atomicity, Consistency, Isolation, Durability (ACID). Neo4j mengadopsi model grafik
yang terdiri dari node dan hubungan. Baik node maupun relasi memiliki properti
yang ditangkap dalam bentuk beberapa atribut (pasangan nilai kunci). Node ditandai
dengan label yang digunakan untuk mewakili peran yang berbeda dalam domain
yang dimodelkan.

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

COMP6725 - Big Data Technologies


kode pos. Node Produk memiliki atribut seperti judul produk, harga, dan berbagai
properti khusus produk lainnya (seperti warna, ukuran, berat, dll.). Ada dua jenis
hubungan antara pelanggan dan simpul produk: Pesanan atau Tarif. Hubungan
pesanan antara pelanggan dan produk memiliki sifat seperti tanggal dan jumlah
pesanan. Hubungan Tarif antara pelanggan dan produk memiliki satu properti untuk
menangkap peringkat pelanggan.

Pic 5.11 Labeled property graph example


Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

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

COMP6725 - Big Data Technologies


b. Table Perbandingan database NoSQL

Pic 5.12 Comparison of NoSQL databases


Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

COMP6725 - Big Data Technologies


SIMPULAN
o HDFS adalah sistem file terdistribusi yang berjalan pada cluster besar dan
menyediakan akses throughput tinggi ke data. HDFS menyediakan penyimpanan
yang dapat diskalakan untuk file besar yang dipecah menjadi beberapa blok. Blok
direplikasi untuk membuat sistem dapat diandalkan dan toleran terhadap kesalahan.
Namenode HDFS menyimpan meta-data sistem file dan bertanggung jawab untuk
menjalankan operasi seperti membuka dan menutup file. Sekunder Namenode
membantu dalam proses pemeriksaan dengan menerapkan pembaruan dalam file
suntingan ke file fsimage yang berisi snapshot lengkap dari meta-data sistem file.
Datanodes menyimpan blok data yang direplikasi. Penempatan replika pada
Datanodes ditentukan oleh kebijakan penempatan sadar rak. Kami menjelaskan
contoh mengakses HDFS menggunakan alat baris perintah, pustaka Python untuk
HDFS, dan antarmuka web HDFS.
o Basis data non-relasional atau basis data NoSQL populer untuk aplikasi di mana
skala data yang terlibat sangat besar dan datanya mungkin tidak terstruktur.
Selanjutnya, kinerja real-time dianggap lebih penting daripada konsistensi. Dalam
bab ini kami menjelaskan empat jenis database NoSQL.
o Empat jenis database NoSQL. Basis data nilai kunci menyimpan data dalam bentuk
pasangan nilai kunci di mana kunci digunakan untuk mengidentifikasi secara unik
nilai yang disimpan. Fungsi hash diterapkan pada kunci untuk menentukan di mana
nilai harus disimpan. Database penyimpanan dokumen menyimpan data semi
terstruktur dalam bentuk dokumen yang dikodekan dalam standar yang berbeda
seperti JSON, XML, BSON atau YAML. Manfaat menggunakan database dokumen di
atas database nilai kunci adalah bahwa database ini memungkinkan kueri dokumen
secara efisien berdasarkan nilai atribut dalam dokumen. Database keluarga kolom
menyimpan data sebagai kolom di mana kolom memiliki nama dan nilai. Kolom
dikelompokkan ke dalam keluarga kolom dan kumpulan kolom membentuk baris
yang diidentifikasi oleh kunci baris. Basis data keluarga kolom mendukung
pembacaan dan penulisan throughput tinggi dan memiliki arsitektur terdistribusi dan
sangat tersedia. Graph database memodelkan data dalam bentuk node dan relasi.
Node mewakili entitas dalam model data dan memiliki satu set atribut. Relasi antar
entitas direpresentasikan dalam bentuk link antar node.

COMP6725 - Big Data Technologies


DAFTAR PUSTAKA
• Arshdeep Bahga & Vijay Madisetti. (2016). Big Data Science & Analytics: A Hands-
On Approach. 1st E. VPT. India. ISBN: 9781949978001. Chapter 4 and 6.
• Balusamy. Balamurugan, Abirami.Nandhini, Kadry.R, Seifedine, & Gandomi. Amir H.
(2021). Big Data Concepts, Technology, and Architecture. 1st. Wiley. ISBN 978-1-
119-70182-8. Chapter 3 and 5
• https://www.youtube.com/watch?v=GJYEsEEfjvk
• https://www.youtube.com/watch?v=0buKQHokLK8

COMP6725 - Big Data Technologies

Anda mungkin juga menyukai