Anda di halaman 1dari 28

Big Data Essentials with Hadoop

Mochamad Khoiron
Thursday, 2nd May 2019
Course Objectives
- Big Data
- Main Components of Apache Hadoop
- Apache Hive

Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY


Logistics
- Durasi Training
- Sholat Ashar
- Toilet
- Virtual Machines (Min. 4GB RAM)
- Cloudera QuickStart virtual machines (VMs) 5.12
What happens if…?
Big Data

Source: https://www.ibmbigdatahub.com/infographic/extracting-business-value-4-vs-big-data
Source: https://www.slideshare.net/awadallah/introducing-apache-hadoop-the-modern-data-operating-system-stanford-ee380
Core Modules

Image:https://sites.google.com/a/semantiques.com/espaces-semantiques/topics/data/big-data/how-to-adopt-big-data/big-data-tools/big-d
ata-platforms/hadoop/what-is-hadoop/hadoop-core-modules
HDFS

Image: https://hadoop.apache.org
MapReduce

Image: https://www.talend.com/resources/what-is-mapreduce/
Apache Hive

Image:https://www.edureka.co/blog/hive-tutorial/
Apache ZooKeeper

Image:https://www.oreilly.com/library/view/hadoop-essentials/9781784396688/ch02s05.html
File Formats
Beberapa hal yang diperhatikan saat memilih file format yang akan dipakai:
• Ingest pattern
• Tool yang akan dipakai
• Lifetime
• Storage and performance requirement
File Formats
Hive supports several file formats:

● Text File (default storage format)-> Dapat dibaca oleh semua program,
performance lambat
● SequenceFile -> Performance baik, tidak dapat dibaca oleh program selain
Java
● Avro Files -> Dapat dibaca oleh banyak program dan performance sangat
baik Pilihan terbaik untuk general-purpose storage di Hadoop
● RCFile dan ORC Files -> Performance tidak bagus dan tidak dapat di read
oleh banyak program
● Parquet -> Performance sangat baik, di support banyak program Pilihan
terbaik untuk columnar file format
Partition
Secara default semua data dalam table akan dimasukan ke dalam 1 directory.
Partition akan memisahkan data-data ke beberapa directory. Partition
mempercepat melakukan read ketika di filter menggunakan partitioned
column.
Another

Image:https://data-flair.training/
Hands-On Sessions
Prepare Cluster for Exercise
Buka VM yang telah disediakan dengan Oracle VirtualBox kemudian Start
Prepare Cluster for Exercise
Jalankan command ‘sudo /home/cloudera/cloudera-manager --force --express’ di terminal untuk
menjalankan Hadoop Cluster
Prepare Cluster for Exercise
Dengan menggunakan web browser, buka URL ‘http://quickstart.cloudera:7180’ kemudian login dengan
user ‘cloudera’ dan password ‘cloudera’
Prepare Cluster for Exercise
Scroll down ke bawah untuk mematikan Cloudera Management Service karena belum diperlukan.
Prepare Cluster for Exercise
Start HDFS, Hive, YARN, dan Zookeeper dengan menggunakan step di bawah. Tunggu hingga
muncul icon ‘?’ pada service yang di-start.
Exercise 1 – Exploring HDFS
1. Buka terminal
2. Jalankan command ‘hdfs dfs -ls /’ untuk melihat isi dari root directory HDFS
3. Jalankan command ‘vim exercise1’, kemudian tekan tombol ‘i’ dan masukkan
random character
4. Jalankan command ‘hdfs dfs -put exercise1 exercise1’. Command tersebut akan
melakukan copy file exercise1 dari local machine ke HDFS dengan nama file yang
sama
5. Kemudian jalankan command ‘hdfs dfs -ls /user/cloudera/’. Maka file exercise1
akan terlihat disana
6. Jalankan command ‘hdfs dfs -cat /user/cloudera/exercise1’ untuk melihat isi dari
file tersebut
7. Jalankan command ‘hdfs dfs -rm /user/cloudera/exercise1’ untuk menghapus file
tersebut
8. Default nya, file yang terhapus akan dipindahkan ke trash terlebih dahulu. Jalankan
command ‘hdfs dfs -ls /user/cloudera/.Trash/Current/user/cloudera/’ untuk
mengecek isi dari trash milik user cloudera
Exercise 2 – Exploring YARN & MapReduce
1. Kita akan generate random data sebesar 1GB (satuan number of 100-byte rows)
menggunakan Map dan YARN. Jalankan command berikut pada terminal. Tunggu
sampai proses selesai.
time yarn jar \
/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar \
teragen -Dmapred.map.tasks=4 \
10000000 TERAGEN
2. Kemudian kita akan melakukan sort terhadap 1GB data yang sudah di-generate
menggunakan MapReduce dan YARN. Jalankan command berikut pada terminal.
Tunggu sampai proses selesai.
time yarn jar \
/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar \
terasort -Dmapred.map.tasks=4 \
TERAGEN TERASORT
Exercise 2 – Exploring YARN & MapReduce
1. Jalankan command ‘hdfs dfs -ls /user/cloudera/’ untuk melihat hasil dari
kedua job tersebut.
2. Jalankan command ‘hdfs dfs -ls -h /user/cloudera/TERAGEN’ untuk melihat
isi dari hasil TERAGEN.
3. Jalankan command ‘hdfs dfs -ls -h /user/cloudera/TERASORT’ untuk
melihat isi dari hasil TERASORT.
4. Jalankan command ‘yarn application -list -appStates FINISHED | grep
Tera’ untuk melihat applicationID dari job yang sudah dijalankan.
5. Jalankan command ‘yarn logs -applicationId [applicationID]’ untuk melihat
log dari job yang sudah dijalankan.
Exercise 3 – Hive
1. Online alternative -> http://demo.gethue.com/hue/
2. Ketik ‘hive’ di terminal.
3. Jalankan query di bawah ini:
a. CREATE DATABASE better;
b. USE better;
c. CREATE TABLE client (cid int, name String,balance int);
d. INSERT INTO client values (1,"Client1", 20);
e. INSERT INTO client values (2,"Client2", 30);
f. INSERT INTO client values (3,"Client3", 10);
4. ‘DESCRIBE FORMATTED client;’
5. Membuat tabel dengan format parquet ‘CREATE TABLE client_parquet STORED AS PARQUET AS
SELECT * FROM client;’
6. Membuat tabel dengan partition ‘CREATE TABLE client_partitioned (cid int, name String)
PARTITIONED BY (balance int) ROW FORMAT DELIMITED STORED AS TEXTFILE;’
7. Add the partition before insert: ‘ALTER TABLE client_partitioned ADD PARTITION( balance= 20 );’
8. INSERT INTO client_partitioned PARTITION( balance= 20 ) SELECT cid, name from client WHERE
balance=20;
9. ALTER TABLE client_partitioned ADD PARTITION( balance= 30 );
10. INSERT INTO client_partitioned PARTITION( balance= 30 ) SELECT cid, name from client WHERE
balance=30;
Exercise 3 – Hive
1. Silakan execute dua query di bawah ini untuk melihat perbedaan performa tabel:
a. SELECT * FROM client WHERE balance=20;
b. SELECT * FROM client_partitioned WHERE balance=20;
2. Keluar dari beeline dengan command ‘exit;’
3. Untuk melihat file tabel yang telah kita buat, silakan jalankan command berikut:
a. hdfs dfs -ls /user/hive/warehouse/better.db/
4. Kita akan melihat susunan file tabel menggunakan command berikut:
a. hdfs dfs -cat /user/hive/warehouse/better.db/client/000000_0
b. hdfs dfs -cat /user/hive/warehouse/better.db/client_parquet/000000_0
c. hdfs dfs -ls /user/hive/warehouse/better.db/client_partitioned/
d. hdfs dfs -cat /user/hive/warehouse/better.db/client_partitioned/balance=20/000000_0
Sources of inspiration:
- https://hadoop.apache.org/
- https://medium.com/@markobonaci/the-history-of-hadoop-68984a11704
- Learn MapReduce with Playing Cards
https://www.youtube.com/watch?v=bcjSe0xCHbE
- What is Hadoop?: SQL Comparison
https://www.youtube.com/watch?v=MfF750YVDxM
- https://mahadisiregar.com/bigdata/lahirnya-hadoop/
- https://medium.com/data-engineering-bootcamp/sejarah-big-data-32f47b7846ab
- https://data-flair.training/blogs/hadoop-vs-spark-vs-flink/
- https://medium.com/ymedialabs-innovation/hadoop-performance-evaluation-by-be
nchmarking-and-stress-testing-with-terasort-and-testdfsio-444b22c77db2
- https://cwiki.apache.org/confluence/display/Hive/FileFormats
- https://hive.apache.org/
Thank You
Let's Keep in Touch

mochamad.khoiron@jatis.com

cak.khoiron@gmail.com

@cakkhoiron

Anda mungkin juga menyukai