Download as pdf or txt
Download as pdf or txt
You are on page 1of 94

MÔN: XỬ LÝ DỮ LIỆU LỚN

BIG DATA PROCESSING (2:1:6)

1
TÍNH ĐIỂM
10%: Điểm danh + Kiểm tra giấy
40%: Cài đặt + chạy ví dụ trên Spark
50%: Bài báo cáo (WORD + SLIDE + DEMO)

2
NỘI DUNG CHƯƠNG TRÌNH HỌC

CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN


CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
CHƯƠNG 3. HBASE
CHƯƠNG 4. HIVE
CHƯƠNG 5. SPARK

3
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN

4
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
1.BIG DATA
Big data là một thuật ngữ chỉ bộ dữ liệu lớn hoặc phức tạp mà
các phương pháp truyền thống không đủ các ứng dụng để xử lý
dữ liệu này.

Dữ liệu lớn là những nguồn thông tin có đặc điểm chung khối
lượng lớn, tốc độ nhanh và dữ liệu định dạng dưới nhiều hình
thức khác nhau, do đó muốn khai thác được đòi hỏi phải có
hình thức xử lý mới để đưa ra quyết định, khám phá và tối ưu
hóa quy trình.

5
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
1.BIG DATA

6
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
1.BIG DATA
Ví dụ
Năm 2008, hadoop trở thành hệ thống nhanh nhất để sắp xếp (sort)
1 terabyte dữ liệu, khi mất 209 giây chạy trên cluster gồm 910 nodes

Đến tháng 11 năm 2008, google thông báo hệ thống mapreduce


của họ chỉ cần 68 giây để sắp xếp 1 terabyte dữ liệu

Đến tháng 5/2009 yahoo sử dụng hadoop chỉ cần 62 giây để làm
việc tương tự.

7
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
1.BIG DATA
a. Nguồn hình thành dữ liệu
₋ Dữ liệu hành chính
₋ Dữ liệu từ hoạt động thương mại
₋ Dữ liệu từ các thiết bị cảm biến
₋ Dữ liệu từ các thiết bị theo dõi
₋ Dữ liệu từ các hành vi, ví dụ như tìm kiếm trực tuyến
₋ Dữ liệu từ các thông tin về ý kiến

8
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
1.BIG DATA
b. Đặc trưng 5V của dữ liệu lớn

Khối lượng dữ liệu (Volume)


Tốc độ (Velocity)
Đa dạng (Variety)
Độ tin cậy/chính xác (Veracity)
Giá trị (Value)

9
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
1.BIG DATA
b. Đặc trưng 5V của dữ liệu lớn

Khối lượng dữ liệu (Volume):


Đây là đặc điểm tiêu biểu nhất của dữ liệu lớn, khối lượng dữ liệu rất lớn.

Kích cỡ của Big data đang từng ngày tăng lên, và tính đến năm 2012
thì nó có thể nằm trong khoảng vài chục terabyte cho đến nhiều
petabyte /tập hợp dữ liệu.

Với dữ liệu lớn chúng ta sẽ sử dụng công nghệ “đám mây” mới đáp ứng
khả năng lưu trữ được dữ liệu lớn.

10
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
1.BIG DATA
b. Đặc trưng 5V của dữ liệu lớn

Tốc độ (Velocity)
Khối lượng dữ liệu gia tăng rất nhanh.

Ví dụ : mỗi giây có tới 72.9 triệu các yêu cầu truy cập tìm kiếm trên web
bán hàng của Amazon.

Xử lý dữ liệu nhanh ở mức thời gian thực (real-time).

Ví dụ : Các ứng dụng phổ biến trên lĩnh vực Internet, Tài chính, Ngân
hàng, Hàng không, Quân sự, Y tế – Sức khỏe.

11
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
1.BIG DATA
b. Đặc trưng 5V của dữ liệu lớn

Đa dạng (Variety)
80% dữ liệu được sinh ra là phi cấu trúc (tài liệu, blog, hình ảnh, vi deo,
bài hát, dữ liệu từ thiết bị cảm biến vật lý, thiết bị chăm sóc sức khỏe…).

Big data cho phép liên kết và phân tích nhiều dạng dữ liệu khác nhau.

12
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
1.BIG DATA
b. Đặc trưng 5V của dữ liệu lớn

Độ tin cậy/chính xác (Veracity)


Một trong những tính chất phức tạp nhất của Dữ liệu lớn là độ tin
cậy/chính xác của dữ liệu.

Bài toán phân tích và loại bỏ dữ liệu thiếu chính xác và nhiễu đang là
tính chất quan trọng của Big data.

13
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
1.BIG DATA
b. Đặc trưng 5V của dữ liệu lớn

Giá trị (Value)


Giá trị là đặc điểm quan trọng nhất của dữ liệu lớn.

Kết quả dự báo chính xác thể hiện rõ nét nhất về giá trị của dữ liệu lớn
mang lại.

Ví dụ, từ khối dữ liệu phát sinh trong quá trình khám, chữa bệnh sẽ giúp
dự báo về sức khỏe được chính xác hơn, sẽ giảm được chi phí điều trị
và các chi phí liên quan đến y tế.

14
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
1.BIG DATA
c. Sự khác biệt giữa dữ liệu lớn với dữ liệu truyền thống
Dữ liệu đa dạng hơn
Lưu trữ dữ liệu lớn hơn
Truy vấn dữ liệu nhanh hơn
Độ chính xác cao hơn

15
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
2. BIG DATA- TƯƠNG LAI
Sử dụng dữ liệu lớn sẽ trở thành phổ biến hơn
Các công cụ, dịch vụ dữ liệu lớn sẽ phát triển
Những rủi ro, tính riêng tư trên dữ liệu lớn

16
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
3. CÔNG CỤ XỮ LÝ DỮ LIỆU LỚN

17
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
4. GIỚI THIỆU VỀ MAPREDUCE

18
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
4. GIỚI THIỆU VỀ MAPREDUCE
MapReduce đƣợc thiết kế bởi Google nhƣ một mô hình lập trình xử lý tập
dữ liệu lớn song song, thuật toán đƣợc phân tán trên 1 cụm.
Bao gồm 2 giai đoạn sau:
1. Giai đoạn Map
2. Giai đoạn Reduce

19
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
4. GIỚI THIỆU VỀ MAPREDUCE
Ưu điểm của Hadoop
Hadoop framework giúp phân phối dữ liệu và công việc xuyên suốt
các máy trạm nhờ vào cơ chế xử lý song song của các lõi CPU.
Hadoop đƣợc thiết kế phát hiện và xử lý các lỗi ở lớp ứng dụng

Linh hoạt trong việc thêm và gỡ bỏ từ các cluster, không bị ngắt


quãng.

Khả năng tƣơng thích trên tất cả các nền tảng do đƣợc phát triển
trên java.
20
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
5. NOSQL DATABASE

21
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
5. NOSQL DATABASE
Bigdata cần những database có khả năng lưu trữ dữ liệu với lượng cực lớn,
truy vấn dữ liệu với tốc độ cao mà không đòi hỏi quá nhiều về năng lực phần
cứng cũng như tài nguyên hệ thống và tăng khả năng chịu lỗi.

Đây là những vấn đề mà các relational database không thể giải quyết được.

22
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
5. NOSQL DATABASE
Đặc điểm của NoSQL
High Scalability: Gần như không có một giới hạn cho dữ liệu và người dùng
trên hệ thống.

High Availability: Do chấp nhận sự trùng lặp trong lưu trữ nên nếu một node
(commodity machine) nào đó bị chết cũng không ảnh hưởng tới toàn bộ hệ
thống.

Atomicity: Độc lập data state trong các operation.

23
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
5. NOSQL DATABASE
Đặc điểm của NoSQL
Atomicity: Độc lập data state trong các operation.

Durability: dữ liệu có thể tồn tại trong bộ nhớ máy tính nhưng đồng thời cũng
được lưu trữ lại đĩa cứng.

Query Flexibility: Multi-Gets, Range queries (load một tập giá trị dựa vào một
dãy các khóa).

24
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
5. NOSQL DATABASE
Đặc điểm của NoSQL
Deployment Flexibility: việc bổ sung thêm/loại bỏ các node, hệ thống sẽ tự
động nhận biết để lưu trữ mà không cần phải can thiệp bằng tay. Hệ thống
cũng không đòi hỏi cấu hình phần cứng mạnh, đồng nhất.

Modeling flexibility: Key-Value pairs, Hierarchical data (dữ liệu cấu trúc),
Graphs.

25
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
BÀI TẬP
1. Trình bày các đặt trưng của dữ liệu lớn.

2. Phân biệt mô hình dữ liệu truyền thống và dữ liệu lớn.

3. Tìm hiểu mô hình MAPREDUCE cho bài toán WordCount.

26
CHƯƠNG 1. TỔNG QUAN VỀ DỮ LIỆU LỚN
BÀI TẬP
Tìm hiểu mô hình MAPREDUCE cho bài toán WordCount

27
CHƯƠNG 2. HADOOP, HDFS VÀ
MAPREDUCE
28
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
1. Giới thiệu về Hadoop
– Hadoop là một framework giúp phát triển các ứng dụng phân tán
– Hadoop cung cấp một phương tiện lưu trữ dữ liệu phân tán trên
nhiều node, hỗ trợ tối ưu hoá lưu lượng mạng, đó là HDFS
– Đa nền tảng

29
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
1. Giới thiệu về Hadoop
Ưu điểm của Apache Hadoop
– Apache Hadoop là một framework cho phép các xử lý phân tán
các tập dữ liệu lớn trên các cụm nhiều máy tính.
– Apache Hadoop thiết kế để tự nó phát hiện và xử lý lỗi ở tầng ứng
dụng

30
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
2. Các thành phần của Hadoop
Apache MapReduce bao gồm các thành phần:

1. Hadoop Common: Đây là các thư viện của Java để các module khác sử dụng.
Những thư viện này cung cấp hệ thống file và lớp OS trừu tượng, đồng thời chứa các
mã lệnh Java để khởi động Hadoop

2. Hadoop YARN: Đây là framework để quản lý tiến trình và tài nguyên của các cluster

3. Hadoop Distributed File System (HDFS): là một hệ thống file phân tán cung cấp truy
cập băng thông cao vào dữ liệu ứng dụng.

4. Hadoop MapReduce: Là một mô hình phần mềm cho việc xử lý phân tán các tập dữ
liệu lớn trên ác cụm máy tính.

31
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
2. Các thành phần của Hadoop

32
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
3. Cài đặt Hadoop cluter
- Ubuntu 18.04

- Java JDK

- Apache Hadoop

33
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
3. Cài đặt Hadoop cluter
Hadoop là kiến trúc master-slave bao gồm:
NameNode: đóng vai trò là master của hệ thống HDFS, quản lý các
meta-data của hệ thống HDFS

DataNode: chứa các block dữ liệu thực sự của các file trên HDFS, chịu
trách nhiệm đáp ứng các yêu cầu đọc/ghi dữ liệu từ client.

SecondaryNameNode: duy trì một bản sao của meta-data trên


NameNode và bản sao này sẽ được dùng để phục hồi lại NameNode
nếu NameNode bị hư hỏng.

34
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
4. Hệ thống tập tin phân tán
Hệ thống tệp tin hỗ trợ việc truy cập vào các tập tin từ nhiều máy tính (host)
chia sẻ dữ liệu với nhau thông qua một mạng máy tính.

Hệ thống cho phép nhiều người dùng trên nhiều máy khác nhau có thể
chia sẻ các tập tin và các tài nguyên lưu trữ.

Hadoop Distributed File System (HDFS)

35
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
4. Hệ thống tập tin phân tán
Hadoop Distributed File System (HDFS)
Lỗi về phần cứng sẽ thường xuyên xảy ra
Kích thước file sẽ lớn hơn so với các chuẩn truyền thống
Khả năng phục hồi dữ liệu

36
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
4. Hadoop Distributed File System (HDFS)
Sơ đồ sau miêu tả rõ quá
trình client đọc một file
trên HDFS

37
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
4. Hadoop Distributed File System (HDFS)
Quá trình tạo và ghi dữ
liệu lên file trên HDFS

38
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
4. Hadoop Distributed File System (HDFS)
Block size

Block size của đĩa cứng sẽ quy định lượng dữ liệu nhỏ nhất mà ta có thể
đọc/ghi lên đĩa.

HDFS cũng chia file ra thành các block, mỗi block này sẽ được lưu trữ trên

Datanode thành một file riêng biệt trên hệ thống file local của nó. Đây cũng
sẽ là đơn vị trao đổi dữ liệu nhỏ nhất giữa HDFS và client của nó.

Block size mặc định của HDFS là 64MB

39
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
4. Hadoop Distributed File System (HDFS)
Metadata

NameNode lưu trữ ba loại metadata chính: file system namespace, thông
tin để ánh xạ file thành các block và thông tin nơi lưu trữ (địa chỉ/tên
DataNode) của các block

40
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
4. Hadoop Distributed File System (HDFS)
Vị trí lưu các block

NameNode sẽ không lưu trữ bền vững thông tin về nơi lưu trữ các bản sao
của các block.

Nó chỉ hỏi các DataNode các thông tin đó lúc DataNode khởi động.
NameNode sẽ giữ cho thông tin nơi lưu trữ các block đươc cập nhật.
NameNode điều khiển tất cả các thao tác sắp đặt các bản sao của các
block lên các. DataNode và quản lý tình trạng các DataNode bằng thông
điệp HearBeat

41
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
4. Hadoop Distributed File System (HDFS)
Nhật ký thao tác

EditLog chứa tất cả nhật ký các thao tác làm thay đổi tình trạng của
metadata.

EditLog được lưu trữ như một file trên hệ thống file cục bộ của NameNode.

EditLog sẽ được dùng trong quá trình phục hồi hệ thống với
SecondaryNameNode

42
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
4. Hadoop Distributed File System (HDFS)
Khả năng chịu lỗi và chẩn đoán lỗi của HDFS

Khả năng phục hồi nhanh chóng giữa Namenode và Datanode.

Nhân bản các block: Người dùng (hoặc ứng dụng) có thể gán các chỉ số
mức độ nhân bản (replication level).

Toàn vẹn dữ liệu trên HDFS: HDSF đảm bảo tính toàn vẹn của dữ liệu bằng
cách thực hiện tạo checksum5 tất cả dữ liệu ghi lên nó và sẽ kiểm tra lại
checksum mỗi khi đọc dữ liệu

43
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
4. Hadoop Distributed File System (HDFS)
Các giao diện tương tác
Giao diện command line: hdfs://<namenode>/<path>

Giao diện java (API)

Giao diện web: http://<namenode>:50070/

44
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
4. Hadoop Distributed File System (HDFS)
Quản trị HDFS

Permission: HDFS có một mô hình phân quyền tập tin. Có ba loại quyền truy
cập: quyền được phép đọc (r), quyền ghi (w), và quyền thực thi (x).

Khi truy cập vào HDFS, client đươc nhận diện người dùng (user name) và
nhóm (group) của tiến trình trên client.

Trên HDFS còn có một người dùng đặc biệt, đó là super-user. Đây chính
là user đại diện cho các tiến trình trên NameNode. User này có quyền
hạn toàn cục và sẽ không bị kiểm tra quyền truy cập

45
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
4. Hadoop Distributed File System (HDFS)
Quản trị HDFS

Quản lý hạn ngạch (quotas): HDFS cho phép người quản trị có thể thiết lập
hạn ngạch (quotas) cho số lượng tên (file/thư mục) sử dụng và dung lượng
sử dụng cho các thư mục

46
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
4. HDFS
Tạo thư mục trong HDFS
hdfs dfs -mkdir <path>

Ví dụ:

hdfs dfs -mkdir test

47
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
4. HDFS
Xem nội dung thư mục trong HDFS
hdfs dfs –ls <path>

Ví dụ:

hdfs dfs -ls /test


hdfs dfs -ls /user/test

48
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
4. HDFS
Copy một hoặc nhiều file vào HDFS
hdfs dfs -put <local_path> … <HDFS_path>

Ví dụ:

hdfs dfs -put test.txt test

49
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
4. HDFS
Download file trong HDFS về local
hdfs dfs -get <HDFS_path> <local_path>

Ví dụ:

hdfs dfs -get test/test.txt /root/lediep

50
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
4. HDFS
Xóa file/thư mục trong HDFS
hdfs dfs -rm -r -f <args>

Ví dụ:

hdfs dfs -rm -r -f test

51
CHƯƠNG 2. HADOOP, HDFS VÀ MAPREDUCE
2. Các thành phần của Hadoop
Nguyên tắc hoạt động của Hadoop MapReduce
Map: Đầu vào là nút chủ (master node)
và sau đó chia nhỏ nó ra thành các vấn
đề bé hơn. Gọi là các split 0, split 1, split 2

Reduce: Từ các đầu ra trung gian


sẽ tổng hợp lại để đưa ra các kết
quả cuối cùng cho vấn đề master.

52
CHƯƠNG 3. HBASE
53
CHƯƠNG 3. HBASE
1. Giới thiệu
₋ HBase là 1 hệ cơ sở dữ liệu mã nguồn mở được xây dựng dựa trên
Google BigTable
₋ HBase cung cấp khả năng lưu trữ dữ liệu lớn lên tới hàng tỷ dòng, hàng
triệu cột khác nhau cũng như hàng petabytes dung lượng
₋ Hbase là 1 NoSQL điển hình
₋ HBase đang là 1 trong các top-level project của tổ chức Apache
Software Foundation và được cung cấp dưới giấy phép: Apache
Lisence 2.0 70

54
CHƯƠNG 3. HBASE
1. Giới thiệu
a. Tính năng
₋ Truy vấn dữ liệu nhanh, thời gian thực
₋ Độ ổn định cao, lưu trữ dữ liệu lớn
₋ Cung cấp giao thức REST

55
CHƯƠNG 3. HBASE
1. Giới thiệu
a. Tính năng
₋ Nhất quán cơ chế đọc và ghi dữ liệu dựa trên Hadoop
₋ Nhiều extension hỗ trợ Hbase cho nhiều ngôn ngữ như
java,php,python,etc
₋ Lưu trữ dữ liệu đáng tin cậy, được các hãng lớn sử
dụng trên quy mô lớn

56
CHƯƠNG 3. HBASE
1. Giới thiệu
b. Tính năng
₋ Hbase lưu trữ các row nằm trong các table
₋ Mỗi table có thể định nghĩa nhiều column families(cf) khác nhau
₋ Mỗi row phải được quản lý bởi 1 khóa chính duy nhất
₋ Có thể xem lịch sử lưu dữ liệu trên mỗi row, được quản lý bởi timestamp
₋ Chúng ta có thể giới hạn history lưu tối đa là bao nhiêu lần( giúp tiết kiệm
dung lượng dữ liệu sau 1 thời gian sử dụng, mỗi lần update dữ liệu thì
history cũ hơn sẽ bi xóa )

57
CHƯƠNG 3. HBASE
2. Kiến trúc

58
CHƯƠNG 3. HBASE
1. Kiến trúc
Khi có yêu cầu đọc hoặc ghi
Client kết nối tới Zookeeper để tìm địa chỉ của ROOT table.
Client sử dụng ROOT Table để tìm ra địa chỉ của META table chứa thông tin của region mà
nó cần tìm.
Client sử dụng META table để tìm kiếm thông tin của region mà nó cần tìm
Client tương tác trực tiếp với RegionServer

59
CHƯƠNG 3. HBASE
2. Mô hình dữ liệu của HBase
Hbase được xây dựng dựa trên thiết kế của Google BigTable nên có
nhiều điểm giống

Dữ liệu được lưu trong 1 table của HBase được xác định bởi các khóa:
“Table, Rowkey, Column Families, Column, Timestamp”

60
CHƯƠNG 3. HBASE
2. Mô hình dữ liệu của HBase
₋ Mỗi table bao gồm rất nhiều row, có thể lên tới hàng tỷ rows trong 1 table của
HBase, các row được xác định với nhau bởi 1 khóa duy nhất “rowkey”, rowkey
trong HBase có chức năng tương tự với Primary key trong các hệ cơ sở dữ liệu
thông thường .
₋ Các row trong cùng 1 talbe luôn được sắp xếp theo thứ tự tự điển theo rowkey.
₋ Mỗi row gồm nhiều column khác nhau, các column gộp lại thành “column
families”.
₋ Các column trong 1 column families được lưu trữ trong Hfile

61
CHƯƠNG 3. HBASE
2. Mô hình dữ liệu của HBase

62
CHƯƠNG 3. HBASE
3. HBASE Shell
Tạo bảng
>> create ‘<table name>’,’<column family>’

63
CHƯƠNG 3. HBASE
3. HBASE Shell
Danh sách bảng
>> list

64
CHƯƠNG 3. HBASE
3. HBASE Shell
Thêm mới dữ liệu
>> put ’<table
name>’,’row1’,’<colfamily:colname>’,’<value>’

65
CHƯƠNG 3. HBASE
3. HBASE Shell
Cập nhật dữ liệu
>> put ‘table name’,’row ’,'Column family:column
name',’new value’

66
CHƯƠNG 3. HBASE
3. HBASE Shell
Lấy dữ liệu
>> get ’<table name>’,’row1’

67
CHƯƠNG 3. HBASE
3. HBASE Shell
Xóa dữ liệu
>> delete ‘<table name>’, ‘<row>’, ‘<column name >’,
‘<time stamp>’

68
CHƯƠNG 4. HIVE
69
CHƯƠNG 4. HIVE
1. Tổng quan
Hive là một công cụ cơ sở hạ tầng kho dữ liệu để xử lý dữ liệu có cấu trúc
trong Hadoop. Nó nằm trên đỉnh Hadoop để tóm tắt Dữ liệu lớn và giúp
truy vấn và phân tích dễ dàng.

Hive định nghĩa ra một ngôn ngữ truy vấn đơn giản có cú pháp gần
giống với SQL (SQL-like query language) được gọi là HiveQL

70
CHƯƠNG 4. HIVE
2. Đặc trưng của Hive
₋ Nó lưu trữ lược đồ trong cơ sở dữ liệu và xử lý dữ liệu vào HDFS.
₋ Nó được thiết kế cho OLAP (Giao dịch trực tuyến).
₋ Nó cung cấp ngôn ngữ kiểu SQL để truy vấn được gọi là HiveQL hoặc
HQL.
₋ Nó là quen thuộc, nhanh chóng, có khả năng mở rộng.

71
CHƯƠNG 4. HIVE
3. Kiến trúc

72
CHƯƠNG 4. HIVE
3. Kiến trúc
User Interface
Người dùng có thể thao tác với Hive qua: Web UI, Hive command line và
Hive HD Insight
Meta Store
Hive chọn các máy chủ cơ sở dữ liệu tương ứng để lưu trữ lược đồ hoặc
metadata của các bảng, cơ sở dữ liệu, các cột trong một bảng, các loại
dữ liệu của chúng và ánh xạ HDFS.

73
CHƯƠNG 4. HIVE
3. Kiến trúc
HiveQL Process Engine
HiveQL tương tự như SQL để truy vấn thông tin lược đồ trên Metastore. Đây
là một trong những thay thế của phương pháp truyền thống cho chương
trình MapReduce.
Execution Engine
Công cụ thực thi xử lý truy vấn và tạo kết quả giống như kết quả
MapReduce.
HDFS hoặc HBASE
Hệ thống tệp phân tán Hadoop hoặc HBASE là các kỹ thuật lưu trữ dữ liệu
để lưu trữ dữ liệu vào hệ thống tệp
74
CHƯƠNG 4. HIVE
4. Mô hình dữ liệu trên Hive

75
CHƯƠNG 4. HIVE
4. Mô hình dữ liệu trên Hive
Databases: là các namespace cho các tables, dùng để nhóm và quản lý
các nhóm tables khác nhau.
Tables: tương tự như table trong các hệ cơ sở dữ liệu quan hệ. Trong Hive
table có thể thực hiện các phép toán filter, join và union…
Mặc định thì dữ liệu của Hive sẽ được lưu bên trong thư mục warehouse trên
HDFS.

76
CHƯƠNG 4. HIVE
4. Mô hình dữ liệu trên Hive
Partions: Mỗi table có thể có 1 hoặc nhiều các khóa mà từ đó xác định dữ
liệu sẽ được lưu trữ ở đâu.
Ví dụ table web_log có thể phân chia dữ liệu của mình theo từng ngày là
lưu dữ liệu của mỗi ngày trong 1 thư mục khác nhau bên dưới đường
dẫn warehouse. Ví dụ: /warehouse/web_log/date=”01-01-2014″

Buckets: Dữ liệu trong mỗi partion có thể được phân chia thành nhiều
buckets khác nhau dựa trên 1 hash của 1 colume bên trong table. Mỗi
bucket lưu trữ dữ liệu của nó bên dưới 1 thư mục riêng

77
CHƯƠNG 4. HIVE
5. HQL
Tạo database

create database <database_name>;

78
CHƯƠNG 4. HIVE
5. HQL
Xóa database

drop database <database_name>;

79
CHƯƠNG 4. HIVE
5. HQL
Tạo bảng dữ liệu

create table <table_name>([col_name] datatype])

80
CHƯƠNG 4. HIVE
5. HQL
Lấy dữ liệu

>> select * from <table_name>

81
CHƯƠNG 5. SPARK
82
CHƯƠNG 5. SPARK
1. Khái niệm
Apache Spark là một hệ thống mã nguồn mở cho phép thực hiện tính
toán trên cụm nhằm tạo ra khả năng phân tích dữ liệu nhanh

Apache Spark là một hệ thống tính toán song song hoặc phân tán bao
gồm nhiều máy tính kết nối thành một khối và được dùng như một tài
nguyên tính toán duy nhất (cluster), cung cấp các API cho nhiều ngôn
ngữ bậc cao như Java, Scala, Python hay R

83
CHƯƠNG 5. SPARK
2. Đặc điểm
Tốc độ xử lý của Spark có được do việc tính toán được thực hiện cùng lúc
trên nhiều máy khác nhau. Đồng thời việc tính toán được thực hiện ở bộ
nhớ trong hay thực hiện hoàn toàn trên RAM

Spark cho phép xử lý dữ liệu theo thời gian thực, vừa nhận dữ liệu từ các
nguồn khác nhau đồng thời thực hiện ngay việc xử lý trên dữ liệu vừa nhận
được (Spark Streaming)

84
CHƯƠNG 5. SPARK
2. Đặc điểm
Spark sử dụng API Resilient Distributed Dataset (RDD) để xử lý dữ liệu

Các chương trình Spark ngắn gọn hơn và thường chạy nhanh hơn 10-100
lần so với Hadoop MapReduce

85
CHƯƠNG 5. SPARK
3. Kiến trúc nền tảng tính toán phân tán Apache spark
Kiến trúc Apache Spark bao gồm ba thành phần chính
1. Lưu trữ dữ liệu.
2. API
3. Cơ cấu quản lý

86
CHƯƠNG 5. SPARK
3. Kiến trúc nền tảng tính toán phân tán Apache spark
Lưu trữ dữ liệu

Spark sử dụng hệ thống tập tin HDFS để lưu trữ dữ liệu. Nó hoạt động với
bất kỳ nguồn dữ liệu tương thích Hadoop nào bao gồm HDFS, HBase,
Cassandra,…

87
CHƯƠNG 5. SPARK
3. Kiến trúc nền tảng tính toán phân tán Apache spark
API

Spark cung cấp các API cho Scala, Java, Python.

88
CHƯƠNG 5. SPARK
3. Kiến trúc nền tảng tính toán phân tán Apache spark
Cơ cấu quản lý tài nguyên

Spark có thể được triển khai dưới dạng một máy chủ độc lập hoặc trên
một khuôn khổ tính toán phân tán YARN

89
CHƯƠNG 5. SPARK
3. Kiến trúc nền tảng tính toán phân tán Apache spark
Cơ cấu quản lý tài nguyên

90
CHƯƠNG 5. SPARK
4. Các thành phần của Apache Spark

91
CHƯƠNG 5. SPARK
4. Các thành phần của Apache Spark
Mọi ứng dụng spark bao gồm 1 Driver program để chạy hàm main của người
dùng và thực hiện tính toán song song trên 1 cụm.
Có 2 khái niệm trừu tượng quan trọng trong Spark là RDD và Shared Variables.
• RDD là tập dữ liệu phân tán mà các dữ liệu này được phân tán vào các
node của cluster để thực hiện tính toán song song.
• Shared variables thực hiện chia sẻ biến giữa các task hoặc giữa các task
với driver program.

92
CHƯƠNG 5. SPARK
4. Các thành phần của Apache Spark

93
CHƯƠNG 5. SPARK
5. Ưu, nhược điểm
Dễ sử dụng
Tốc độ
Cung cấp công cụ thống nhất, toàn diện
Hỗ trợ đa ngôn ngữ

Chi phí cao: Spark đòi hỏi sử dụng nhiều bộ nhớ RAM để xử lý dữ liệu vì
vậy bộ nhớ để chạy Spark rất tốn kém.
Tối ưu hóa thủ công: Spark đòi hỏi phải thực hiện thủ công và phù hợp
với các bộ dữ liệu cụ thể

94

You might also like