ตารางแบบ orc บน hadoop-hive (sql-like) สําหรับ ... ·...

26
ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลขอมูล Big Data วิทยากร : นายกฤษณวรา รัตนโอภาส นางสาวสุรีรัตน แกวคีรี มหาวิทยาลัยราชภัฏสงขลา 1

Upload: others

Post on 18-Feb-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลขอมลู Big Data

วิทยากร : นายกฤษณวรา รัตนโอภาส

นางสาวสุรีรัตน แกวคีรีมหาวิทยาลัยราชภัฏสงขลา

1

Page 2: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

Outline

1. การสรางขอมูล Big Data แบบ RDBMS

2. Hadoop สําหรับใช ประมวลผล Big Data แบบ RDBMS

3. การออกแบบและทดสอบ

4. ผลการทดสอบ

2

Page 3: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

Outline

1. การสรางขอมูล Big Data แบบ RDBMS

2. Hadoop สําหรับใช ประมวลผล Big Data แบบ RDBMS

3. การออกแบบและทดสอบ

4. ผลการทดสอบ

3

Page 4: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

1. การสรางขอมูล Big Data แบบ RDBMS

• ความตองการประมวลผลขอมูลขนาดใหญที่ > 1,000 ลาน

• ฐานขอมูล RDBMS สําหรับ Big Data ลักษณะ Mysql-MariaDB บน Hive-warehouse

4

Page 5: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

Outline

1. การสรางขอมูล Big Data แบบ RDBMS

2. Hadoop สําหรับใช ประมวลผล Big Data แบบ RDBMS

3. การออกแบบและทดสอบ

4. ผลการทดสอบ

5

Page 6: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

2. Hadoop สําหรับใช ประมวลผล Big Data แบบ RDBMS

2.1 Hadoop ecosystem

2.2 Hadoop Hive

2.3 Hive-CLI

2.4 Hiveserver2

2.5 ORC-file format

6

Page 7: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

2.1 Hadoop ecosystem

• Hadoop Ecosystem ทํางานบน HDFS Cluster ที่ใหบริการดวย Hbase, Hive, R-connectors, Mahout, Pig และ Oozie

7

องคประกอบของ Hadoop Ecosystem

Page 8: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

2.1 Hadoop ecosystem(ตอ)

• HDFS Cluster ป ร ะ กอบด ว ย Master Node แล ะกลุ ม Cluster ของ Data Node เพื่อสราง Cloud Storage ของ HDFS และมี YARN Map/Reduce Version 2 อยูเบื้องหลังการทํางาน

8

องคประกอบของ Hadoop Ecosystem

Page 9: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

2.2 Hadoop Hive

• Hive 1.2.1 และปจจุบันรุน 2.1.0 โดย HiveQL คลายคลึงกับ SQL ทั่วไป เพื่อใหสามารถรองรับการประมวลผลขอมูลเชิงสัมพันธที่มีความตองการใชงานอยางตอเนื่อง

9

Page 10: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

2.3 Hive-CLI

• Hive console ออกแบบมาเพื่อใหผูใชสามารถเขาถึงฐานขอมูล Hive datawarehouse ที่ เครื่อง Master ดวยรูปแบบ command line ของภาษา SQL

10

รูปแบบของการใชงาน Hive console

Page 11: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

2.4 Hiveserver2

• นอกเหนือจากการใหใชงานผาน Hive-CLI โปรแกรม Hive มีสวนเสริมคือ Hiveserver2 ที่มีโครงสรางการบริการ

11

การบริการดวย Hiveserver2

Page 12: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

2.5 ORC-file format

• ดวยการทํางานแบบ Cluster จึงมีการพัฒนารูปแบบการเก็บขอมูลเพื่อเสริมประสิทธิภาพใหกับ Hadoop-Hive Cluster โดยมี Text RCFile Parquet และ ORCFile ที่มีอัตราบีบอัดที่แตกตางกัน

12

องคประกอบของ Hadoop Ecosystem

Page 13: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

2.5 ORC-file format (ตอ)

• ตัวอยางเนื้อที่เก็บไฟลของตารางขอมูลแบบ ORC ดวยการบีบอัดของ NONE, ZLIB and SNAPPY ตามจํานวนขอมูล

13

- 2,000 4,000 6,000 8,000 10,000 12,000

50

150

250

350

Size (MBytes)

Row

(m

illi

on r

ecor

ds)

ORC(SNAPPY) ORC(ZLIB) ORC(NONE)

ขนาดไฟลของฐานขอมูลตามประเภทการบีบอัด

Page 14: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

Outline

1. การสรางขอมูล Big Data แบบ RDBMS

2. Hadoop สําหรับใช ประมวลผล Big Data แบบ RDBMS

3. การออกแบบและทดสอบ

4. ผลการทดสอบ

14

Page 15: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

3. การออกแบบและทดสอบ

• โครงสรางทดสอบ Hadoop-Hive cluster architecture

• การทดสอบดวยภาระงาน bigdata’s RDBMS

• ชุดคําสั่ง Queries

15

Page 16: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

โครงสรางทดสอบ Hadoop-Hive cluster architecture

Host OS: KVM platforms run on CentOS 7.2 64 bits. • Master Node employs 3 vCPU and 3 GB RAM• Data Node involves 3 virtual machine on each Host

with 1 vCPU and 1.5 GB RAM

16Figure 4. Hadoop-Hive cluster Architecture

Intel i7-2600 Quad core @ 3.40 GHz which support Intel-VT, 4 GB DDR3, 1.0 TB SATA disks and RTL8111 Gigabit Ethernet

Page 17: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

การทดสอบดวยภาระงาน bigdata’s RDBMS

Bigdata’s RDBMS has database schema: • station code • station name• record date as “datefield” • precipitation weather as “prcp” • maximum temperature as “tmax”• minimum temperature as “tmin”

17

Field stationcode(Primary Key)

station datefield prcp tmax tmin

Type STRING STRING DATE-TIME DOUBLE DOUBLE DOUBLE

Table 1 weather station table schema

Page 18: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

ชุดคําสั่ง Queries

Case 1: หาคาสูงสุดของ “tmax” สรุปแยกแตละวัน“SELECT station, datefield, MAX(tmax) FROM weather_orc GROUP BY station, datefield”;Case 2: หาคาเฉลี่ยของ “tmax” แยกตามสถานีรายป“SELECT station, cast(SUBSTR(datefield,1,4) as INT), AVG(tmax) FROM weather_orc_tmp GROUP BY station, cast(SUBSTR(datefield,1,4) as INT); ”Case 3: นําผลลัพธทั้ง 2 ตารางมาทําการ JOIN

18

Page 19: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

Outline

1. การสรางขอมูล Big Data แบบ RDBMS

2. Hadoop สําหรับใช ประมวลผล Big Data แบบ RDBMS

3. การออกแบบและทดสอบ

4. ผลการทดสอบ

19

Page 20: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

4. ผลการทดสอบ

• Experiment I (Query case I)

• Experiment II (Query case II)

• Experiment III (Query case III)

20

Page 21: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

Experiment I (Query case I)

ผลลัพธการประมวลผลเปนวินาทีของจํานวนขอมูล 50, 150, 250 and 350 ลานชุด ระหวางจํานวนโหนด 3 และ 9

21Figure 5. Experiment I on Case 1 query suite

Map/Reduce increasing follow-up million table rows

-

1,000

2,000

3,000

4,000

5,000

6,000

3-node(ZLIB) 3-node(SNAPPY) 6-node(ZLIB) 6-node(SNAPPY) 9-node(ZLIB) 9-node(SNAPPY)

Exe

cuti

on

tim

e (s

ec)

Number of data node / Type of Compress

CASE 01-50-million CASE 01-150-million CASE 01-250-million CASE 01-350-million

3-node(ZLIB) 3-node(SNAPPY) 6-node(ZLIB) 6-node(SNAPPY) 9-node(ZLIB) 9-node(SNAPPY)50-m 150-m 50-m 150-m 150-m 250-m 150-m 250-m 250-m 350-m 250-m 350-mM/R M/R M/R M/R M/R M/R M/R M/R M/R M/R M/R M/R1/1 2/3 2/3 4/5 2/3 4/5 4/5 7/8 4/5 7/7 7/8 11/11

Page 22: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

Experiment II (Query case II)

ผลลัพธการประมวลผลเปนวินาทีของจํานวนขอมูล 50, 150, 250 and 350 ลานชุด ระหวางจํานวนโหนด 3 และ 9

22Figure 6. Experiment II on Case 2 query suite

-

50

100

150

200

250

300

350

400

450

3-node(ZLIB) 3-node(SNAPPY) 6-node(ZLIB) 6-node(SNAPPY) 9-node(ZLIB) 9-node(SNAPPY)

Ex

ecu

tio

n t

ime

(sec

)

Number of data node / Type of Compress

CASE 02-50-million CASE 02-150-million CASE 02-250-million CASE 02-350-million

3-node(ZLIB) 3-node(SNAPPY) 6-node(ZLIB) 6-node(SNAPPY) 9-node(ZLIB) 9-node(SNAPPY)

50-m 150-m 50-m 150-m 150-m 250-m 150-m 250-m 250-m 350-m 250-m 350-m

M/R M/R M/R M/R M/R M/R M/R M/R M/R M/R M/R M/R

1/1 2/1 2/1 4/1 2/1 4/1 4/1 7/1 4/1 7/2 7/1 11/2

Map/Reduce increasing follow-up million table rows

Page 23: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

Experiment III (Query case III)

ผลลัพธในรูปแบบเดียวกับกราฟที่ 1 และ 2

23Figure 7. Experiment III on Case 3 query suite

-

50

100

150

200

250

300

350

3-node(ZLIB) 3-node(SNAPPY) 6-node(ZLIB) 6-node(SNAPPY) 9-node(ZLIB) 9-node(SNAPPY)

Ex

ecu

tio

n t

ime

(sec

)

Number of data node / Type of Compress

CASE 03-50-million CASE 03-150-million CASE 03-250-million CASE 03-350-million

3-node(ZLIB) 3-node(SNAPPY) 6-node(ZLIB) 6-node(SNAPPY) 9-node(ZLIB) 9-node(SNAPPY)50-m 150-m 50-m 150-m 150-m 250-m 150-m 250-m 250-m 350-m 250-m 350-mM/R M/R M/R M/R M/R M/R M/R M/R M/R M/R M/R M/R1/0 2/1 2/1 4/1 2/1 4/2 4/1 7/2 4/2 11/1 7/2 11/1

Map/Reduce increasing follow-up million table rows

Page 24: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

คุณกฤษณวรา รัตนโอภาส

[email protected]

คุณสุรีรัตน แกวคีรี

[email protected]

24

Page 25: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

โปรแกรม Squirrel SQL

• โปรแกรมท่ีเชื่อมตอจาก Client เขาสู Hive ผาน JDBC Driver

• ทํางานผาน Hiverserver2 เชนเดียวกับ beeline

25

รูปแบบการเชื่อมตอดวย Squirrel SQL

Page 26: ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับ ... · 2017-01-19 · ตารางแบบ ORC บน Hadoop-Hive (SQL-like) สําหรับประมวลผลข

Any Questions

26