Jurnal Penelitian Teknik Informatika
JURNAL PERBANDINGAN SOFTWARE APACHE HADHOOP DAN APACHE SPARK PADA
TEKNOLOGI BIG DATA
Ikhsan
Fauzan Adzima
Malik Abdul Aziz
Assassinate75@gmail.com
Abstrak
Peranan data sangat penting terutama
memasuki era ledakan data atau "Big
Data". Oleh karenanya, pihak yang mampu mengolah dan memanfaatkan
data-data yang bervolume besar, cepat berubah, variatif, dan kompleks, dapat
mengambil keuntungan yang besar. Mengacu pada manfaat besar yang dapat
ditawarkan oleh teknologi Big Data,
menarik untuk melihat sejauh mana teknologi Big
Data sudah dimanfaatkan di Indonesia, khususnya di lembaga pemerintahan,
dan tantangan apa saja yang muncul dalam penerapannya. Diharapkan hasilnya dapat
memberikan informasi dan inspirasi sehingga implementasi teknologi Big Data di Indonesia dapat semakin
luas. Berbagai software telah ada untuk melakukan pengolahan data, seperti
Apache Spark dan Apache HadHoop
Kata kunci: Big Data,
Tantangan, Implementasi, Apache.
Pendahuluan
Melalui teknologi informasi,
triliunan byte data diciptakan setiap hari dari berbagai sumber, seperti dari
media sosial, sensor, video surveillance, dan smart grids. Lautan data ini
mengarah pada satu terminologi Big Data. Data memiliki peran penting dalam
pengambilan keputusan strategis. Oleh karenanya, pihak yang mampu mengolah dan
memanfaatkan data-data yang tersedia dalam volume besar, keragaman variatif,
kompleksitas tinggi dan kecepatan penambahan data yang tinggi, dapat mengambil
keuntungan yang besar. Namun sayangnya, penerapan Big Data analitik masih belum
begitu populer di Indonesia1 . Sejauh ini tiga bidang usaha pengguna utama Big
Data di Indonesia yaitu perusahaan telekomunikasi, perbankan, dan produsen
barang-barang konsumsi ringan dan murah seperti minuman dan makanan kemasan.
Teknologi Big Data
sebenarnya dapat dimanfaatkan oleh banyak pihak, baik perusahaan besar, usaha
kecil dan menengah, maupun pemerintah. Meski pemanfaatan Big Data terbilang
rumit dan mahal, namun UKM bermodal kecil pun bisa memanfaatkannya asal tahu
persis tujuan bisnisnya sehingga memudahkan proses identifikasi data yang
dibutuhkan, untuk mendapatkan manfaat yang lebih besar dari investasi yang
dikeluarkan.
Beberapa manfaat Big Data
yang sudah dirasakan khususnya bagi dunia usaha diantaranya untuk mengetahui
respons masyarakat terhadap produk-produk yang dikeluarkan melalui analisis sentimen di media sosial;
membantu perusahaan mengambil keputusan secara lebih tepat dan akurat
berdasarkan data; membantu meningkatkan citra perusahaan di mata pelanggan;
untuk perencanaan usaha dengan mengetahui perilaku pelanggan, seperti pada perusahaan
telekomunikasi dan perbankan; serta mengetahui tren pasar dan keinginan
konsumen.
Oleh karena itu, dibutuhkan
software handal untuk mengelola data-data tersebut. Terdapat apache spark dan
apache hadhoop yang masing-masing memiliki keunggulannya sendiri.
Pembahasan
Pengenalan
Spark: Ini adalah open-source
big data framework. Memfasilitasi mesin pengolah data yang lebih cepat dan
lebih umum-tujuan. Spark pada dasarnya dirancang untuk komputasi cepat. Ini
juga mencakup berbagai beban kerja - misalnya, batch, interaktif, berulang, dan
streaming.
Hadoop MapReduce: Ini juga
merupakan open-source big data framework. Ini juga memproses data terstruktur
dan tidak terstruktur yang disimpan dalam HDFS. Hadoop MapReduce dirancang dengan
cara memproses volume besar data pada sekelompok perangkat keras komoditas.
MapReduce dapat memproses data dalam mode batch.
Data Processing
Spark : Apache Spark cocok
untuk pemrosesan batch dan pemrosesan streaming, yang berarti ini adalah
kerangka pemrosesan hibrida. Spark mempercepat pemrosesan batch melalui
komputasi di-memori dan pengoptimalan pemrosesan. Ini adalah alternatif yang
bagus untuk streaming beban kerja, pertanyaan interaktif, dan pembelajaran
mesin. Spark juga dapat bekerja dengan Hadoop dan modul-modulnya. Kemampuan
pemrosesan data real-time-nya membuat Spark menjadi pilihan utama untuk
analitik data besar.
Set data terdistribusi yang
tangguh (RDD) memungkinkan Spark untuk menyimpan data dalam memori secara
transparan dan mengirim ke disk hanya yang penting atau dibutuhkan. Akibatnya,
banyak waktu yang dihabiskan untuk membaca dan menulis disk disimpan.
Hadoop: Apache Hadoop
menyediakan pemrosesan batch. Hadoop mengembangkan banyak hal dalam menciptakan
algoritma baru dan tumpukan komponen untuk meningkatkan akses ke pemrosesan
batch skala besar.
MapReduce adalah mesin
pemrosesan batch asli Hadoop. Beberapa komponen atau layers (seperti YARN, HDFS, dll.) dalam versi modern Hadoop
memungkinkan pemrosesan data batch yang mudah. Karena MapReduce adalah tentang
penyimpanan permanen, ia menyimpan data di disk, yang berarti ia dapat
menangani dataset besar. MapReduce dapat diukur dan telah terbukti keampuhannya
untuk menangani puluhan ribu node. Namun, pemrosesan data Hadoop lambat karena
MapReduce beroperasi dalam berbagai langkah berurutan.
Realtime Analysis
Spark: Ini dapat memproses
data real-time, yaitu data yang berasal dari aliran peristiwa waktu nyata
dengan laju jutaan peristiwa per detik, seperti data Twitter dan Facebook.
Kekuatan Spark terletak pada kemampuannya untuk memproses streaming langsung
secara efisien.
Hadoop MapReduce: MapReduce
gagal ketika datang ke pemrosesan data real-time, karena ia dirancang untuk
melakukan pemrosesan batch pada sejumlah besar data.
Penggunaan
Spark: Spark lebih mudah
digunakan daripada Hadoop, karena dilengkapi dengan API yang mudah digunakan
untuk Scala (bahasa aslinya), Java, Python, dan Spark SQL. Karena Spark
menyediakan cara untuk melakukan streaming, pemrosesan batch, dan pembelajaran
mesin di cluster yang sama, pengguna akan merasa lebih mudah untuk
menyederhanakan infrastruktur mereka untuk pemrosesan data. REPL interaktif
(Read-Eval-Print Loop) memungkinkan pengguna Spark untuk mendapatkan umpan
balik instan untuk perintah.
Hadoop: Hadoop, di sisi
lain, ditulis menggunakan Java, sulit untuk memprogram, dan membutuhkan
abstraksi. Meskipun tidak ada mode interaktif yang tersedia dengan Hadoop
MapReduce, tools seperti Pig dan Hive
memudahkan pengadopsi untuk bekerja dengannya.
Graph Processing
Spark: Spark hadir dengan
pustaka perhitungan grafik yang disebut GraphX untuk menjadikan semuanya
sederhana. Penghitungan dalam memori digabungkan dengan dukungan grafik
internal memungkinkan algoritme untuk bekerja jauh lebih baik daripada program
MapReduce tradisional. Netty dan Akka memungkinkan Spark untuk mendistribusikan
pesan ke seluruh pelaksana.
Hadoop: Sebagian besar
algoritme pemrosesan, seperti PageRank, melakukan beberapa pengulangan atas
data yang sama. MapReduce membaca data dari disk dan, setelah iterasi tertentu,
mengirim hasil ke HDFS, dan kemudian lagi membaca data dari HDFS untuk iterasi
berikutnya. Proses seperti itu meningkatkan latensi dan membuat pemrosesan
grafik menjadi lambat.
Untuk mengevaluasi skor dari
suatu node tertentu, pengiriman pesan harus mengandung sejumlah node yang
berdekatan. Perhitungan ini memerlukan pesan dari tetangganya, tetapi MapReduce
tidak memiliki mekanisme apa pun untuk itu. Meskipun ada alat cepat dan
skalabel seperti Pregel dan GraphLab untuk algoritma pemrosesan grafik yang
efisien, mereka tidak cocok untuk algoritma multi-tahap yang rumit.
Biaya
Baik Hadoop dan Spark adalah
proyek open-source, oleh karena itu datang secara gratis. Namun, Spark
menggunakan sejumlah besar RAM untuk menjalankan semua yang ada di dalam
memori, dan RAM lebih mahal daripada hard disk. Hadoop adalah disk-terikat,
sehingga menghemat biaya untuk membeli RAM yang mahal, tetapi membutuhkan lebih
banyak sistem untuk mendistribusikan disk I / O melalui beberapa sistem.
Sejauh menyangkut biaya,
organisasi perlu melihat persyaratan mereka. Jika itu tentang memproses data
besar dalam jumlah besar, Hadoop akan menjadi lebih murah karena ruang hard
disk memiliki laju yang jauh lebih rendah daripada ruang memori.
Toleransi Terhadap Kesalahan
Spark: Spark menggunakan RDD
dan berbagai model penyimpanan data untuk toleransi kesalahan dengan
meminimalkan I / O jaringan. Dalam hal hilangnya partisi RDD, RDD membangun
kembali partisi tersebut melalui informasi yang sudah dimilikinya. Jadi, Spark
tidak menggunakan konsep replikasi untuk toleransi kesalahan.
Hadoop: Hadoop mencapai
toleransi kesalahan melalui replikasi. MapReduce menggunakan TaskTracker dan
JobTracker untuk toleransi kesalahan. Namun, TaskTracker dan JobTracker telah
diganti dalam versi kedua MapReduce oleh Node Manager dan ResourceManager /
ApplicationMaster, masing-masing.
Keamanan
Spark: Keamanan Spark saat
ini masih dalam tahap awal, hanya menawarkan dukungan otentikasi melalui
rahasia bersama (otentikasi kata sandi). Namun, organisasi dapat menjalankan
Spark pada HDFS untuk memanfaatkan HDFS ACL dan izin tingkat file.
Hadoop MapReduce: Hadoop
MapReduce memiliki fitur keamanan yang lebih baik daripada Spark. Hadoop
mendukung otentikasi Kerberos, yang merupakan fitur keamanan yang baik tetapi
sulit untuk dikelola. Hadoop MapReduce juga dapat berintegrasi dengan proyek
keamanan Hadoop, seperti Knox Gateway dan Sentry. Vendor pihak ketiga juga
memungkinkan organisasi menggunakan Active Directory Kerberos dan LDAP untuk
otentikasi. Sistem File Terdistribusi Hadoop kompatibel dengan daftar kontrol
akses (ACL) dan model izin file tradisional.
Compatibility
Baik Hadoop dan Spark
kompatibel satu sama lain. Spark dapat mengintegrasikan dengan semua sumber
data dan format file yang didukung oleh Hadoop. Jadi, tidak salah jika
mengatakan bahwa kompatibilitas Spark dengan tipe data dan sumber data mirip
dengan Hadoop MapReduce.
Kesimpulan
Baik Hadoop dan Spark dapat
ditingkatkan skalanya. Orang mungkin menganggap Spark sebagai pilihan yang
lebih baik daripada Hadoop. Namun, MapReduce ternyata menjadi pilihan yang baik
untuk bisnis yang membutuhkan dataset besar yang dikendalikan oleh sistem
komoditas. Kedua kerangka itu baik dalam arti mereka sendiri. Hadoop memiliki
sistem file sendiri yang tidak dimiliki Spark, dan Spark menyediakan cara untuk
analisis real-time yang tidak dimiliki Hadoop.
Oleh karena itu, perbedaan
antara Apache Spark vs Hadoop MapReduce menunjukkan bahwa Apache Spark jauh
lebih maju dari mesin komputasi klaster daripada MapReduce. Spark dapat menangani
semua jenis kebutuhan (yaitu batch, interaktif, berulang, streaming, grafik)
sementara MapReduce membatasi pemrosesan batch.
Referensi