Introduction to Big Data
with Hadoop
Pelatihan, 23-25 Oktober 2020
Dipersiapkan oleh Dony Riyanto
Apa itu Big Data
Benar:
• Sekumpulan data dalam sistem, yang sangat besar jumlahnya,
• sehingga (hampir) tidak mungkin diolah menggunakan infrastruktur/sistem yang ada saat ini (yang dimiliki oleh
perusahaan),
• sehingga (mungkin) dibutuhkan sistem pengolahan data khusus,
• yang dari situ diharapkan suatu saat bisa digali analisa yang lebih dalam, lebih cepat, untuk keperluan
perusahaan/organisasi.
Salah:
• Mengumpulkan data tentang siapapun dan apapun yang penting jumlahnya besar.
• All-in-one solution.
• Pasti lebih baik daripada sistem pengolahan data secara tradisional.
• Sebuah keharusan bagi semua perusahaan/organisasi untuk investasi dan membangun sistem bigdata.
• Hanya dibutuhkan oleh perusahaan/organisasi besar.
Big Data 3 V
Big Data 5 V+
Big Picture
www.ibmbigdatahub.com
• Empower C-Suite
• Improve Reliability
• Speed Operations
• Monitor & React
Apa gunanya Big Data?
• Tempat menyimpan data dalam jumlah besar sekali,
• dan mungkin dalam format yang unstructured/semi-tructured,
• namun harus bisa diolah (dengan cepat/baik).
Tujuan akhir big data:
• Mendapatkan insight yang lebih baik, untuk pengambilan keputusan yang lebih tepat.
• Untuk dapat di lakukan analisa lebih dalam suatu saat nanti.
• Untuk dapat mengambil keputusan secara sistem (bahkan otomatisasi) pada saat bisnis sedang berjalan (daily operation)
Tujuan big data bukan untuk:
• Mengurangi biaya infrastructur pengolahan data
• Secara 'magic' menyelesaikan masalah-masalah/pengambilan keputusan dalam bisnis
GIGO vs GIIO
• Sistem Informasi yang baik umumnya dirancang untuk mencegah Garbage In
Garbage Out. Informasi di filter dengan baik didepan sedemikian mungkin,
untuk memastikan bahwa yang tersimpan adalah informasi inti saja.
• Perusahaan minuman air dalam kemasan, menggunakan Sistem Informasi
untuk mencatat, berapa botol yang di produksi tiap pabriknya, berapa yang
didistribusikan per hari, siapa saja distributornya, dimana saja penjualannya,
dsb.
• Tetapi mereka tidak pernah tahu, kenapa pada saat-saat tertentu pembelian
air minum kemasan naik di daerah tertentu (misalnya: ada konser, atau ada
upacara/seremonial di lapangan). Karena mereka tidak pernah mencatat data-
data pendukung, yang mungkin terlalu detail, yang mungkin dianggap tidak
relevan secara langsung dengan produksi air mineral.
• Bagaimana jika dari data 'sampah' bisa didapatkan insight (gargabe in insight
out)? Lalu ada definisi dari data 'sampah' ini?
GIGO vs GIIO (2)
• Pada sebuah perusahaan e-commerce platform, tentu data utama yang harus
mereka kelola adalah: data barang, data penjual, data pembeli, data
pemesanan, data pengantaram, data pembayaran, dsb.
• Bagaimana dengan data pemesanan yang batal (sudah dimasukkan ke
keranjang tapi kemudian dihapus, atau tidak diteruskan ke checkout)? Atau
aktifitas penjual memasukkan/menghapus/meng-edit item barang jualan
mereka? (dan data-data lain yang sifatnya temporer)
• Bagaimana dengan data: berapa lama user berada dalam web app tersebut,
scroll/klik kemana, arah pergerakan mouse, dsb?
• Bagaimana dengan data-data dari luar web app: aktifitas iklan di
web/platform lain, aktifitas user di platform lain (socmed misalnya)?
• Apakah itu adalah data sampah? Jika semua data itu dikumpulkan dan
disimpan, apa gunanya, dan bagaimana kita bisa memanfaatkannya?
Data Format vs Data Source
Business Intelligence vs Machine Learning
• Banyak perusahaan sudah menerapkan BI dan membuat Data
Warehouse untuk bisa melakukan analisa lebih dalam terhadap data
yang tersimpan. “Apa yang terjadi?” “Customer kita lebih suka apa?”
“Customer kita lebih mau beli item yang mana?
Back during World War II, the RAF lost a lot
of planes to German anti-aircraft fire. So they
decided to armor them up. But where to put
the armor? The obvious answer was to look
at planes that returned from missions, count
up all the bullet holes in various places, and
then put extra armor in the areas that
attracted the most fire.
Business Intelligence vs Machine Learning (2)
• Business Intelligence secara umum bertujuan untuk 'melihat kebelakang' tentang apa
yang terjadi. Pesawat tempur yang kembali dari perang, di-analisa mendalam dan
didapatkan kesimpulan bahwa musuh lebih sering melakukan tembakan ke arah sayap
dan bagian tengah pesawat. Untuk itu kita perlu memperkuat lapisan pesawat pada
bagian itu.
• Jelas kita ketahui bahwa: pesawat yang tertembak di bagian mesin dan/atau bagian kabin,
tidak pulang ke pangkalan dan jatuh di medan tempur. Dan data itu tidak mereka
pertimbangkan.
• Machine Learning membutuhkan data lebih dari itu. Bagaimana pola terbang pesawat
yang berhasil kembali ke pangkalan? Kapan serangan terjadi, berapa banyak pasukan
musuh pada saat terjadi serangan, pesawat terbang ke arah mana dan dalam posisi
bagaimana, profil musuh, spek engine/pesawat, dsb, sehingga bisa didapatkan/dipelajari
pola yang lebih tepat. Yang dibutuhkan mungkin bukan penguatan pada bagian2 pesawat,
tetapi waktu/pola/cara serangannya yang perlu disesuaikan untuk menyelamatkan
pesawat2 berikutnya agar tidak jatuh di pertempuran berikutnya.
Contoh Pemakaian Big Data secara umum
• Product Recomendation
• Realtime Prediction/Estimation
• Sentiment Analysis (of product/marketing campaign)
• Personalized Search Result/Services
• Chat bot/ Virtual Assistance
• Location pin-point
• Pattern Recognition (customer behaviour, type of profitable
customer)
Apa itu Hadoop?
• Hadoop adalah MR
• Hadoop adalah Distributed File System
(menggunakan MR)
• Hadoop adalah ekosistem
• Tools utk query data
• Tools untuk menghubung antara SQL dan
MR/HDFS
• Tools untuk proses data secara stream
• dsb
• Hadoop dalam distro/appliance (Cloudera,
Hortonworks, MapR, Pivotal)
Map -Reduce
Map -Reduce
Re
duce
Raw Data Mapped & Shuffled Data Reducing Process Output
Traditional vs Map-Reduce
Scale Up vs Scale Out Problem
• Paradigma proses data konvensional adalah centralized/
terkonsentrasi pada satu server atau cluster. Hal ini menyebabkan
apabila kita ingin melakukan peningkatan kapasitas, harus dilakukan
secara horizontal scaling atau sering disebut dengan scale-up
Scale Up vs Scale Out Problem (2)
• Ketika konteks pembahasannya adalah data yang bertumbuh menjadi sangat
besar dan datang terus menerus secara cepat dan sulit diprediksi, maka
mekanisme scale-up menjadi terasa sangat berat dan membutuhkan biaya
besar diawal. Karena scale-up harus melalui proses perencanaan yang sangat
matang utk prediksi jangka menengah-panjang, dan biaya timbul di awal. Sulit
juga untuk dilakukan scale-up berkali kali, karena akan menibulkan downtime
yang akan merugikan/menghambat proses di perusahaan/organisasi.
• Teknologi cloud computing dan distributed computing yang semakin canggih
saat ini, memungkinkan kita untuk untuk melakukan peningkatan secara
horisontal atau scale out. Pendekatan scale out mengadosi prinsip:
berkembang secara bertahap sesuai kebutuhan tanpa harus
mengubah/mematikan sistem utama. Prinsip itu juga yang dipakai pada
Hadoop
Scale Up vs Scale Out Problem (3)
• Hadoop mengadopsi prinsip Scale
Out. Dimana data node bisa
ditambahkan sewaktu-aktu saat
dibutuhkan dan langsung
join/berkoordinasi dengan data node
yang lain melalui name node.
• Ini yang menyebabkan Hadoop
sangat populer dan ideal untuk
dipakai sebagai proses/penyimpanan
Big Data.
Map-Reduce
Map-Reduce (latihan)
• Install Hadoop (dibutuhkan install dan konfigurasi JAVA, download
dan setting aplikasi Apache Hadoop). Untuk proses instalasi Hadoop
bisa dilihat dari berbagai sumber, salah satunya:
https://www.tutorialspoint.com/hadoop/hadoop_enviornment_setup.htm
• Pastikan Hadoop sudah jalan. Bisa coba dengan ketik hadoop version
• Untuk menjalankan contoh di hadoop (pada saat download dan
extract, ada beberapa contoh bawaan). Contohnya: hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar grep input
output 'dfs[a-z.]+'
• Lebih jauh bisa dibaca pada beberapa sumber seperti
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
Map-Reduce (latihan wordcount dengan Python)
• Salah satu tutorial yang cukup baik untuk memahami cara kerja
Hadoop MR/HDFS bisa dibaca pada link berikut ini: https://www.michael-
noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/
• Contoh app mapper:
Pada contoh ini, tugas mapper
hanya menerima input berupa text,
lalu memisahkan kan berdasarkan
kata, lalu menampilkan dalam
bentuk 2 kolom: <kata> 1
Map-Reduce (latihan wordcount dengan Python)
• Contoh app reducer:
Pada contoh ini, tugas reducer adalah memproses
data yang masuk (2 kolom: <kata> 1). Lalu selama
kata berikutnya masih sama dengan sebelumnya,
maka jumlahkan angkanya (1+1+1+1 dst), sampai
semua baris data terproses. Hasilnya seperti ini:
Map-Reduce (latihan wordcount dengan Python)
mapper.
py
Hadoop Servers
mapper.
py
mapper.
py
shuffle
reducer.
py
reducer.
py
result
HDFS
Map-Reduce (latihan wordcount dengan Python)
Hadoop Ecosystem
HIVE
• Apache HIVE adalah salah satu aplikasi dalam ekosistem Hadoop
• HIVE membutuhkan Hadoop (HDFS dan Hadoop MapReduce) dan RDMS
(untuk menyimpan meta data/metastore) untuk mengolah dan memproses
data
• HIVE menggunakan syntax mirip seperti SQL pada umumnya
• Salah satu perbedaan utama HIVE dengan RDBMS/SQL DB adalah HIVE
menggunakan “Schema on READ only”. Sehingga HIVE tidak ditujukan untuk
update/insert data seperti pada SQL.
• Perintah-perintah HIVE dapat di-eksekusi menggunakan command line
maupun menggunakan Web UI
• HIVE terdiri dari 3 komponen utama yaitu: client, service dan storage (lihat
gambar berikutnya)
HIVE
HIVE
• Client
Berfungsi sebagai antarmuka ke manusia/sistem. Perintah-perintah HIVE diketik dan dimulai dari sini.
• Service
Berfungsi sebagai proses dibelakang layar, yang akan mengeksekusi perintah-perintah yang masuk
dari client, lalu menarik/meyimpan/ menghasilkan data output dari storage
• Storage & Computing
Tempat penyimpanan data dan proses terdistribusi. Data yang ada pada HDFS dipetakan
menggunakan metadata yang tersimpan pada service.
Contoh: Kita memiliki data transaksi harian dari banyak cabang perusahaan yang kemudian di export
menjadi sebuah file besar dengan nama transaction-2020.csv. File ini lalu di upload ke HDFS agar
terdistribusi dan dapat diproses secara paralel. Data ini dalam format comma separated value
(structured) dengan kolom ID, trans_data, trans_amount, customer_id, dsb. Menggunakan HIVE,
struktur data ini disimpan sebagai meta data, sehingga bisa dilakukan query seolah-olah file ini
adalah tabel RDBMS biasa. Misalnya: “SELECT SUM(trans_amount) FROM transaction”
HIVE
HIVE
• Urutan eksekusi perintah pada HIVE digambarkan pada gambar di
atas.
• Perintah yang masuk dari client, dikirimkan ke service, lalu perintah
tersebut diterjemahkan menjadi script khusus, dan dilakukan
kompilasi, lalu verifikasi kolom/data dengan meta data yang
tersimpan di metastore, lalu akan dieksekusi oleh service.
• Dalam eksekusinya, HIVE akan membaca file pada HDFS dan
memproses pengolahan data-nya menggunakan MapReduce.
• Ini berbeda dengan contoh MapReduce yang kita lakukan pada
latihan sebelumnya. Dimana di latihan sebelumnya (tanpa HIVE), kita
harus membuat dulu aplikasi mapper dan reducer, menggunakan
bahasa pemrograman yang didukung, seperti JAVA atau Python.
HIVE vs Map Reduce (manual)
Instalasi HIVE
• HIVE membutuhkan requirement yang hampir sama dengan Hadoop (membutuhkan JAVA dan
konfigurasinya)
• Kemudian kita perlu meng-install database server seperti: Apache Derby, MySQL, PostgreSQL, dsb.
Database ini dibutuhkan HIVE untuk tempat menyimpan meta data (metastores)
• Kemudian download dan extract HIVE
• Lalu lakukan konfigurasi-konfigurasi yang diperlukan untuk menghubung HIVE dengan Hadoop
dan database metastore
• Jalankan service HIVE
• Jalankan client HIVE, baik menggunakan command line (CLI) maupun dengan menggunakan tools
berbasis web agar perintah HIVE bisa dijalankan lewat browser (dibutuhkan instalasi aplikasi
tambahan, seperti Apache Ambari)
• Salah satu sumber untuk melihat contoh langkah-langkah instalasi HIVE bisa dilihat pada link
berikut ini https://www.guru99.com/installation-configuration-hive-mysql.html
HIVE CLI
• Jalankan aplikasi HIVE CLI dengan cara mengetik: 'hive' atau
'./bin/hive'
• Lalu ketikkan perintah-perintah HIVE disitu
Contoh:
HIVE Web Menggunakan Ambari
HIVE SQL (HIVEQL)
• Berikut ini beberapa contoh membuat tabel baru dan
mengolah data menggunakan perintah HIVE SQL
HIVE SQL (HIVEQL)
• Pada contoh diatas, dibuat sebuah tabel baru dengan nama employess_guru
Create table employees_guru(Id INT, Name STRING, Age
INT, Address STRING, Salary FLOAT, Department STRING)
Row format delimited Fields terminated by ',';
• Lalu untuk mengisi datanya ke tabel baru tersebut, diambil file CSV (bisa dari
local file maupun file yang sudah tersimpan di HDFS). Contoh data local:
load data local inpath '/home/hduser/Employees.txt'
into TABLE employees_guru;
HIVE SQL (HIVEQL)
• HIVE juga bisa membaca file yang SEMISTRUCTURED misalnya dalam
format XML. Contoh, buat tabel baru 'xmlsample':
• File XML itu kemudian kita parsing (potong-potong) dan tampilkan,
misalnya seperti ini:
Quiz HIVE
1. Mengapa dibutuhkan HIVE, bukan RDBMS biasa?
2. Apa kelebihan pengolahan data dengan HIVE dibandingkan RDBMS
biasa?
3. Kalau sudah ada Hadoop (HDFS/MR) mengapa masih
membutuhkan HIVE?
4. Dari sekian banyak contoh data yang bisa diproses menggunakan
Hadoop, data seperti apa yang lebih cocok diolah menggunakan
HIVE?
Petunjuk Jawaban
1. Secara umum memang terlihat pengolahan data di HIVE mirip/sama dengan
RDBMS, sama-sama menggunakan perintah SQL. Namun HIVE memproses
data secara terdistribusi dan eksekusinya bisa dilakukan secara paralel,
sehingga bisa mengolah data yang sangat besar. Hal ini tidak bisa dilakukan
di RDBMS biasa.
2. Sudah dijelaskan sekilas diatas.
3. HIVE adalah abstraksi dari dari Hadoop. Jika menggunakan Hadoop saja,
eksekusi perintah harus menggunakan aplikasi yang kita bikin dengan
bahasa pemrograman yang didukung seperti JAVA, Python, nodejs, dsb.
4. Lebih cocok untuk jenis data STRUCTURED maupun SEMI-STRUCTURED.
Walaupun secara umum bisa juga dipakai untuk jenis data UNSTRUCTURED,
tetapi dibutuhkan konversi agar dapat dikenali sebagai kolom dan baris
Batch vs Stream
Batch:
• Data yang ada akan disimpan
terlebih dahulu,
• untuk dilakukan analisa di
kemudian waktu yang lain.
• Ukuran file-nya bisa
diketahui/prediksi sebelumnya.
• Stream:
• Aplikasi stream menunggu data
yang masuk,
• untuk langsung di proses pada
saat itu juga, tanpa disimpan
disimpan. Hasilnya bisa
dilakukan penyimpanan ke HDFS,
atau ke Database, atau tidak
disimpan (hanya di
visualisasikan)
• Ukuran datanya tidak bisa
diketahui, dan tidak berujung.
Batch vs Stream
Merancang Data Lake
• Sejauh ini kita sudah mengenal Hadoop, ekosistemnya dan kelebihan-
kelebihan utamanya.
• Dimana letak Hadoop dalam pipeline?
• Contoh:
Merancang Data Lake
Merancang Data Lake
Merancang Data Lake
https://databricks.com/blog/2017/04/26/processing-data-in-apache-kafka-with-structured-streaming-in-apache-spark-2-2.html
Merancang Data Lake
Data Warehouse:
• Tipe datanya structured
• Row & Collumns
• Tujuan untuk Business
Intelligence
Data Lake:
• All (structured, unstructured,
semistructured)
• Files (CSV, XML, JSON, TXT, MP3,
jpg, etc)
• Big Data Analytics (Machine
Learning/Deep Learning)
Merancang Data Lake
1. Identifikasi jenis data yang mau kita simpan dan sumber datanya.
2. Bagaimana kita mau memproses datanya?
1. Data yang akan diproses itu akan dilakukan secara berkala (bulanan,
semester, tahunan, 3 bulanan, dsb)
2. Atau, mau diproses secara langsung saat itu juga (near realtime)
3. Jika dilakukan secara berkala, maka Hadoop bisa ditempatkan di
depan (data ingestion),
4. sebaliknya kalau butuh pemrosesan data secara aktif terus menerus,
maka Hadoop lebih tepat ditempatkan di belakang (lebih sebagai
penyimpanan akhir)
Contoh Data Warehousing
Biasanya proses ini dilakukan secara berkala atau disebut dengan Batch Processing
Cotoh Batch Proc. Pada Hadoop
Hadoop
Log File, Excel, Word, CSV,
etc
Analisa menggunakan
HIVE, MR, atau lainnya
Cotoh Stream Proc. Pada Hadoop
Hadoop
Log File, Excel, Word, CSV,
etc
Spark
(stream processing)
Analisa
lanjutan
Stream app
Python
Analytics Tools & Visualization
Selain ekosistem utama dari Hadoop, ada beberapa tools yang bisa
dipakai untuk analisis dan visualisasi big data, antara lain:
• Kibana (free open source)
• Knime (free open source)
• Tableau (ada versi trial)
• Pentaho
• Qlik (ada versi trial)
• Grafana (Free open source)
• dsb
Kibana
HDFS to Kibana Diagram
Knime
Grafana

Pengenalan Big Data untuk Pemula

  • 1.
    Introduction to BigData with Hadoop Pelatihan, 23-25 Oktober 2020 Dipersiapkan oleh Dony Riyanto
  • 2.
    Apa itu BigData Benar: • Sekumpulan data dalam sistem, yang sangat besar jumlahnya, • sehingga (hampir) tidak mungkin diolah menggunakan infrastruktur/sistem yang ada saat ini (yang dimiliki oleh perusahaan), • sehingga (mungkin) dibutuhkan sistem pengolahan data khusus, • yang dari situ diharapkan suatu saat bisa digali analisa yang lebih dalam, lebih cepat, untuk keperluan perusahaan/organisasi. Salah: • Mengumpulkan data tentang siapapun dan apapun yang penting jumlahnya besar. • All-in-one solution. • Pasti lebih baik daripada sistem pengolahan data secara tradisional. • Sebuah keharusan bagi semua perusahaan/organisasi untuk investasi dan membangun sistem bigdata. • Hanya dibutuhkan oleh perusahaan/organisasi besar.
  • 3.
  • 4.
  • 5.
    Big Picture www.ibmbigdatahub.com • EmpowerC-Suite • Improve Reliability • Speed Operations • Monitor & React
  • 6.
    Apa gunanya BigData? • Tempat menyimpan data dalam jumlah besar sekali, • dan mungkin dalam format yang unstructured/semi-tructured, • namun harus bisa diolah (dengan cepat/baik). Tujuan akhir big data: • Mendapatkan insight yang lebih baik, untuk pengambilan keputusan yang lebih tepat. • Untuk dapat di lakukan analisa lebih dalam suatu saat nanti. • Untuk dapat mengambil keputusan secara sistem (bahkan otomatisasi) pada saat bisnis sedang berjalan (daily operation) Tujuan big data bukan untuk: • Mengurangi biaya infrastructur pengolahan data • Secara 'magic' menyelesaikan masalah-masalah/pengambilan keputusan dalam bisnis
  • 7.
    GIGO vs GIIO •Sistem Informasi yang baik umumnya dirancang untuk mencegah Garbage In Garbage Out. Informasi di filter dengan baik didepan sedemikian mungkin, untuk memastikan bahwa yang tersimpan adalah informasi inti saja. • Perusahaan minuman air dalam kemasan, menggunakan Sistem Informasi untuk mencatat, berapa botol yang di produksi tiap pabriknya, berapa yang didistribusikan per hari, siapa saja distributornya, dimana saja penjualannya, dsb. • Tetapi mereka tidak pernah tahu, kenapa pada saat-saat tertentu pembelian air minum kemasan naik di daerah tertentu (misalnya: ada konser, atau ada upacara/seremonial di lapangan). Karena mereka tidak pernah mencatat data- data pendukung, yang mungkin terlalu detail, yang mungkin dianggap tidak relevan secara langsung dengan produksi air mineral. • Bagaimana jika dari data 'sampah' bisa didapatkan insight (gargabe in insight out)? Lalu ada definisi dari data 'sampah' ini?
  • 8.
    GIGO vs GIIO(2) • Pada sebuah perusahaan e-commerce platform, tentu data utama yang harus mereka kelola adalah: data barang, data penjual, data pembeli, data pemesanan, data pengantaram, data pembayaran, dsb. • Bagaimana dengan data pemesanan yang batal (sudah dimasukkan ke keranjang tapi kemudian dihapus, atau tidak diteruskan ke checkout)? Atau aktifitas penjual memasukkan/menghapus/meng-edit item barang jualan mereka? (dan data-data lain yang sifatnya temporer) • Bagaimana dengan data: berapa lama user berada dalam web app tersebut, scroll/klik kemana, arah pergerakan mouse, dsb? • Bagaimana dengan data-data dari luar web app: aktifitas iklan di web/platform lain, aktifitas user di platform lain (socmed misalnya)? • Apakah itu adalah data sampah? Jika semua data itu dikumpulkan dan disimpan, apa gunanya, dan bagaimana kita bisa memanfaatkannya?
  • 9.
    Data Format vsData Source
  • 10.
    Business Intelligence vsMachine Learning • Banyak perusahaan sudah menerapkan BI dan membuat Data Warehouse untuk bisa melakukan analisa lebih dalam terhadap data yang tersimpan. “Apa yang terjadi?” “Customer kita lebih suka apa?” “Customer kita lebih mau beli item yang mana? Back during World War II, the RAF lost a lot of planes to German anti-aircraft fire. So they decided to armor them up. But where to put the armor? The obvious answer was to look at planes that returned from missions, count up all the bullet holes in various places, and then put extra armor in the areas that attracted the most fire.
  • 11.
    Business Intelligence vsMachine Learning (2) • Business Intelligence secara umum bertujuan untuk 'melihat kebelakang' tentang apa yang terjadi. Pesawat tempur yang kembali dari perang, di-analisa mendalam dan didapatkan kesimpulan bahwa musuh lebih sering melakukan tembakan ke arah sayap dan bagian tengah pesawat. Untuk itu kita perlu memperkuat lapisan pesawat pada bagian itu. • Jelas kita ketahui bahwa: pesawat yang tertembak di bagian mesin dan/atau bagian kabin, tidak pulang ke pangkalan dan jatuh di medan tempur. Dan data itu tidak mereka pertimbangkan. • Machine Learning membutuhkan data lebih dari itu. Bagaimana pola terbang pesawat yang berhasil kembali ke pangkalan? Kapan serangan terjadi, berapa banyak pasukan musuh pada saat terjadi serangan, pesawat terbang ke arah mana dan dalam posisi bagaimana, profil musuh, spek engine/pesawat, dsb, sehingga bisa didapatkan/dipelajari pola yang lebih tepat. Yang dibutuhkan mungkin bukan penguatan pada bagian2 pesawat, tetapi waktu/pola/cara serangannya yang perlu disesuaikan untuk menyelamatkan pesawat2 berikutnya agar tidak jatuh di pertempuran berikutnya.
  • 12.
    Contoh Pemakaian BigData secara umum • Product Recomendation • Realtime Prediction/Estimation • Sentiment Analysis (of product/marketing campaign) • Personalized Search Result/Services • Chat bot/ Virtual Assistance • Location pin-point • Pattern Recognition (customer behaviour, type of profitable customer)
  • 13.
    Apa itu Hadoop? •Hadoop adalah MR • Hadoop adalah Distributed File System (menggunakan MR) • Hadoop adalah ekosistem • Tools utk query data • Tools untuk menghubung antara SQL dan MR/HDFS • Tools untuk proses data secara stream • dsb • Hadoop dalam distro/appliance (Cloudera, Hortonworks, MapR, Pivotal)
  • 14.
  • 15.
    Map -Reduce Re duce Raw DataMapped & Shuffled Data Reducing Process Output
  • 16.
  • 17.
    Scale Up vsScale Out Problem • Paradigma proses data konvensional adalah centralized/ terkonsentrasi pada satu server atau cluster. Hal ini menyebabkan apabila kita ingin melakukan peningkatan kapasitas, harus dilakukan secara horizontal scaling atau sering disebut dengan scale-up
  • 18.
    Scale Up vsScale Out Problem (2) • Ketika konteks pembahasannya adalah data yang bertumbuh menjadi sangat besar dan datang terus menerus secara cepat dan sulit diprediksi, maka mekanisme scale-up menjadi terasa sangat berat dan membutuhkan biaya besar diawal. Karena scale-up harus melalui proses perencanaan yang sangat matang utk prediksi jangka menengah-panjang, dan biaya timbul di awal. Sulit juga untuk dilakukan scale-up berkali kali, karena akan menibulkan downtime yang akan merugikan/menghambat proses di perusahaan/organisasi. • Teknologi cloud computing dan distributed computing yang semakin canggih saat ini, memungkinkan kita untuk untuk melakukan peningkatan secara horisontal atau scale out. Pendekatan scale out mengadosi prinsip: berkembang secara bertahap sesuai kebutuhan tanpa harus mengubah/mematikan sistem utama. Prinsip itu juga yang dipakai pada Hadoop
  • 19.
    Scale Up vsScale Out Problem (3) • Hadoop mengadopsi prinsip Scale Out. Dimana data node bisa ditambahkan sewaktu-aktu saat dibutuhkan dan langsung join/berkoordinasi dengan data node yang lain melalui name node. • Ini yang menyebabkan Hadoop sangat populer dan ideal untuk dipakai sebagai proses/penyimpanan Big Data.
  • 20.
  • 21.
    Map-Reduce (latihan) • InstallHadoop (dibutuhkan install dan konfigurasi JAVA, download dan setting aplikasi Apache Hadoop). Untuk proses instalasi Hadoop bisa dilihat dari berbagai sumber, salah satunya: https://www.tutorialspoint.com/hadoop/hadoop_enviornment_setup.htm • Pastikan Hadoop sudah jalan. Bisa coba dengan ketik hadoop version • Untuk menjalankan contoh di hadoop (pada saat download dan extract, ada beberapa contoh bawaan). Contohnya: hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar grep input output 'dfs[a-z.]+' • Lebih jauh bisa dibaca pada beberapa sumber seperti https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
  • 22.
    Map-Reduce (latihan wordcountdengan Python) • Salah satu tutorial yang cukup baik untuk memahami cara kerja Hadoop MR/HDFS bisa dibaca pada link berikut ini: https://www.michael- noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/ • Contoh app mapper: Pada contoh ini, tugas mapper hanya menerima input berupa text, lalu memisahkan kan berdasarkan kata, lalu menampilkan dalam bentuk 2 kolom: <kata> 1
  • 23.
    Map-Reduce (latihan wordcountdengan Python) • Contoh app reducer: Pada contoh ini, tugas reducer adalah memproses data yang masuk (2 kolom: <kata> 1). Lalu selama kata berikutnya masih sama dengan sebelumnya, maka jumlahkan angkanya (1+1+1+1 dst), sampai semua baris data terproses. Hasilnya seperti ini:
  • 24.
    Map-Reduce (latihan wordcountdengan Python) mapper. py Hadoop Servers mapper. py mapper. py shuffle reducer. py reducer. py result HDFS
  • 25.
  • 26.
  • 28.
    HIVE • Apache HIVEadalah salah satu aplikasi dalam ekosistem Hadoop • HIVE membutuhkan Hadoop (HDFS dan Hadoop MapReduce) dan RDMS (untuk menyimpan meta data/metastore) untuk mengolah dan memproses data • HIVE menggunakan syntax mirip seperti SQL pada umumnya • Salah satu perbedaan utama HIVE dengan RDBMS/SQL DB adalah HIVE menggunakan “Schema on READ only”. Sehingga HIVE tidak ditujukan untuk update/insert data seperti pada SQL. • Perintah-perintah HIVE dapat di-eksekusi menggunakan command line maupun menggunakan Web UI • HIVE terdiri dari 3 komponen utama yaitu: client, service dan storage (lihat gambar berikutnya)
  • 29.
  • 30.
    HIVE • Client Berfungsi sebagaiantarmuka ke manusia/sistem. Perintah-perintah HIVE diketik dan dimulai dari sini. • Service Berfungsi sebagai proses dibelakang layar, yang akan mengeksekusi perintah-perintah yang masuk dari client, lalu menarik/meyimpan/ menghasilkan data output dari storage • Storage & Computing Tempat penyimpanan data dan proses terdistribusi. Data yang ada pada HDFS dipetakan menggunakan metadata yang tersimpan pada service. Contoh: Kita memiliki data transaksi harian dari banyak cabang perusahaan yang kemudian di export menjadi sebuah file besar dengan nama transaction-2020.csv. File ini lalu di upload ke HDFS agar terdistribusi dan dapat diproses secara paralel. Data ini dalam format comma separated value (structured) dengan kolom ID, trans_data, trans_amount, customer_id, dsb. Menggunakan HIVE, struktur data ini disimpan sebagai meta data, sehingga bisa dilakukan query seolah-olah file ini adalah tabel RDBMS biasa. Misalnya: “SELECT SUM(trans_amount) FROM transaction”
  • 31.
  • 32.
    HIVE • Urutan eksekusiperintah pada HIVE digambarkan pada gambar di atas. • Perintah yang masuk dari client, dikirimkan ke service, lalu perintah tersebut diterjemahkan menjadi script khusus, dan dilakukan kompilasi, lalu verifikasi kolom/data dengan meta data yang tersimpan di metastore, lalu akan dieksekusi oleh service. • Dalam eksekusinya, HIVE akan membaca file pada HDFS dan memproses pengolahan data-nya menggunakan MapReduce. • Ini berbeda dengan contoh MapReduce yang kita lakukan pada latihan sebelumnya. Dimana di latihan sebelumnya (tanpa HIVE), kita harus membuat dulu aplikasi mapper dan reducer, menggunakan bahasa pemrograman yang didukung, seperti JAVA atau Python.
  • 33.
    HIVE vs MapReduce (manual)
  • 34.
    Instalasi HIVE • HIVEmembutuhkan requirement yang hampir sama dengan Hadoop (membutuhkan JAVA dan konfigurasinya) • Kemudian kita perlu meng-install database server seperti: Apache Derby, MySQL, PostgreSQL, dsb. Database ini dibutuhkan HIVE untuk tempat menyimpan meta data (metastores) • Kemudian download dan extract HIVE • Lalu lakukan konfigurasi-konfigurasi yang diperlukan untuk menghubung HIVE dengan Hadoop dan database metastore • Jalankan service HIVE • Jalankan client HIVE, baik menggunakan command line (CLI) maupun dengan menggunakan tools berbasis web agar perintah HIVE bisa dijalankan lewat browser (dibutuhkan instalasi aplikasi tambahan, seperti Apache Ambari) • Salah satu sumber untuk melihat contoh langkah-langkah instalasi HIVE bisa dilihat pada link berikut ini https://www.guru99.com/installation-configuration-hive-mysql.html
  • 35.
    HIVE CLI • Jalankanaplikasi HIVE CLI dengan cara mengetik: 'hive' atau './bin/hive' • Lalu ketikkan perintah-perintah HIVE disitu Contoh:
  • 36.
  • 37.
    HIVE SQL (HIVEQL) •Berikut ini beberapa contoh membuat tabel baru dan mengolah data menggunakan perintah HIVE SQL
  • 38.
    HIVE SQL (HIVEQL) •Pada contoh diatas, dibuat sebuah tabel baru dengan nama employess_guru Create table employees_guru(Id INT, Name STRING, Age INT, Address STRING, Salary FLOAT, Department STRING) Row format delimited Fields terminated by ','; • Lalu untuk mengisi datanya ke tabel baru tersebut, diambil file CSV (bisa dari local file maupun file yang sudah tersimpan di HDFS). Contoh data local: load data local inpath '/home/hduser/Employees.txt' into TABLE employees_guru;
  • 39.
    HIVE SQL (HIVEQL) •HIVE juga bisa membaca file yang SEMISTRUCTURED misalnya dalam format XML. Contoh, buat tabel baru 'xmlsample': • File XML itu kemudian kita parsing (potong-potong) dan tampilkan, misalnya seperti ini:
  • 40.
    Quiz HIVE 1. Mengapadibutuhkan HIVE, bukan RDBMS biasa? 2. Apa kelebihan pengolahan data dengan HIVE dibandingkan RDBMS biasa? 3. Kalau sudah ada Hadoop (HDFS/MR) mengapa masih membutuhkan HIVE? 4. Dari sekian banyak contoh data yang bisa diproses menggunakan Hadoop, data seperti apa yang lebih cocok diolah menggunakan HIVE?
  • 41.
    Petunjuk Jawaban 1. Secaraumum memang terlihat pengolahan data di HIVE mirip/sama dengan RDBMS, sama-sama menggunakan perintah SQL. Namun HIVE memproses data secara terdistribusi dan eksekusinya bisa dilakukan secara paralel, sehingga bisa mengolah data yang sangat besar. Hal ini tidak bisa dilakukan di RDBMS biasa. 2. Sudah dijelaskan sekilas diatas. 3. HIVE adalah abstraksi dari dari Hadoop. Jika menggunakan Hadoop saja, eksekusi perintah harus menggunakan aplikasi yang kita bikin dengan bahasa pemrograman yang didukung seperti JAVA, Python, nodejs, dsb. 4. Lebih cocok untuk jenis data STRUCTURED maupun SEMI-STRUCTURED. Walaupun secara umum bisa juga dipakai untuk jenis data UNSTRUCTURED, tetapi dibutuhkan konversi agar dapat dikenali sebagai kolom dan baris
  • 42.
    Batch vs Stream Batch: •Data yang ada akan disimpan terlebih dahulu, • untuk dilakukan analisa di kemudian waktu yang lain. • Ukuran file-nya bisa diketahui/prediksi sebelumnya. • Stream: • Aplikasi stream menunggu data yang masuk, • untuk langsung di proses pada saat itu juga, tanpa disimpan disimpan. Hasilnya bisa dilakukan penyimpanan ke HDFS, atau ke Database, atau tidak disimpan (hanya di visualisasikan) • Ukuran datanya tidak bisa diketahui, dan tidak berujung.
  • 43.
  • 44.
    Merancang Data Lake •Sejauh ini kita sudah mengenal Hadoop, ekosistemnya dan kelebihan- kelebihan utamanya. • Dimana letak Hadoop dalam pipeline? • Contoh:
  • 45.
  • 46.
  • 47.
  • 48.
    Merancang Data Lake DataWarehouse: • Tipe datanya structured • Row & Collumns • Tujuan untuk Business Intelligence Data Lake: • All (structured, unstructured, semistructured) • Files (CSV, XML, JSON, TXT, MP3, jpg, etc) • Big Data Analytics (Machine Learning/Deep Learning)
  • 49.
    Merancang Data Lake 1.Identifikasi jenis data yang mau kita simpan dan sumber datanya. 2. Bagaimana kita mau memproses datanya? 1. Data yang akan diproses itu akan dilakukan secara berkala (bulanan, semester, tahunan, 3 bulanan, dsb) 2. Atau, mau diproses secara langsung saat itu juga (near realtime) 3. Jika dilakukan secara berkala, maka Hadoop bisa ditempatkan di depan (data ingestion), 4. sebaliknya kalau butuh pemrosesan data secara aktif terus menerus, maka Hadoop lebih tepat ditempatkan di belakang (lebih sebagai penyimpanan akhir)
  • 50.
    Contoh Data Warehousing Biasanyaproses ini dilakukan secara berkala atau disebut dengan Batch Processing
  • 51.
    Cotoh Batch Proc.Pada Hadoop Hadoop Log File, Excel, Word, CSV, etc Analisa menggunakan HIVE, MR, atau lainnya
  • 52.
    Cotoh Stream Proc.Pada Hadoop Hadoop Log File, Excel, Word, CSV, etc Spark (stream processing) Analisa lanjutan Stream app Python
  • 53.
    Analytics Tools &Visualization Selain ekosistem utama dari Hadoop, ada beberapa tools yang bisa dipakai untuk analisis dan visualisasi big data, antara lain: • Kibana (free open source) • Knime (free open source) • Tableau (ada versi trial) • Pentaho • Qlik (ada versi trial) • Grafana (Free open source) • dsb
  • 54.
  • 55.
  • 56.
  • 57.