Tải bản đầy đủ (.pdf) (65 trang)

Mô hình truy vấn nhanh cơ sở dữ liệu lớn dựa trên sự kết hợp sql và hadoop mapreduce

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.29 MB, 65 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC SƢ PHẠM TP. HỒ CHÍ MINH

Võ Thị Hồng Thắm

MƠ HÌNH TRUY VẤN NHANH
CƠ SỞ DỮ LIỆU LỚN DỰA TRÊN
SỰ KẾT HỢP SQL VÀ HADOOP MAPREDUCE

LUẬN VĂN THẠC SĨ MÁY TÍNH

Thành phố Hồ Chí Minh – 2017


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC SƢ PHẠM TP. HỒ CHÍ MINH

Võ Thị Hồng Thắm

MƠ HÌNH TRUY VẤN NHANH
CƠ SỞ DỮ LIỆU LỚN DỰA TRÊN
SỰ KẾT HỢP SQL VÀ HADOOP MAPREDUCE

Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01 01

LUẬN VĂN THẠC SĨ MÁY TÍNH

NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS. NGƠ QUỐC VIỆT


Thành phố Hồ Chí Minh – 2017


LỜI CAM ĐOAN
Tơi xin cam đoan đây là cơng trình nghiên cứu do chính tơi thực hiện. Các số
liệu, kết quả phân tích trong luận văn là hồn tồn trung thực và chưa từng được công
bố trong bất kỳ công trình nghiên cứu nào trước đây.

Tp HCM, ngày 28 tháng 9 năm 2017
Học viên

Võ Thị Hồng Thắm


LỜI CẢM ƠN
Đầu tiên, tơi xin bày tỏ lịng biết ơn chân thành và sâu sắc nhất đến Thầy TS.
Ngô Quốc Việt. Thầy đã tạo mọi điều kiện thuận lợi, cũng như tận tình hướng dẫn tơi
trong suốt q trình nghiên cứu, thực hiện luận văn này.
Tôi cũng chân thành cảm ơn q Thầy, Cơ trong trường ĐH Sư Phạm Thành
Phố Hồ Chí Minh, và các thầy cơ giảng dạy bộ mơn đã tận tình giảng dạy, truyền đạt
những kiến thức q báu, từ đó tơi đã áp dụng kiến thức đã học vào quá trình nghiên
cứu và thực hiện luận văn.
Cuối cùng, tơi xin bày tỏ lịng biết ơn sâu sắc đối với gia đình, bạn bè đã ln
động viên, khích lệ tinh thần, cũng như giúp đỡ tơi trong suốt quá trình học tập cũng
như thực hiện luận văn.
Tp HCM, ngày 28 tháng 9 năm 2017
Học viên

Võ Thị Hồng Thắm



MỤC LỤC
Trang
Lời cam đoan
Lời cám ơn
Mục lục
Danh mục từ viết tắt
Danh mục hình ảnh
MỞ ĐẦU ........................................................................................................................ 1
Chƣơng 1: PHÂN CỤM DỮ LIỆU .............................................................................. 5
1.1. Giới thiệu về phân cụm dữ liệu ..........................................................................5
1.2. Tổng quan về phân cụm dữ liệu .........................................................................5
1.3. Độ tương tự ........................................................................................................8
1.4. Một số phương pháp phân cụm dữ liệu ............................................................ 10
1.4.1. Phương pháp phân cụm phân hoạch (Partitioning Methods) ....................11
1.4.2. Phương pháp phân cụm phân cấp (Hierarchical Methods)........................11
1.4.3. Phương pháp phân cụm dựa trên mật độ (Density-Based Methods) .........12
1.4.4. Phương pháp phân cụm dựa trên lưới (Grid-Based Methods)...................12
1.4.5. Phương pháp phân cụm dựa trên mơ hình (Model-Based Clustering
Methods) ....................................................................................................13
Chƣơng 2: MƠ HÌNH XỬ LÝ PHÂN TÁN HADOOP MAPREDUCE ................ 14
2.1. Apache Hadoop ................................................................................................ 14
2.1.1. Kiến trúc Hadoop cluster ...........................................................................15
2.1.2. Thành phần của Hadoop ............................................................................16
2.2. Hadoop Distributed File System (HDFS) ........................................................18
2.2.1. Kiến trúc HDFS .........................................................................................18
2.2.2. Đọc tập tin từ HDFS ..................................................................................20
2.2.3. Ghi tập tin xuống HDFS ............................................................................20
2.3. MapReduce .......................................................................................................21
2.4. Apache Hive .....................................................................................................24

2.4.1. Kiến trúc của Hive .....................................................................................25
2.4.2. Hoạt động của Hive ...................................................................................26


2.4.3. Cách tổ chức Hive ......................................................................................27
2.4.4. HiveQL .....................................................................................................27
2.4.5. Hive User Defined Functions (Hive UDFs) ..............................................28
2.5. Sqoop ................................................................................................................28
Chƣơng 3: MƠ HÌNH TRUY VẤN NHANH CSDL LỚN DỰA TRÊN SỰ KẾT
HỢP SQL VÀ HADOOP MAPREDUCE ........................................... 30
3.1. Giải thuật phân cụm dữ liệu PROCLUS .......................................................... 30
3.1.1. Giai đoạn khởi tạo ......................................................................................32
3.1.2. Giai đoạn lặp .............................................................................................. 32
3.1.3. Giai đoạn lọc .............................................................................................. 36
3.2. Giải thuật PROCLUS phân tán ........................................................................38
3.3. Phân cụm CSDL lớn dựa trên sự kết hợp SQL – MapReduce .........................38
3.3.1. Giai đoạn map ............................................................................................ 39
3.3.2. Giai đoạn reduce: .......................................................................................39
3.3.3. Gộp cụm bằng SQL ...................................................................................40
3.4. Phân đoạn bảng (table partition) ......................................................................41
3.5. Truy vấn nhanh dữ liệu.....................................................................................42
Chƣơng 4: THỰC NGHIỆM ...................................................................................... 44
4.1. Cài đặt môi trường ............................................................................................ 44
4.2. Dữ liệu thực nghiệm .........................................................................................44
4.3. Qui trình thực nghiệm ......................................................................................46
4.3.1. Import dữ liệu từ SQL Server vào Hive ....................................................46
4.3.2. Phân cụm dữ liệu trong Hive .....................................................................46
4.3.3. Export các cụm từ Hive trở lại SQL Server ...............................................49
4.3.4. Gộp cụm trong SQL Server .......................................................................49
4.3.5. Phân đoạn bảng .......................................................................................... 49

4.3.6. Truy vấn nhanh dữ liệu ..............................................................................50
KẾT LUẬN .................................................................................................................. 54
DANH MỤC TÀI LIỆU THAM KHẢO ................................................................... 55


DANH MỤC TỪ VIẾT TẮT
Từ viết tắt

BIRCH

Tiếng Anh
Balanced Interative Reducing
and Clustering using Hierarchies

Từ hoặc cụm từ viết tắt
Phân hoạch các đối tượng dùng
cấu trúc cây theo độ co giãn
của phân giải

CSDL

Database

Cơ sở dữ liệu

DBMS

Database Management System

Hệ quản trị cơ sở dữ liệu


DENCLUE

Density based CLUstering

Phân cụm dựa trên mật độ

EM

Expectation Maximization

Cực đại hóa kỳ vọng

FCM

Fuzzy C Means

Phân cụm mờ

HDFS

Hadoop Distributed File System

Hệ thống tập tin phân tán

HiveQL

Hive Query Language

Ngôn ngữ truy vấn Hive


MWKM

The mixed attribute weighting k- Giải thuật k-modes cho dữ liệu
modes algorithm

hỗn hợp có trọng số

PCDL

Data clustering

Phân cụm dữ liệu

PROCLUS

Projected Clustering

RDBMS

Giải thuật phân cụm dữ liệu
dựa trên phép chiếu

Relational Database

Hệ quản trị cơ sở dữ liệu quan

Management System

hệ



SQL

Structured Query Language

Ngôn ngữ truy vấn cấu trúc

UDFs

User Defined Functions

Hàm người dùng định nghĩa


DANH MỤC HÌNH ẢNH
Hình 1.1. Tổng quan về phân cụm ..................................................................................8
Hình 2.1. Kiến trúc Hadoop cluster ...............................................................................16
Hình 2.2. Kiến trúc HDFS ............................................................................................. 19
Hình 2.3. Mơ hình MapReduce của Google ..................................................................22
Hình 2.4. Q trình thực hiện MapReduce của bài tốn đếm từ ..................................24
Hình 2.5. Hoạt động của Hive .......................................................................................26
Hình 2.6. Chức năng Sqoop .........................................................................................29
Hình 3.1. Hạn chế khi phân cụm bằng cách chọn trước số chiều .................................31
Hình 3.2. Locality của tâm A đối với tâm B và tâm C với bán kính  .......................... 33
Hình 3.3. Phân cụm CSDL dựa trên tiếp cận lai SQL-MapReaduce ............................ 38
Hình 4.1. Thời gian thực hiện phân cụm theo số bản ghi .............................................48
Hình 4.2. Thời gian thực hiện phân cụm theo số chiều ................................................48
Hình 4.3. Thời gian thực hiện phân cụm theo số cụm ..................................................49
Hình 4.4. Thời gian trung bình thực hiện truy vấn theo số bản ghi ............................. 51

Hình 4.5. Thời gian trung bình thực hiện truy vấn theo số chiều .................................52
Hình 4.6. Thời gian trung bình thực hiện truy vấn theo số cụm ..................................53


1

MỞ ĐẦU
1. Tính cấp thiết

t i

Trong những năm gần đây, cơng nghệ thơng tin phát triển khơng ngừng và có
nhiều ứng dụng trong các lĩnh vực kinh tế - xã hội. Với những tác động mạnh mẽ của
tiến bộ công nghệ, các dữ liệu phục vụ cho các lĩnh vực này đã phát triển bùng nổ, tạo
ra một lượng dữ liệu lưu trữ khổng lồ. Hàng triệu CSDL được tạo ra trong các hoạt
động sản xuất, kinh doanh, quản lý..., trong đó có nhiều CSDL cực lớn. Sự phong phú
về dữ liệu đòi hỏi khả năng truy vấn chúng một cách nhanh chóng để nâng cao năng
suất và chất lượng cho công tác quản lý, hoạt động kinh doanh cũng như hỗ trợ ra
quyết định. Với một bảng dữ liệu lớn, việc truy vấn dữ liệu rất mất thời gian do chỉ cần
lấy một phần dữ liệu trong bảng nhưng phải duyệt qua toàn bộ bảng trong CSDL. Để
đáp ứng nhu cầu truy vấn nhanh, cách thức lưu trữ dữ liệu cũng là vấn đề quan trọng.
Một bảng dữ liệu nếu được lưu trữ theo kỹ thuật phân đoạn (table partitioning) sẽ giúp
quản lý hiệu quả CSDL lớn. Khi cần lấy dữ liệu ở một đoạn nào đó thì chỉ cần truy
nhập vào đoạn đó và bỏ qua các đoạn cịn lại. Trong CSDL, có thể xem mỗi đoạn của
bảng là một cụm dữ liệu. Do đó, cần kỹ thuật phân cụm CSDL lớn thành từng cụm,
sau đó lưu trữ phân đoạn các cụm dữ liệu đó thành từng đoạn.
Bên cạnh đó, nhu cầu về thơng tin trong các hoạt động sản xuất, kinh doanh cũng
làm cho các CSDL có số chiều rất lớn. Với các CSDL lớn nhiều chiều, các công cụ
phần mềm phổ biến sẽ gặp nhiều hạn chế để thu thập, quản lí và xử lý trong một thời
gian chấp nhận được. Khi số chiều lớn, ngoài khối lượng tính tốn tăng lên, dữ liệu

phân bố thưa nên việc quan sát dữ liệu để phân tích đặc điểm hình học cũng rất khó
khăn nên phân cụm khó hiệu quả. Vì vậy, phân cụm CSDL nhiều chiều có nhiều thách
thức [10]. Có nhiều cách tiếp cận để phân cụm dữ liệu nhiều chiều, một trong những
giải thuật hiệu quả dùng là phân cụm dữ liệu dựa trên phép chiếu. Phân cụm dựa trên
phép chiếu giúp hiểu đặc trưng của dữ liệu, và tìm được những đặc trưng chính, đáng
tin cậy đại diện cho dữ liệu. Một trong những đặc trưng chính của phân cụm dựa trên
phép chiếu là các bản ghi được chiếu trên các đặc trưng thích hợp giúp tìm ra các cụm


2

dữ liệu, vì một thực tế quan trọng là khơng phải tất cả các đặc trưng đều thích hợp cho
tất cả các cụm được hình thành [9]. Từ đó sẽ có cơ chế lưu trữ và xử lý hiệu quả sau
đó.
Một cách tiếp cận để phân cụm CSDL lớn nhiều chiều dựa trên phép chiếu là sử
dụng phương pháp lai SQL và MapReduce [13]. MapReduce được giới thiệu bởi
Google và dùng cho phân tích dữ liệu lớn. MapReduce là mơ hình xử lý dữ liệu với lập
trình song song. Trong tiếp cận này, dữ liệu được phân chia thành các lượng nhỏ. Phân
cụm sẽ được thực hiện song song trên các lượng dữ liệu nhỏ hơn thông qua chức năng
map (ánh xạ). Tuy nhiên, khi dữ liệu quá lớn thì quá trình gộp các cụm qua chức năng
reduce (rút gọn) sẽ mất nhiều thời gian và không hiệu quả. Để khắc phục được hạn chế
này thì quá trình trộn các cụm được thực hiện bằng cách sử dụng ngôn ngữ SQL trong
RDBMS [13].
Tóm lại, để giúp truy vấn nhanh CSDL lớn, cần lưu trữ dữ liệu theo từng đoạn
tương ứng với từng cụm. Có nhiều giải thuật phân cụm dữ liệu khác nhau, nhưng giải
thuật phân cụm dựa trên phép chiếu bằng cách tiếp cận lai SQL – MapReduce là giải
thuật thích hợp với CSDL lớn nhiều chiều. Dựa trên những cơ sở vừa nêu, tơi chọn đề
tài “Mơ hình truy vấn nh nh ơ sở dữ liệu lớn dự trên sự kết hợp SQL v
Hadoop MapReduce” làm đề tài luận văn của mình.
2. Mụ


h nghiên

u

Mục đích nghiên cứu của đề tài là giảm thời gian thực hiện các truy vấn trong
một CSDL lớn. Để giảm thời gian truy vấn, luận văn đã tìm hiểu mơ hình phân cụm
CSDL lớn dựa trên tiếp cận SQL và Hadoop MapReduce [13]. Từ kết quả phân cụm,
bảng dữ liệu sẽ được phân đoạn tương ứng với từng cụm. Các truy vấn sẽ lấy dữ liệu
trong đoạn tương ứng các cụm mà không cần qt qua tồn bộ bảng. Từ đó, góp phần
giảm thời gian truy vấn dữ liệu.
3. Đối tƣợng và phạm vi nghiên c u
Đối tượng nghiên cứu:
Dữ liệu về tiếp thị ngân hàng của Bồ Đào Nha được tải từ UCI


3

( Dữ liệu được lưu trữ và
quản lí trên SQL Server 2014.
Phạm vi nghiên cứu
Luận văn tập trung vào việc nghiên cứu các vấn đề sau:
- Nghiên cứu khái niệm, vai trò, ứng dụng của các kỹ thuật phân cụm dữ liệu.
- Tìm hiểu, nghiên cứu mở rộng phân cụm CSDL lớn dựa trên tiếp cận lai SQL
và Hadoop MapReduce.
- Cách thức tổ chức lưu trữ dữ liệu trong bảng lớn của CSDL trong SQL Server
giúp truy vấn nhanh dữ liệu của các truy vấn có điều kiện.
4. Phƣơng ph p nghiên

u


- Nghiên cứu lý luận:


Tìm hiểu lý thuyết về các kỹ thuật phân cụm dữ liệu



Tìm hiểu giải thuật phân cụm dựa trên phép chiếu PROCLUS



Tìm hiểu mơ hình Hadoop MapReduce, và một số dự án Hadoop: Hive,
Sqoop,…



Tìm hiểu kỹ thuật phân đoạn bảng và cách truy vấn dữ liệu trên bảng đã
phân đoạn

- Thực nghiệm:


Cài đặt mơ hình lập trình MapReduce dựa trên Hadoop.



Sử dụng ngơn ngữ lập trình Python để tạo thực nghiệm phân cụm dựa
trên phép chiếu PROCLUS.




Kết hợp Framework Hadoop MapReduce với SQL để phân cụm CSDL
lớn.



Lưu trữ dữ liệu đã phân cụm theo từng đoạn và truy vấn nhanh dữ liệu đã
phân đoạn.


4

5. Đ ng g p

lu n v n

Luận văn trình bày mơ hình truy vấn nhanh CSDL lớn dựa trên sự kết hợp SQL
và Hadoop MapReduce, từ đó góp phần giảm thời gian truy vấn dữ liệu trong CSDL
lớn, góp phần hỗ trợ người quản lý có thể truy vấn nhanh các dữ liệu cần thiết, để đưa
ra các quyết định chính xác, tạo ra chiến lược kinh doanh hiệu quả cũng như hỗ trợ cho
công tác quản lý. Để xây dựng được mơ hình, luận văn tìm hiểu và áp dụng phân cụm
CSDL lớn, nhiều chiều dựa trên tiếp cận lai SQL và Hadoop MapReduce [13] nhằm
giảm thời gian phân cụm. Trong bước phân cụm, giải thuật phân cụm dựa trên phép
chiếu PROCLUS được sử dụng để phân cụm cho CSDL nhiều chiều. Dữ liệu sau phân
cụm được phân đoạn theo từng cụm. Luận văn cũng nêu được cách thức truy vấn dữ
liệu trên từng đoạn nhằm giảm thời gian truy vấn.


5


Chƣơng 1. PHÂN CỤM DỮ LIỆU
1.1. Giới thiệu v phân cụm dữ liệu
Ngày nay, các kỹ thuật khai phá dữ liệu được nghiên cứu rộng rãi và trở thành
một vấn đề thời sự trong lĩnh vực công nghệ thông tin. Rất nhiều tổ chức và công ty
lớn đã áp dụng kỹ thuật này vào dữ liệu của mình nhằm khai thác chúng để nâng cao
năng suất hỗ trợ hoạt động kinh doanh. Một trong số kỹ thuật khai phá dữ liệu là
PCDL. Phân cụm dữ liệu là một kỹ thuật quan trọng được ứng dụng rộng rãi trong các
lĩnh vực sản xuất và kinh doanh, giúp hỗ trợ cho việc quản lý và xử lý thông tin. Phân
cụm dữ liệu được ứng dụng trong nhiều lĩnh vực như tài chính, xử lý hình ảnh, tìm
kiếm thơng tin, tin sinh học,… Phân cụm dữ liệu là quá trình tổ chức các đối tượng
thành từng nhóm mà các đối tượng ở trong cùng một nhóm tương tự nhau theo một
tính chất nào đó, những đối tượng khơng tương tự tính chất sẽ ở nhóm khác. Như vậy,
phân cụm dữ liệu là quá trình phân chia một tập dữ liệu ban đầu thành các cụm dữ liệu
sao cho các đối tượng trong một cụm “tương tự” với nhau và các đối tượng trong các
cụm khác nhau sẽ “không tương tự” với nhau. Số các cụm dữ liệu được phân có thể
được xác định trước theo kinh nghiệm hoặc có thể được tự động xác định.
1.2. Tổng quan v phân cụm dữ liệu
Theo các nghiên cứu đến thời điểm hiện nay thì chưa có một phương pháp phân
cụm tổng quát nào có thể giải quyết trọn vẹn cho tất cả các dạng cấu trúc dữ liệu. Hơn
nữa, đối với các phương pháp phân cụm cần có cách thức biểu diễn cấu trúc của dữ
liệu, với mỗi cách thức biểu diễn khác nhau sẽ có tương ứng một giải thuật phân cụm
phù hợp. Vì vậy, phân cụm dữ liệu vẫn đang là một vấn đề khó và mở, vì phải giải
quyết nhiều vấn đề cơ bản một cách trọn vẹn và phù hợp với nhiều dạng dữ liệu khác
nhau, đặc biệt là đối với dữ liệu hỗn hợp đang ngày càng tăng và đây cũng là một
trong những thách thức lớn. Trên thế giới, có nhiều nghiên cứu các kỹ thuật phân cụm
dữ liệu:
Các tác giả Adil Fahad, Najlaa Alshatri, Zahir Tari, Abdullah Alamri, Ibrahim
Khalil, Albert y. Zomaya, Sebti Foufou, và Abdelaziz Bouras [9] đã tổng hợp các giải
thuật phân cụm trên dữ liệu lớn như: giải thuật phân cụm mờ FCM của các tác giả J. C.



6

Bezdek, R. Ehrlich, W. Full, giải thuật BIRCH của các tác giả T. Zhang, R.
Ramakrishnan, M. Livny, giải thuật DENCLUE, giải thuật OPTIGRID (Optimal Grid)
của các tác giả A. Hinneburg và D. A. Keim, giải thuật EM của các tác giả A. P.
Dempster, N. M. Laird,và D. B. Rubin. Phân cụm dữ liệu mờ FCM được đề xuất dựa
trên cải tiến và tổng quát hóa hàm mục tiêu mờ bằng cách đưa ra trọng số mũ, và độ
hội tụ của thuật toán là cực tiểu cục bộ [5]. Giải thuật phân cụm FCM giải quyết một
số bài toán PCDL trong nhận dạng mẫu, xử lý ảnh,… Tuy nhiên, giải thuật có nhược
điểm là nhạy cảm với các điểm nhiễu. Giải thuật BIRCH lấy ý tưởng là khơng cần lưu
tồn bộ các đối tượng dữ liệu của các cụm trong bộ nhớ mà chỉ lưu các đại lượng
thống kê. Để theo dõi các cụm hình thành, giải thuật tóm tắt thơng tin về một cụm và
dùng cây cân bằng để lưu trữ cụm đặc trưng [5]. Giải thuật DENCLUE dựa trên tiếp
cận xem xét mơ hình được sử dụng một cơng thức tốn để mơ tả mỗi điểm dữ liệu ảnh
hưởng trong mơ hình như thế nào. Như vậy, DENCLUE là phương pháp dựa trên một
tập các hàm phân phối mật độ. EM được xây dựng dựa trên mẫu, EM gán các đối
tượng cho các cụm đã cho theo xác suất phân phối thành phần của đối tượng đó. EM
có thể khám phá ra nhiều hình dạng cụm khác nhau, tuy nhiên chi phí tính tốn của
giải thuật là khá cao [5]. Nhìn chung, các tác giả cũng đã trình bày cơ sở lý thuyết của
một số giải thuật liên quan đến PCDL cũng như so sánh các giải thuật dựa trên thực
nghiệm dữ liệu lớn. Từ đó tìm ra các giải thuật phân cụm hiệu quả cho dữ liệu lớn. Tác
giả cũng đưa ra một số kết luận về phân cụm trên dữ liệu lớn: khơng có giải thuật phân
cụm hoạt động tốt cho tất cả các dữ liệu, các giải thuật phù hợp với tập dữ liệu lớn và
có số chiều cao là DENCLUE và OPTIGRID, và tương lai nên có cải tiến để giải
quyết các hạn chế trong mỗi nhóm, giải pháp có thể là dựa trên ngơn ngữ lập trình,
cơng nghệ phần cứng mà có thể cho phép các giải thuật như vậy được thực hiện hiệu
quả hơn [9].
C. Aggarwal, C. Procopiuc, J.L. Wolf, P. S. Yu, J. S. Park [10] tìm hiểu giải thuật

phân cụm dữ liệu trong các CSDL. Trong không gian số chiều lớn, không phải tất cả
các chiều liên quan đến một cụm. Nhằm khắc phục những hạn chế của phân cụm dữ
liệu có chiều lớn và tính thưa của dữ liệu, các tác giả đề xuất giải thuật phân cụm dữ
liệu dựa trên phép chiếu, trong đó các chiều sẽ được chọn lọc thể hiện đặc trưng của


7

cụm dữ liệu. Phân cụm dựa trên phép chiếu cho phép chia độ tương quan khác nhau
giữa các tập con khác nhau của tập dữ liệu đầu vào [10].
Các tác giả Jeffrey Dean và Sanjay Ghemawat đề xuất phương pháp phân cụm
dữ liệu lớn dựa vào MapReduce. MapReduce là một mơ hình lập trình và xử lý trên
các tập dữ liệu lớn [11]. Người dùng có thể chỉ định chức năng ánh xạ để xử lý một
cặp (khóa, giá trị) để tạo ra một tập hợp các cặp (khóa, giá trị) trung gian, và chức
năng rút gọn kết hợp tất cả các giá trị trung gian. Trong MapReduce, các xử lý hoạt
động song song. Hệ thống thời gian sẽ phân vùng dữ liệu đầu vào, lập kế hoạch thực
hiện chương trình trên các máy, xử lý thất bại, và quản lý các thông tin liên lạc [11].
Các tác giả Hajar Rehioui, Abdellah Idrissi, Manar Abourezq, Faouzia Zegrari đề
xuất giải thuật DENCLUE-IM để phân cụm dữ liệu lớn nhằm tăng hiệu suất và giảm
thời gian phân cụm. Giải thuật DENCLUE-IM được cải tiến từ DENCLUE. Ý tưởng
chính là tăng tốc độ tính tốn bằng cách tránh các bước bước leo đồi trong DENCLUE.
Tác giả thực nghiệm với bộ dữ liệu lớn và chứng minh hiệu quả của giải thuật đã đề
xuất [12].
Tình hình nghiên cứu trong nước:
Nguyễn Trung Sơn đã nghiên cứu kỹ thuật tiếp cận trong phân cụm dữ liệu như:
phương pháp phân cụm phân hoạch (Partitioning Methods), phương pháp phân cụm
phân cấp (Hierarchical Methods), phương pháp phân cụm dựa trên mật độ (DensityBased Methods), phương pháp phân cụm dựa trên lưới (Grid-Based Methods), phương
pháp phân cụm dựa trên mô hình (Model-Based Clustering Methods), phương pháp
phân cụm có dữ liệu ràng buộc (Binding Data Clustering Methods) trong luận văn thạc
sĩ “phương pháp phân cụm và ứng dụng” [5]. Các phương pháp phân cụm này sẽ được

tìm hiểu trong 1.4.
Lưu Xuân Văn đã nghiên cứu “thuật toán phân cụm đồng thời và ứng dụng”
trong luận văn thạc sĩ. Trong nghiên cứu này, tác giả đã tìm hiểu giải thuật biclustering
sẽ tìm cách phân cụm đồng thời trên dữ liệu biểu hiện gene từ đó có thể hiểu thêm các
tiến trình sinh học giữa các gene trong các cá thể [8].


8

Trong luận văn “phân cụm dữ liệu định danh với số chiều cao” [3], Phan Thị
Luân tìm hiểu cách biểu diễn dữ liệu nhằm phục vụ cho quá trình phân cụm, giới
thiệu độ tương đồng giữa các đối tượng trong tập dữ liệu, các phương pháp phân cụm
dữ liệu. Trình bày một số giải thuật phân cụm dữ liệu như: phương pháp phân hoạch,
phương pháp phân cấp. Đặc biệt, luận văn quan tâm đến việc phân cụm dữ liệu định
danh. Trình bày một số giải thuật, trong đó đi sâu vào hai giải thuật COOLCAT và
MWKM để phân cụm dữ liệu định danh với nhiều thuộc tính. Từ đó thực nghiệm so
sánh hai giải thuật COOLCAT và MWKM với 5 bộ dữ liệu với nhiều thuộc tính: cơ
sở dữ liệu đậu tương, cơ sở dữ liệu nấm, cơ sở dữ liệu ung thư phổi, cơ sở dữ liệu về
thuê bao di động phát sinh của thành phố Hà Nội và cơ sở dữ liệu điều tra dân số Mỹ
năm 1990.
Phạm Minh Tiến “Tìm hiểu về kỹ thuật phân cụm dữ liệu trong hệ quản trị cơ sở
dữ liệu Oracle” [7] trong đồ án tốt nghiệp đại học. Tác giả đã tìm hiểu một số vấn đề
trong phân cụm dữ liệu trong hệ quản trị CSDL như các thủ tục, các gói dữ liệu tích
hợp trong Oracle, sử dụng các giải thuật phân cụm.

Hình 1.1. Tổng qu n v phân ụm [9]
1.3. Độ tƣơng tự
Phân cụm dữ liệu là phương pháp nhóm các đối tượng có độ tương tự vào trong
một nhóm, các đối tượng ở các nhóm khác nhau thì có độ tương tự thấp. Độ tương tự
giữa các đối tượng mơ tả tính chất giống nhau hoặc khác nhau giữa chúng theo một ý

nghĩa nào đó. Giá trị của độ tương tự càng cao thì sự giống nhau giữa đối tượng càng


9

lớn và ngược lại. Có rất nhiều hàm được dùng để biểu diễn độ tương tự giữa các đối
tượng. Trong khn khổ luận văn chỉ trình bày một số hàm đo tương tự phổ biến gọi là
các hàm khoảng cách.
Các phép đo độ tương tự [3]
 Thuộc tính khoảng: độ đo phi tương tự của hai đối tuợng dữ liệu x, y được xác
định bằng các khoảng cách như sau:
- Khoảng cách Minskowski:
(

)

(∑

)



(1.1)

Với q là số tự nhiên dương
- Khoảng cách Euclide:
(

)


√∑

(

)

(1.2)

Đây là trường hợp đặc biệt của khoảng cách Minskowski trong trường hợp q = 2
- Khoảng cách Manhattan:
(

)



(1.3)

Đây là trường hợp của khoảng cách Minskowski trong trường hợp q = 1
- Khoảng cách cực đại:
(

)

(1.4)

Đây là trường hợp của khoảng cách Minskowski trong trường hợp q = ∞
 Thuộc tính nhị phân: dựa trên xây dựng bảng tham số sau:
y
1

1
x
0

0


10

Trong đó,

, các đối tượng x, y mà tất cả các thuộc tính tính

của nó đều là nhị phân biểu thị bằng 0 và 1. Bảng trên cho ta các thơng tin sau:
-

là tổng số các thuộc tính có giá trị là 1 trong cả hai đối tượng x, y

-

là tổng số các giá trị thuộc tính có giá trị là 1 trong x và 0 trong y

-

là tổng số các giá trị thuộc tính có giá trị là 0 trong x và 1 trong y

-

là tổng số các giá trị thuộc tính có giá trị là 0 trong x và y


Các phép đo độ tương tương đồng đối với dữ liệu thuộc tính nhị phân được định
nghĩa như sau:
Hệ số đối sánh đơn giản:
(

)

(1.5)

Trong đó, hai đối tượng x và y có vai trị như nhau, nghĩa là chúng đối xứng và
có cùng trọng số.
Hệ số Jacard:
(

)

(1.6)

Chú ý rằng tham số này bỏ qua số các đối sánh giữa 0 - 0. Cơng thức tính này
được sử dụng trong trường hợp mà trọng số của các thuộc tính có giá trị 1 của đối
tượng dữ liệu có cao hơn nhiều so với các thuộc tính có giá trị 0, như vậy các thuộc
tính nhị phân ở đây là khơng đối xứng.
Thuộc tính định danh: Độ đo phi tương tự giữa hai đối tượng x và y được định
nghĩa theo cơng thức 1.7:
(

)

(1.7)


trong đó m là số thuộc tính đối sánh tương ứng.
1.4. Một số phƣơng ph p phân ụm dữ liệu
Các kỹ thuật phân cụm có nhiều cách tiếp cận và được ứng dụng trong thực tế,


11

hướng tới hai mục tiêu chung đó là chất lượng của các cụm và tốc độ thực hiện. Hiện
nay, các kỹ thuật phân cụm có thể phân loại theo các phương pháp tiếp cận chính như
sau: phân cụm phân hoạch (Partitioning Methods); phân cụm phân cấp (Hierarchical
Methods); phân cụm dựa trên mật độ (Density-Based Methods); phân cụm dựa trên
lưới (Grid-Based Methods); phân cụm dựa trên mơ hình (Model-Based Clustering
Methods).
1.4.1. Phƣơng ph p phân ụm phân hoạ h (P rtitioning Methods)
Phân cụm phân hoạch [3] phân 1 tập dữ liệu có n phần tử cho trước thành k cụm
dữ liệu sao cho mỗi phần tử dữ liệu chỉ thuộc về 1 cụm và mỗi nhóm dữ liệu có tối
thiểu ít nhất 1 phần tử dữ liệu. Tuy nhiên, phương pháp này khơng thể xử lí các cụm
có hình dạng kỳ quặc, hoặc các cụm có mật độ các điểm dày đặc. Các thuật tốn phân
hoạch dữ liệu có độ phức tạp rất lớn khi xác định nghiệm tối ưu toàn cục, do nó phải
tìm kiếm tất cả các cách phân hoạch có thể được. Vì vậy, trên thực tế, để tìm giải pháp
tối ưu cục bộ cho vấn đề này bằng cách sử dụng một hàm tiêu chuẩn để đánh giá chất
lượng của cụm cũng như để hướng dẫn cho quá trình tìm kiếm phân hoạch dữ liệu.
Như vậy, ý tưởng chính của thuật tốn phân cụm phân hoạch tối ưu cục bộ là sử dụng
kỹ thuật tham lam (Greedy) để tìm kiếm nghiệm.
Một số thuật tốn dùng để phân cụm phân hoạch điển hình như k-Means, KMedoid, PAM, CLARA, CLARANS,... [9]
1.4.2. Phƣơng ph p phân ụm phân ấp (Hier r hi l Methods)
Phương pháp này sắp xếp một tập dữ liệu đã cho thành một cấu trúc có dạng hình
cây. Việc xây dựng cây được thực hiện theo hai cách: một là từ dưới lên (bottom-up)
hoặc từ trên xuống (top-down). Trong cả hai cách phân loại phân cấp này, ta có thể xác
định số cụm dự kiến và điều kiện để kết thúc [3], [5].

Phương pháp dưới lên (bottom-up): Phương pháp này bắt đầu với mỗi đối
tượng được khởi tạo tương ứng với các cụm riêng biệt, sau đó tiến hành nhóm các đối
tượng theo một độ đo tương tự (như khoảng cách giữa hai tâm của hai nhóm), q
trình này được thực hiện cho đến khi tất cả các nhóm được sát nhập vào một nhóm


12

(mức cao nhất của cây phân cấp) hoặc cho đến khi các điều kiện kết thúc thỏa mãn.
Cách tiếp cận này sử dụng chiến lược tham lam trong quá trình phân cụm.
Phương pháp trên xuống (top-down): Bắt đầu với trạng thái là tất cả các đối
tượng được xếp trong cùng một cụm. Mỗi vịng lặp thành cơng, một cụm được tách
thành các cụm nhỏ hơn theo giá trị của một phép đo độ tương tự nào đó cho đến khi
mỗi đối tượng là một cụm, hoặc cho đến khi điều kiện dừng thỏa mãn. Cách tiếp cận
này sử dụng chiến lược chia để trị trong quá trình phân cụm.
Một số thuật tốn phân cụm phân cấp điển hình như CURE, BIRCH,... [9]
1.4.3. Phƣơng ph p phân ụm dự trên m t ộ (Density-Based Methods)
Phương pháp này nhóm các đối tượng dữ liệu theo hàm mật độ xác định. Mật độ
được định nghĩa như là số các đối tượng lân cận của một đối tượng dữ liệu theo một
nghĩa nào đó. Trong cách tiếp cận này, các cụm dữ liệu đã xác định được mở rộng
thêm các đối tượng dữ liệu mới trong vùng lân cận miễn là số các đối tượng lân cận
này phải lớn hơn một ngưỡng đã được xác định trước. Phương pháp phân cụm dựa
trên mật độ có thể các định các cụm dữ liệu có hình thù bất kỳ. Kỹ thuật này có thể
khắc phục được các phần tử ngoại lai hoặc giá trị nhiễu rất tốt, tuy nhiên việc xác định
các tham số mật độ của thuật tốn là rất khó khăn, trong khi các tham số này lại có tác
động rất lớn đến kết quả phân cụm [3].
Một số thuật toán PCDL dựa trên mật độ điển hình như DBSCAN, OPTICS,
DENCLUE,... [9]
1.4.4. Phƣơng ph p phân ụm dự trên lƣới (Grid-Based Methods)
Kỹ thuật phân cụm dựa trên lưới thích hợp với dữ liệu nhiều chiều, dựa trên cấu

trúc dữ liệu lưới để phân cụm, phương pháp này chủ yếu tập trung áp dụng cho lớp dữ
liệu khơng gian. Ưu điểm chính của phương pháp phân cụm dựa trên lưới là thời gian
xử lý nhanh chóng, mà thường là độc lập với số lượng đối tượng dữ liệu, nhưng phụ
thuộc vào số ô trong mỗi chiều của không gian lưới. Mục tiêu của phương pháp này là
lượng hóa dữ liệu thành các ơ tạo thành cấu trúc dữ liệu lưới. Sau đó, các thao tác phân
cụm chỉ cần làm việc với các đối tượng trong từng ô trên lưới chứ không phải các đối


13

tượng dữ liệu. Cách tiếp cận dựa trên lưới này không di chuyển các đối tượng trong
các ô mà xây dựng nhiều mức phân cấp của nhóm các đối tượng trong một ơ [3].
Một số thuật tốn PCDL dựa trên cấu trúc lưới điển hình như: STING,
WAVECluster, CLIQUE,... [9]
1.4.5. Phƣơng ph p phân

ụm dự

trên mơ hình (Model-Based Clustering

Methods)
Là phương pháp phân cụm thực hiện việc tối ưu dữ liệu đầu vào bằng các
phương pháp toán học. Theo phương pháp này thì dữ liệu đầu vào giả định là hỗn tạp
của nhiều thuộc tính dữ liệu. Phương này cố gắng khám phá các phép xấp xỉ tốt của
các tham số mô hình sao cho khớp với dữ liệu một cách tốt nhất. Các thuật tốn phân
cụm dựa trên mơ hình có hai cách tiếp cận chính: mơ hình thống kê và mạng nơron.
Phương pháp này phát triển các cụm riêng biệt nhằm cải tiến các mơ hình đã được xác
định trước đó, nhưng đơi khi nó khơng bắt đầu với một số cụm cố định [7], [9].
Điển hình trong phương pháp tiếp cận theo phân cụm dựa trên mơ hình là các
thuật toán như: EM, COBWEB, CLASSIT, AutoClass (Cheeseman and Stutz,

1996),… [9]


14

Chƣơng 2. MƠ HÌNH XỬ LÝ PHÂN TÁN HADOOP MAPREDUCE
2.1. Apache Hadoop
Apache phát triển hệ thống mã mở Hadoop chạy trên môi trường Unix, và được
thiết kế để hỗ trợ cho các ứng dụng sử dụng lượng lớn dữ liệu cấu trúc và phi cấu trúc
[4]. Hệ thống phần mềm mã mở này được tối ưu cho tính tin cậy, khả năng mở rộng và
tính tốn phân tán. Hadoop được thiết kế để làm việc với nhiều loại dữ liệu. Hadoop
cho phép lưu trữ khối lượng lớn bằng cách chia thành các khối dữ liệu nhỏ hơn phân
phối trên các phần cứng của một cluster để xử lý nhanh hơn [4]. Công nghệ này đã
được sử dụng rộng rãi bởi trên thế giới như Facebook, eBay, Amazon, Yahoo,…
Hadoop là một framework mã nguồn mở viết bằng Java cho phép phát triển các
ứng dụng phân tán dữ liệu lớn [1]. Hadoop cho phép lưu trữ và xử lý phân tán các ứng
dụng có thể làm việc với khối lượng dữ liệu khổng lồ trên các cụm máy tính từ một vài
máy chủ đơn đến hàng nghìn máy tính [1]. Các dịch vụ của Hadoop cung cấp cho việc
lưu trữ, xử lý, truy cập, quản trị dữ liệu, an ninh và đảm bảo các hoạt động.
Ưu điểm của việc sử dụng Hadoop là khả năng lưu trữ, quản lý và phân tích số
lượng lớn dữ liệu có cấu trúc và khơng có cấu trúc một cách nhanh chóng, đáng tin
cậy, linh hoạt và chi phí thấp [1].
- Khả năng mở rộng và hiệu suất: Hadoop xử lý phân tán dữ liệu cục bộ trong
mỗi nút của một cluster, nên cho phép lưu trữ, quản lý, xử lý và phân tích dữ liệu rất
lớn.
- Độ tin cậy: Trong trường hợp các nút bị hỏng riêng lẻ trong cụm. Hadoop có
thể chuyển hướng đến các nút cịn lại trong cụm vì dữ liệu được tự động sao chép lại
trên nhiều nút.
- Tính linh hoạt: Không giống như các hệ thống quản lý CSDL quan hệ truyền
thống, với hadoop không cần phải tạo lược đồ có cấu trúc trước khi lưu trữ dữ liệu.

Hadoop thể lưu trữ dữ liệu ở nhiều định dạng, bao gồm các định dạng bán cấu trúc
hoặc khơng có cấu trúc.
- Chi phí thấp: Khơng giống như phần mềm độc quyền, Hadoop là mã nguồn mở


15

và chạy trên phần cứng giá rẻ.
2.1.1. Kiến trúc Hadoop cluster
Một Hadoop cluster được xây dựng dựa trên kiến trúc master-slave bao gồm có
một nút chủ chứa NameNode, JobTracker và SecondaryNameNode (nút chủ có thể
chứa DataNode và TaskTracker). Cả NameNode, JobTracker và SecondaryNameNode
có thể nằm trên cùng một máy vật lý (tuy nhiên với cluster thật sự với hàng trăm, hàng
nghìn nút thì thường phải tách các thành phần này ra các máy vật lý khác nhau) [1]. Có
nhiều nút phụ thuộc, mỗi nút phụ thuộc thường đóng 2 vai trị là DataNode và
TaskTracker. Mỗi thành phần có chức năng riêng. NameNode và DataNode chịu trách
nhiệm vận hành hệ thống tập tin phân tán HDFS, JobTracker và TaskTracker chịu
trách nhiệm duy trì bộ máy MapReduce, nhận và thực thi các MapReduce Job. Chức
năng mỗi thành phần như sau:
- NameNode: Là một trình nền quan trọng nhất của Hadoop. Hadoop sử dụng
một kiến trúc master-slave cho cả lưu trữ phân tán và xử lý phân tán. NameNode chỉ
đạo các trình nền DataNode để thực hiện các nhiệm vụ I/O mức thấp. Hadoop có chức
năng quản lý metadata: tên tập tin, danh sách các khối dữ liệu và nơi lưu trữ, quản lý
việc mở đóng các tập tin, quản lý các DataNode và điều hướng quá trình đọc/ghi dữ
liệu từ máy phụ thuộc lên các DataNode [1], [4].
- JobTracker: Chỉ có một JobTracker trên một cụm Hadoop. JobTracker tiếp
nhận các yêu cầu thực thi công việc MapReduce và phân chia công việc này thành các
tác vụ (task) và phân công cho các TaskTracker thực hiện, quản lý tình trạng thực hiện
các tác vụ của TaskTracker. Nếu một tác vụ thất bại (fail), JobTracker sẽ tự động chạy
lại nhiệm vụ đó, có thể trên một nút khác. JobTracker cũng quản lý danh sách các

TaskTracker và tình trạng của từng nút [1], [4].
- SecondaryNameNode: Một trình nền hỗ trợ giám sát trạng thái của các cụm
HDFS, nó lưu trữ một bản sao cho dữ liệu 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 [1], [4].
- DataNode: Mỗi máy phụ thuộc trong cluster sẽ lưu trữ một trình nền DataNode


16

để thực hiện các cơng việc nào đó của hệ thống tập tin phân tán. Khi muốn đọc hay ghi
một tập tin thì tập tin đó được chia nhỏ thành các khối dữ liệu và NameNode sẽ thông
báo cho các máy phụ thuộc thuộc nơi chứa các trình nền DataNode. Máy phụ thuộc sẽ
liên lạc trực tiếp với các trình nền DataNode để xử lý các khối dữ liệu. Hơn nữa, một
DataNode có thể giao tiếp với các DataNode khác để nhân bản các khối dữ liệu của nó
để dự phòng. Như vậy, DataNode chứa các khối dữ liệu thực sự của các tập tin trên
HDFS, quản lý lưu trữ các khối dữ liệu theo yêu cầu của NameNode và đáp ứng yêu
cầu truy cập các khối dữ liệu từ máy phụ thuộc, đáp ứng các yêu cầu tạo/xoá các khối
dữ liệu từ NameNode [1], [4].
- TaskTracker: Có một TaskTracker cho một nút phụ thuộc. Nhiệm vụ của
TaskTracker là thực thi các tác vụ map và reduce theo yêu cầu của JobTracker. Một
trong những trách nhiệm của các TaskTracker là liên tục liên lạc với JobTracker. Nếu
JobTracker không nhận được phản hồi từ một TaskTracker nào đó trong vịng một
lượng thời gian đã quy định, nó sẽ cho rằng TaskTracker lỗi [4].

Hình 2.1. Kiến trú H doop luster [18]
2.1.2. Th nh phần

H doop

Hadoop framework gồm 4 module:

- Hadoop Common: Đây là các thư viện và tiện ích cần thiết để hỗ trợ cho các


×