5 BAB II LANDASAN TEORI Pada saat ini, kebutuhan manusia akan data sudah semakin berkembang. Hal ini dibuktikan dengan semakin bertambahnya volume data setiap tahunnya [1]. Disamping itu, kebutuhan manusia akan efisiensi waktu dan ketepatan data juga memjadi salah satu faktor tumbuhnya Big Data pada saat ini. Namun dibalik itu, Big Data juga membutuhkan perpindahan data yang sangat sering. Sehingga membutuhkan bandwidth yang besar pengaturan trafik data yang tepat agar tidak terjadi congestion pada saat proses pengiriman atau perpindahan data. Dalam penelitian sebelumnya [4] dikembangkan Doopnet untuk Performasi Analisa Hadoop Cluster yang menggunakan Docker. Dalam analisa tersebut, Hadoop Cluster dijalankan dan di konfigurasikan serupa dengan dijalankan dalam cluster terpisah di physical server. Pada penelitian ini, akan dilakukan pengujian performasi trafik Big Data dengan menggunakan Hadoop Clustering didalam Docker dengan menggunakan Software Defined Network sebagai manajemen queue transfer yang memungkinkan mengatur arus data dari master dan slave disetiap nodes pada Hadoop Cluster. 2.1 Big Data Big Data merupakan suatu istilah untuk menggambarkan volume data dalam bentuk yang besar. Data yang dimaksud disini adalah data yang terstuktur ataupun tidak terstruktur. Aplikasi Big Data sudah banyak digunakan oleh industri yang bergerak dalam teknologi dan informasi. Namun juga tak jarang industri non teknologi juga menggunakan Big Data untuk menunjang proses kerja mereka. Didalam Big Data sendiri, poin utama yang ada bukanlah besaran volume dari data itu sendiri, melainkan bagaimana dilakukannya pengorganisasian data tersebut.[5] Konsep Big Data sendiri mulai pada tahun 2000-an ketika seorang analis industri Doug Laney yang menyampaikan beberapa aspek penting dalam Big Data diantaranya: a. Variety Data yang dihasilkan merupakan data yang tidak berada di dalam single category karena tidak termasuk ke dalam data tradisional tetapi jiga merupakan semi struktur data dari berbagai sumber seperti halaman web, file log web, situs media sosial, email, dan masih banyak yang lainnya. Semua data ini sangat berbeda terdiri dari data mentah, semi terstruktur dan data terstruktur bahkan yang sulit untuk ditangani oleh sistem analitik tradisional yang sudah ada. [6]
13
Embed
BAB II LANDASAN TEORIeprints.umm.ac.id/37645/3/jiptummpp-gdl-cindyclaud-50713-3-babii.pdfdari Google Inc, berikut sistem berkas yang disarankan Google (GFS = Google File System), yang
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
5
BAB II
LANDASAN TEORI
Pada saat ini, kebutuhan manusia akan data sudah semakin berkembang. Hal ini
dibuktikan dengan semakin bertambahnya volume data setiap tahunnya [1]. Disamping itu,
kebutuhan manusia akan efisiensi waktu dan ketepatan data juga memjadi salah satu faktor
tumbuhnya Big Data pada saat ini. Namun dibalik itu, Big Data juga membutuhkan
perpindahan data yang sangat sering. Sehingga membutuhkan bandwidth yang besar
pengaturan trafik data yang tepat agar tidak terjadi congestion pada saat proses pengiriman atau
perpindahan data. Dalam penelitian sebelumnya [4] dikembangkan Doopnet untuk Performasi
Analisa Hadoop Cluster yang menggunakan Docker. Dalam analisa tersebut, Hadoop Cluster
dijalankan dan di konfigurasikan serupa dengan dijalankan dalam cluster terpisah di physical
server. Pada penelitian ini, akan dilakukan pengujian performasi trafik Big Data dengan
menggunakan Hadoop Clustering didalam Docker dengan menggunakan Software Defined
Network sebagai manajemen queue transfer yang memungkinkan mengatur arus data dari
master dan slave disetiap nodes pada Hadoop Cluster.
2.1 Big Data
Big Data merupakan suatu istilah untuk menggambarkan volume data dalam bentuk yang
besar. Data yang dimaksud disini adalah data yang terstuktur ataupun tidak terstruktur. Aplikasi
Big Data sudah banyak digunakan oleh industri yang bergerak dalam teknologi dan informasi.
Namun juga tak jarang industri non teknologi juga menggunakan Big Data untuk menunjang
proses kerja mereka. Didalam Big Data sendiri, poin utama yang ada bukanlah besaran volume
dari data itu sendiri, melainkan bagaimana dilakukannya pengorganisasian data tersebut.[5]
Konsep Big Data sendiri mulai pada tahun 2000-an ketika seorang analis industri Doug Laney
yang menyampaikan beberapa aspek penting dalam Big Data diantaranya:
a. Variety
Data yang dihasilkan merupakan data yang tidak berada di dalam single category
karena tidak termasuk ke dalam data tradisional tetapi jiga merupakan semi struktur
data dari berbagai sumber seperti halaman web, file log web, situs media sosial, email,
dan masih banyak yang lainnya. Semua data ini sangat berbeda terdiri dari data mentah,
semi terstruktur dan data terstruktur bahkan yang sulit untuk ditangani oleh sistem
analitik tradisional yang sudah ada. [6]
6
b. Velocity
Kecepatan data yang besar adalah sebuah konsep yang berkaitan dengan kecepatan data
yang berasal dari berbagai sumber. Karakteristik ini adalah tidak terbatas untuk
kecepatan data masuk tetapi juga kecepatan di mana data mengalir. Misalnya data dari
perangkat sensor akan terus bergerak ke toko database dan jumlah ini tidak akan cukup
kecil. Dengan demikian kami sistem tradisional tidak cukup mampu melakukan analisis
pada data yang terus-menerus bergerak. [6]
c. Volume
Sekumpulan tipe data yang di-generate dari banyak sumber data dan akan mengalami
perkembangan dalam kuantitas secara terus menerus. Data di-generate oleh mesin
(machines), jaringan (networks) dan manusia (human) yang saling berinteraksi satu
sama lain yang jumlahnya terus bertambah. Total data yang ada saat ini telah mencapai
ukuran zettabytes dan media jejaring sosial adalah penyumbang terbesar dengan
memproduksi dalam jumlah terabytes setiap harinya [6]. Hal yang sangat menyulitkan
tentunya jika ditangani dengan sistem tradisional. [7]
d. Complexity
Data berasal dari berbagai sumber sehingga cukup sulit untuk menghubungkan,
mencocokan, membersihkan dan mengubah data di seluruh sistem. Namun, Big Data
sangat dibutuhkan untuk memiliki korelasi antar data, hierarki dan beberapa keterkaitan
data lainnya atau data yang acak. [5]
e. Variability
Selain kecepatan dalam pengumpulan data yang meningkat dan variasi data yang
semakin beraneka ragam, terkadang aliran arus data di dalam perpindahan data juga
tidak konsisten dalam periode tertentu. Salah satu contohnya adalah hal yang sedang
tren di media sosial. Periodenya bisa harian, musiman, dipicu peristiwa dadakan dan
lain-lain. Beban puncak data dapat menantang untuk analis Big Data, bahkan dengan
data yang tidak terstruktur. [5]
Pada saat ini, masyarakat mulai menyadari bagaimana pentingnya peran Big Data.
Tidak hanya tentang jumlah data yang organisasi miliki, namun hal yang penting adalah
bagaimana mengolah data.
7
Didalam Big Data data biasanya terdistribusi. Karena data yang terdistribusi maka baik
pemrograman dan model statistik yang digunakan juga terdistribusi. Dalam model
pemrograman terdistribusi Big Data biasanya menggunakan Map Reduce yang merupakan
salah satu model pemrograman paralel untuk data yag terdistribusi. Dengan adanya
pemrograman yang terdistribusi membuat statistik arus data pada Big Data. Satu asumsi dasar
semua model statistik/data mining/machine learning/data science konvensional adalah datanya
centralized (terpusat). Centralized data tidak lagi dipandang sebagai solusi efisien ketika
datanya besar (baca disini). Pemodelan statistik untuk data yang terdistribusi berbeda dengan
ketika datanya berada di satu tempat. Jika statistik konvensional hanya fokus pada optimal
parameter untuk generalisasi ke populasi yang terbaik. Pada sistem dengan data terdistribusi,
statistiknya juga dioptimalkan untuk komunikasi antar node yang minimal dan upaya untuk
mencapai optimal global dari berbagai solusi parameter optimal local di node-node yang ada.
[8]
Apache Hadoop
Apache Hadoop adalah software bebas dan open source, yang ditulis dalam kerangka
bahasa pemrograman Java untuk dijalankan secara terdistribusi dan skalabel. Apache Hadoop
dibangun berdasarkan algoritma popular MapReduce dari Google Inc, berikut sistem berkas
yang disarankan Google (GFS = Google File System), yang memungkinkan menjalankan
tugas komputasi dalam mengolah data jumlah besar (sekitar petabyte keatas) di komputer
cluster. Hadoop awalnya diprakarsai oleh Lucene Doug Cutting, yang sejak tanggal 23
Januari 2008 telah menjadi proyek tingkat atas di lingkungan Apache Software Foundation
dan dikembangkan secara terbuka oleh komunitas kontributor secara global. Pengguna
Hadoop adalah, termasuk Facebook, a9.com, AOL, Baidu, IBM, ImageShack, dan Yahoo.
Hadoop tersedia bebas menyandang lisensi Apache License 2.0.
Kerangka kerja Hadoop terdiri dari modul-modul termasuk:
a. Hadoop Common – berisi library dan utilitas yang diperlukan oleh modul Hadoop
lainnya.
b. Hadoop Distributed File System (HDFS) – sebuah sistem berkas terdistribusi dengan
high-availability yang dapat menyimpan data pada mesin komoditas, digunakan untuk
menyediakan bandwidth sangat tinggi yang di agregasi ke semua cluster (node).
Berkas dibagi menjadi blok data dengan panjang yang baku dan didistribusikan pada
node yang saling berpartisipasi. HDFS bekerja menggunakan pendekatan master-
slave, dimana sebuah node master, yang disebut NameNode, memroses permintaan
data yang masuk, mengorganisir berkas di dalam node slave dan menyimpan metadata
8
yang dihasilkannya. HDFS mendukung sistem berkas dengan beberapa ratus juta file.
Baik panjang blok berkas maupun tingkat redundansi, keduanya dapat dikonfigurasi.
c. Hadoop YARN – sebuah platform manajemen sumber daya yang bertanggung jawab
atas pengelolaan sumber daya komputasi dalam sebuah cluster dan digunakan untuk
penjadwalan aplikasi pengguna.
d. Hadoop MapReduce – model pemrograman untuk pengolahan data skala besar.
e. HBase – adalah database sederhana, dan skalabel untuk mengelola data dengan jumlah
yang sangat besar dalam cluster Hadoop. Database HBase didasarkan pada
implementasi bebas dari BigTable besutan Google. Struktur data ini cocok untuk data
yang jarang berubah, tapi sangat sering ditambahkan. Menggunakan HBase dapat
dikelola miliaran baris data secara efisien.
f. Hive – melengkapi Hadoop Hive dengan fungsi Data-Warehouse, yaitu bahasa query
HiveQL dan indeks. HiveQL adalah bahasa query berbasis SQL dan memungkinkan
pengembang untuk menggunakan sintaks seperti SQL. Pada musim panas tahun 2008
Facebook, pengembang asli dari Hive, menyerahkan Hive nebjadi proyek komunitas
open source. Database Hadoop yang digunakan oleh Facebook berkisar diatas 100
petabyte merupakan terbesar (Agustus 2012) di dunia.
g. Pig – dapat digunakan sebagai bahasa pemrograman high-level (Pig Latin) untuk
menulis program pada Hadoop MapReduce. [9]
2.2 Virtualisasi
Virtualisasi adalah istilah yang dapat diartikan sebagai pembuatan suatu bentuk atau
versi virtual dari sesuatu yang bersifat fisik. Definisi lainnya adalah membuat versi maya
(virtual) dari suatu sumber daya (resource) sehingga pada satu sumber daya fisik dapat
dijalankan atau disimpan beberapa sumber daya maya sekaligus [10]. Sumber daya yang dapat
di virtualisasi antara lain adalah perangkat keras komputer, media penyimpanan data (storage),
sistem operasi (OS), dan layanan jaringan (Networking). Virtualisasi dimungkinkan karena
perkembangan teknologi perangkat keras yang sedemikian pesat sehingga kemampuan sebuah
sumber daya fisik berada jauh di atas kebutuhan penggunasnya sehingga sebagian besar waktu
atau kapasitasnya tidak terpakai (idle) [7].
Melihat catatan sejarah istilah virtualisasi mulai dikembangkan sejak pertengahan abad
ke - 20 di mana hanya digunakan untuk kalangan industri saja [11]. Virtualisasi menawarkan
banyak keuntungan dibanding infrastruktur tradisional dalam berbagai aplikasi. Selain dari
penghematan biaya dan mudah pemeliharaannya.
9
Banyak produk virtualisasi memungkinkan guest tertentu untuk diduplikasi dengan
mudah di mana bisa berguna untuk percobaan bagaimana perangkat lunak diperbaharui atau
memodifikasi sebuah sistem yang ditentukan tanpa mempengaruhi sistem produksi. Migrasi
membantu menurunkan atau mengurangi downtime karena mesin virtual bisa di pindahkan
secara sementara atau permanen ke host transparan yang berbeda ke sistem operasi guest.
Usaha pemulihan dari bencana (Disaster Recovery) bisa menjadi benar-benar sederhana
melalui penggunaan virtualisasi. Dalam sebuah kejadian bencana alam, backup mesin virtual
mesin bisa dengan mudah dipindahkan ke lokasi baru pada perangkat keras yang berbeda.
Walaupun dengan semua keuntungan masih terdapat beberapa sisi kekurangan pada
virtualisasi. Contohnya, mesin virtual harus membagi sumber daya dengan mesin virtual yang
lain dalam sistem fisikal yang sama. Aplikasi dengan penyimpanan atau utilitas CPU tinggi
tidak selalu bekerja dengan baik dalam sebuah sistem di mana mesin virtual itu harus membagi
sumber daya. Permasalahan ini bisa dihindari dengan hanya menjalankan satu dari semua
aplikasi dengan utilitas tinggi per host fisikal.
Tipe Virtualisasi
Ada beberapa tipe virtualisasi menurut Jones, dkk (2008), yaitu Virtualisasi
Perangkat Keras dan Virtualisasi Perangkat Lunak [12]. Masing-masing virtualisasi
memiliki keuntungan dan kerugian sendiri-sendiri, yang terkait dengan masalah
kompatibilitas sistem operasi dan kinerja mesin guest yang dijalankan di atas host OS.
1. Virtualisasi Perangkat Keras
Virtualisasi perangkat keras yaitu sebuah upaya untuk menciptakan mesin virtual
yang bekerja layaknya sebuah komputer lengkap dengan memiliki sistem operasi
sendiri. Perangkat lunak yang dieksekusi pada mesin virtual tersebut dipisahkan dari
sumber daya fisik. Dalam virtualisasi perangkat keras, mesin host adalah sebuah istilah
yang digunakan untuk sistem operasi yang terinstal di komputer secara fisik, sedangkan
mesin guest adalah sistem operasi yang terinstal di atas mesin host. Istilah host dan
guest dikenalkan untuk memudahkan dalam membedakan antara sistem operasi fisik
yang terinstal di komputer dengan sistem operasi yang diinstal di atasnya atau bisa
disebut virtualnya.
Virtualisasi perangkat keras memiliki dua pendekatan yang paling umum yaitu
virtualisasi penuh dan para-virtualisasi. Dalam virtualisasi penuh sebuah lapisan berada
di antara (virtual) dan mesin hots, lapisan ini disebut hypervisor. Lapisan ini
menggadakan sumber daya sistem bagi kepentingan masing-masing mesin guest. Para-
virtualisasi berbeda dalam hal hyhpervisor bekerja dengan cara kooperatif.
10
Setiap sistem operasi guest menyadari bahwa mereka berjalan dalam lingkungan virtual
dan bekerja sama dengan hypervisor untuk membuat virtualisasi mesin host.
2. Virtualisasi Perangkat Lunak
Virtualisasi perangkat lunak memungkinkan satu komputer host untuk membuat
dan menjalankan satu atau lebih lingkungan virtual. Virtualisasi perangkat lunak
banyak digunakan untuk membuat simulasi sebuah sistem komputer lengkap dengan
tujuan untuk memungkinkan sistem operasi guest berjalan, sebagai contoh mengizinkan
Linux untuk berjalan sebagai guest di atas komputer yang secara native menjalankan
sistem operasi Windows. Jenis virtualisasi perangkat lunak di antaranya adalah
Operating system-level virtualization [11].
Operating System-level Virtualization
Operating System-level virtualization adalah sebuah metode untuk membuat
virtualisasi server di atas sistem operasi itu sendiri. Metode ini mendukung sebuah
sistem operasi dan mengisolasi server satu sama lain seperti pada Gambar 2.1 [12].
Gambar 2.1 Operating system-level Virtualization Mengisolasi Server-server
Operating System-level virtualization membagi sumber daya mesin fisikal
pada level sistem operasi. Ini artinya semua mesin virtual OS-level membagi satu
kernel pada sebuah sistem operasi. Gambar 2.2 di bawah membandingkan lapisan
virtualisasi Operating System-level virtualization dengan virtualisasi perangkat
keras (hardware-level virtualization) [11]. Metode ini juga sering disebut sebagai
container, virtualization engines (VE), atau virtual private server (VPS) terlihat dan
terasa seperti server asli dari sudut pandang pengguna. Contoh implementasi dari
Operating System-level virtualization ini adalah LXC dan Docker.
Private
Server
Sistem Operasi
Perangkat Keras
Private
Server
Private
Server
11
Gambar 2.2 Perbandingan Operating System-level Virtualization dengan Virtualization
Hardware [1]
2.3 Docker
Docker merupakan project open source yang meyediakan platform teknologi virtualisasi
berbasis container. Project ini ditujukan untuk para developer untuk membangun, mengikat
dan menjalankan aplikasi dimanapun dalam satu container yang ringan. Docker bisa dibilang
mirip dengan Virtual Machine pada umumnya, seperti VMWare, Virtual Box namun yang
menjadi pembeda nya adalah Docker lebih ringan karena tidak membawa keseluruhan sistem
operasi, melainkan hanya berbagi sistem dengan host utamanya.
Didalam Docker, software disatukan dalam filesystem lengkap berisi semua yang
diperlukan untuk menjalankannya seperti: source code, module runtime, perangkat sistem,
sistem pustaka software apa pun yang dapat diinstal pada server. Hal ini menjamin bahwa
perangkat lunak akan selalu berjalan sama, tidak tergantung pada lingkungannya. Contoh nya
adalah apabila Docker dijalankan didalam Sistem Operasi Linux Ubuntu, sistem yang sama
juga akan berjalan sama apabila Docker dijalankan didalam Sistem Operasi Linux CentOS.
Pada perkembangannya saat ini, Docker juga bisa dijalankan di sistem operasi Windows dan
juga MacOS. [13]
Arsitektur dan Komponen Docker
Arsitektur Docker menggunakan mekanisme client dan server, Docker client
mengirimkan permintaan ke server untuk membangun, mendistribusikan dan
menjalankan container Docker. Docker Client dan Docker Server dapat berjalan pada
sistem yang sama yang berkomunikasi via socker menggunakan Restful API [13].
Dalam Docker, ada beberapa komponen yang saling membutuhkan satu sama lain
untuk dapat menjalankan virtualisasi ini, diantaranya: