TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
Đề tài: NGHIÊN CỨU MÔ HÌNH MAPREDUCE
VÀ NỀN TẢNG HADOOP, ỨNG DỤNG XÂY DỰNG
HỆ THỐNG TÌM KIẾM TÀI LIỆU VĂN BẢN TIẾNG VIỆT
Sinh viên thực hiện:
Huỳnh Phương Nam
MSSV: 1091686
Giáo viên hướng dẫn:
Ts. Ngô Bá Hùng
MSCB: 001124
Cần Thơ, 2013
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
Đề tài: NGHIÊN CỨU MÔ HÌNH MAPREDUCE
VÀ NỀN TẢNG HADOOP, ỨNG DỤNG XÂY DỰNG
HỆ THỐNG TÌM KIẾM TÀI LIỆU VĂN BẢN TIẾNG VIỆT
Sinh viên thực hiện:
Huỳnh Phương Nam
MSSV: 1091686
Giáo viên hướng dẫn:
Ts. Ngô Bá Hùng
MSCB: 001124
Cán bộ phản biện:
Ks. Hà Duy An
MSCB: 002366
Ks. Triệu Thanh Ngoan
MSCB: 002481
Luận văn được bảo vệ tại: Hội đồng chấm luận văn tốt nghiệp Bộ môn Mạng
máy tính & Truyền thông, Khoa Công nghệ thông tin & Truyền thông,
Trường Đại học Cần Thơ, vào ngày 07 tháng 5 năm 2013.
Mã số đề tài:
Có thể tìm hiểu luận văn tại:
• Thư viện Khoa CNTT & TT, Trường Đại học Cần Thơ.
• Website: http://www.cit.ctu.edu.vn/
LỜI CẢM ƠN
Kính thưa !
Trong suốt quá trình học tập, nghiên cứu tại trường Đại học Cần Thơ, tôi đã
nhận được sự hướng dẫn tận tình của quý Thầy Cô tại Trường, sự giúp đỡ, hỗ trợ
hết lòng từ Gia đình, Bạn bè. Tôi xin được chân thành bày tỏ lòng biết ơn đến tất cả
mọi người.
Tôi xin được gửi lời cảm ơn đến quý Thầy Cô trường Đại học Cần Thơ, những
người đã tận tình giúp đỡ, hướng dẫn tôi trong quá trình thực hiện Luận văn tốt nghiệp
cũng như suốt quãng thời gian tôi học tập, nghiên cứu tại trường Đại học Cần Thơ.
Xin chân thành gửi lời cảm ơn đến thầy Ngô Bá Hùng vì những gì Thầy đã dành
cho tôi.
Tôi xin được cảm ơn Gia đình, những người đã không ngừng giúp đỡ,
động viên và hỗ trợ tôi trong suốt khoảng thời gian học tập xa nhà.
Cuối cùng, tôi xin được gửi lời cảm ơn đến bạn bè tôi, những người đã luôn
sát cánh cùng tôi, vượt qua những gian nan thử thách. Cảm ơn bạn Nguyễn Thế Anh,
người đã nhiệt tình hợp tác với tôi, cùng nhau thực hiện đề tài này.
Trân trọng !
Cần Thơ, ngày 29 tháng 4 năm 2013
Sinh viên thực hiện
Huỳnh Phương Nam
Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop
MỤC LỤC
KÍ HIỆU VÀ VIẾT TẮT.............................................................................iii
TÓM TẮT.................................................................................................iv
ABSTRACT..............................................................................................v
TỪ KHÓA................................................................................................vi
CHƯƠNG 1: TỔNG QUAN......................................................................1
1.1. ĐẶT VẤN ĐỀ..........................................................................................1
1.2. LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ.............................................................1
1.3. MỤC TIÊU VÀ PHẠM VI NGHIÊN CỨU................................................2
1.4. PHƯƠNG PHÁP THỰC HIỆN...............................................................2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT...........................................................4
2.1. MÔ HÌNH XỬ LÝ DỮ LIỆU PHÂN TÁN MAPREDUCE.........................4
2.1.1. Giới thiệu chung..............................................................................4
2.1.2. Quá trình Split..................................................................................5
2.1.3. Quá trình Map và Shuffle.................................................................5
2.1.4. Quá trình Reduce............................................................................6
2.1.5. Một số bài toán ứng dụng mô hình MapReduce.............................7
2.2. HADOOP - NỀN TẢNG LẬP TRÌNH THEO MÔ HÌNH MAPREDUCE...7
2.2.1. Giới thiệu chung..............................................................................7
2.2.2. MapReduce Layer...........................................................................8
2.2.3. Hadoop Distributed File System Layer..........................................10
2.2.4. Kiểm tra tình trạng hoạt động của hệ thống Hadoop ....................14
2.3. XÂY DỰNG MỘT CHƯƠNG TRÌNH CHẠY TRÊN NỀN HADOOP.....15
2.3.1. Các lớp cơ bản trong một chương trình Hadoop..........................15
2.3.2. Quy trình hoạt động.......................................................................19
2.4. TỔNG QUAN HỆ THỐNG TÌM KIẾM...................................................21
2.4.1. Giới thiệu chung............................................................................21
2.4.2. Các bước xây dựng hệ thống tìm kiếm.........................................21
2.4.3. Tần suất xuất hiện và trọng số của từ ..........................................22
2.4.4. Mô hình không gian vectơ dùng tính độ tương đồng....................24
2.4.5. Ví dụ minh họa...............................................................................25
CHƯƠNG 3: ỨNG DỤNG CƠ SỞ LÝ THUYẾT, GIẢI QUYẾT VẤN ĐỀ
...............................................................................................................29
Trang i
Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop
3.1. NGỮ CẢNH GIẢI QUYẾT VẤN ĐỀ......................................................29
3.2. GIẢI THUẬT..........................................................................................29
3.2.1. Xử lý biểu thức tìm kiếm................................................................30
3.2.2. Tính độ tương đồng.......................................................................32
3.2.3. Sắp xếp tài liệu theo độ tương đồng và xuất kết quả tìm kiếm.....33
3.3. ỨNG DỤNG HADOOP - TĂNG TỐC ĐỘ XỬ LÝ CỦA HỆ THỐNG.....35
3.3.1. Xử lý biểu thức tìm kiếm................................................................35
3.3.2. Tính độ tương đồng.......................................................................35
3.3.3. Sắp xếp tài liệu theo độ tương đồng và xuất kết quả tìm kiếm.....36
3.4. CÁC ĐỀ XUẤT VÀ CẢI TIẾN................................................................37
3.4.1. Cải tiến công thức tính độ tương đồng..........................................37
3.4.2. Khắc phục khuyết điểm của Hadoop trong tính độ tương đồng....38
3.4.3. Cải tiến cách lưu trữ trọng số tfi-df trên mỗi block trong quá trình
tính độ tương đồng..................................................................................40
CHƯƠNG 4: KẾT QUẢ THỰC HIỆN.....................................................42
4.1. KẾT QUẢ THỰC HIỆN.........................................................................42
4.1.1. Phần nghiên cứu mô hình MapReduce và nền tảng Hadoop.......42
4.1.2. Phần xây dựng hệ thống xử lý yêu cầu tìm kiếm..........................42
4.2. KẾT LUẬN VÀ ĐỀ XUẤT......................................................................44
4.2.1. Phần nghiên cứu mô hình MapReduce và nền tảng Hadoop.......44
4.2.2. Phần xây dựng hệ thống xử lý yêu cầu tìm kiếm..........................45
PHỤ LỤC...............................................................................................46
TÀI LIỆU THAM KHẢO..........................................................................55
Trang ii
Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop
KÍ HIỆU VÀ VIẾT TẮT
•
TF - “Term Frequency”: Tần số xuất hiện của từ trong tài liệu.
•
IDF - “Inverse Document Frequency”: Tần số nghịch đảo tài liệu của từ.
•
TF-IDF - “Term Frequency-Inverse Document Frequency”: Trọng số của từ.
•
HDFS - “Hadoop Distributed File System”: Hệ thống tập tin phân tán của
Hadoop.
Trang iii
Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop
TÓM TẮT
Chúng ta đang sống trong thời đại bùng nổ dữ liệu số. Mỗi ngày lượng dữ liệu
lưu trữ không ngừng tăng lên và vượt ra khỏi khả năng xử lý của các hệ thống
truyền thống. Đều đó đòi hỏi phải xây dựng một hệ thống mới, có khả năng xử lý
được một lượng dữ liệu lớn, trong một khoảng thời gian chấp nhận được. Xuất phát từ
nhu cầu đó, Hadoop đã ra đời dựa trên ý tưởng từ các bài báo về mô hình xử lý dữ liệu
phân tán MapReduce của Google và Hệ thống tập tin của Google - Google File
System (GFS). Hiện nay, Hadoop đã được ứng dụng rộng rãi trên khắp thế giới,
tuy nhiên ở Việt Nam vẫn chưa có nhiều nghiên cứu ứng dụng công nghệ này.
Hadoop hoạt động trên ý tưởng của mô hình xử lý dữ liệu phân tán Mapreduce,
cụ thể là hệ thống sẽ chia nhỏ nhiệm vụ lớn cho hàng loạt máy tính cùng nhau xử lý
song song. Với ý tưởng đó, Hadoop có thể dễ dàng được triển khai trên các hệ thống
máy tính có sẵn chứ không cần phải đầu tư những thiết bị phần cứng cao cấp, đắt tiền
nào cả. Đặc biệt, Hadoop là một dự án mã nguồn mở và hoàn toàn miễn phí.
Ở Việt Nam những năm gần đây, lượng dữ liệu số tăng lên không ngừng,
nhu cầu tìm kiếm tra cứu tài liệu văn bản tiếng Việt trên các kho dữ liệu lớn, cực lớn
đã xuất hiện. Đề tài này nhằm nghiên cứu tổng quát mô hình MapReduce và nền tảng
Hadoop, sau đó ứng dụng kết quả nghiên cứu vào việc xây dựng một công cụ
tìm kiếm có xếp hạng kết quả dành cho tài liệu văn bản tiếng Việt.
Trang iv
Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop
ABSTRACT
We’re living in data explosion period. Everyday, amount storage of data
continuous increases and over limits of processing of traditional systems. Therefore,
building a new system is very necessary. That system can process amount of great data
in an acceptable period. Starting from that demand, Hadoop was born based on ideas
from articles about model of distributed data processing MapReduce of Google and
Google File System (GFS). Nowadays, Hadoop has been widely applied all over the
world. However, in Viet Nam, there has been little research in order to apply this
technology.
Hadoop acts based on model of distributed data processing MapReduce, it
means that it will divide small from big task for series of computer to parallel
processing. With that idea, Hadoop can be easily deployed on computer systems
available. It doesn’t require investing of the high-end and expensive hardware.
Especially, Hadoop is a opent-source project and extremely free
In Vietnam, recent years, amount of
searching text document by Vietnamese on
appeared. The objective of this topic was
Hadoop basis, then applying the results of
ranking results for Vietnamese documents.
data continuous increases, demand for
great storage of data, extra- great has
study general MapReduce model and
research into building a search engine
Trang v
Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop
TỪ KHÓA
•
MapReduce
•
Hadoop
•
HDFS
•
Vector space model
•
TF-IDF
Trang vi
Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop
CHƯƠNG 1: TỔNG QUAN
1.1. ĐẶT VẤN ĐỀ
Với sự phát triển nhanh chóng, hiện nay công nghệ thông tin đã thật sự lấn sâu
vào mọi lĩnh vực trong đời sống, máy tính xuất hiện ở khắp mọi nơi, dữ liệu của mọi
lĩnh vực dần được số hóa để thuận tiện trong việc lưu trữ, phân phối, tra cứu, v.v...
Điều này đã dẫn đến sự bùng nổ của dữ liệu số. Hiện tại, nhiều tổ chức đang gặp rất
nhiều khó khăn khi phải thao tác với kho dữ liệu số quá lớn của mình, các hệ thống
xử lý truyền thống bị quá tải, đặt ra yêu cầu phải xây dựng hệ thống xử lý mới, có khả
năng làm việc hiệu quả với dữ liệu lớn.
Ở Việt Nam, một trong những nhu cầu thao tác với dữ liệu lớn được đặt ra là
tìm kiếm tài liệu văn bản tiếng Việt, phục vụ cho nhu cầu học tập, nghiên cứu, v.v.
Việc tìm kiếm chẳng những đòi hỏi tính chính xác cao, mà còn cần được thực hiện
trong một khoảng thời gian chấp nhận được. Đây là một vấn đề đáng được quan tâm
và nghiên cứu giải quyết.
1.2. LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Tại trường Đại học Cần Thơ, vấn đề xây dựng một công cụ tìm kiếm cho
tài liệu văn bản tiếng Việt đã từng được nghiên cứu trước đây trong các đề tài luận văn
cao học:
•
Đề tài: “Nghiên cứu nền tảng tính toán song song với MapReduce và
Hadoop. Áp dụng cho việc xây dựng wordnet tiếng Việt và tạo chỉ mục
tài liệu”; tác giả Nguyễn Minh Thuận, Nguyễn Trọng Thức; năm 2012 [4].
•
Đề tài: “Xây dựng một ứng dụng minh họa cho khả năng của MongdoDB”;
tác giả Bùi Thị Hồng Phúc; năm 2012 [5].
Các tác giả đã dùng mô hình tính toán phân tán MapReduce được cài đặt trên
nền tảng Hadoop, kết hợp với Hệ quản trị cơ sở dữ liệu MongoDB để giải quyết
vấn đề. Công cụ đã cơ bản giải quyết được vấn đề, tuy nhiên vẫn còn một số hạn chế:
Việc xử lý yêu cầu tìm kiếm còn chậm, không thể bổ sung tài liệu mới vào kho tài
liệu, chương trình hỗ trợ tìm kiếm là ứng dụng desktop, khó triển khai thành công cụ
Trang 1
Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop
tìm kiếm trực tuyến.
1.3. MỤC TIÊU VÀ PHẠM VI NGHIÊN CỨU
Sau khi phân tích yêu cầu của đề tài và bàn bạc với thành viên còn lại của
nhóm, trong khuôn khổ luận văn này, mục tiêu và phạm vi nghiên cứu của tôi là:
•
Tìm hiểu nguyên tắc hoạt động của mô hình xử lý dữ liệu phân tán
MapReduce, cách thức cài đặt và sử dụng nền tảng Hadoop.
•
Vận dụng mô hình MapReduce và nền tảng Hadoop, xây dựng hệ thống
xử lý yêu cầu tìm kiếm trên tập tài liệu văn bản tiếng Việt có kích thước lớn,
đã được xử lý lập chỉ mục trước đó. Kết quả tìm kiếm có sự sắp xếp dựa
theo mức độ liên quan giữa biểu thức tìm kiếm và nội dung của mỗi tài liệu.
Hệ thống được xây dựng dưới dạng một ứng dụng trực tuyến, có thời gian
xử lý cho mỗi yêu cầu tìm kiếm đủ nhanh, để người dùng chấp nhận được.
•
Triển khai hệ thống trên một mạng các máy tính được kết nối, kiểm tra
đánh giá khả năng hoạt động của hệ thống.
1.4. PHƯƠNG PHÁP THỰC HIỆN
Để hoàn thành nội dung được phân công, trước tiên cần tìm kiếm, nghiên cứu
các tài liệu về:
•
Mô hình xử lý phân tán MapReduce.
•
Cách thức cài đặt và khai thác nền tảng Hadoop.
•
Mô hình không gian vector, tính độ tương đồng giữa các tài liệu văn bản.
Sau khi nắm được cơ sở lý thuyết, sẽ phân tích thiết kế giải thuật cho từng
thành phần của hệ thống, lựa chọn ngôn ngữ lập trình, tiến hành cài đặt các giải thuật,
và tiếp tục nghiên cứu các vấn đề phát sinh.
Cuối cùng sẽ kết hợp với thành viên còn lại của nhóm, tổng hợp các hệ thống
Trang 2
Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop
do mỗi người thực hiện lại thành một hệ thống hoàn chỉnh, sau đó tiến hành triển khai,
kiểm tra đánh giá khả năng hoạt động.
Trang 3
Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. MÔ HÌNH XỬ LÝ DỮ LIỆU PHÂN TÁN MAPREDUCE
2.1.1. Giới thiệu chung
Năm 2004, Google công bố mô hình xử lý dữ liệu phân tán MapReduce, Mô
hình này là sáng kiến của một nhóm các kỹ sư Google, khi nghiên cứu tìm kiếm
giải pháp mở rộng cỗ máy tìm kiếm của họ. Có thể coi MapReduce là một mô hình
lập trình, hay một giải thuật lập trình, chuyên dùng để giải quyết vấn đề về xử lý
dữ liệu lớn. Mô hình này cơ bản gồm hai thao tác chính là Map và Reduce,
với ý tưởng là chia công việc lớn ra thành nhiều công việc nhỏ, giao cho nhiều
máy tính cùng thực hiện - thao tác Map, sau đó tổng hợp kết quả lại - thao tác Reduce.
Split
Map
Input split
Input split
Input
Shuffle
Reduce
Mapper
Mapper
Input split
Mapper
Input split
Mapper
...
...
Input split
Mapper
Reducer
Output
...
...
Reducer
Output
Hình 2.1.1.a: Mô hình tổng quát của MapReduce
Trong mô hình trên, ngoài hai quá trình cơ bản là Map và Reduce đã được
trình bày, còn có thêm hai quá trình nữa là Split và Shuffle, hai quá trình này lần lượt
giữ vai trò: phân chia dữ liệu đầu vào, tạo tiền đề cho quá trình Map và gom nhóm
dữ liệu đầu ra của quá trình Map, tạo tiền đề cho quá trình Reduce.
MapReduce định nghĩa dữ liệu dưới dạng các cặp - ; ví dụ, key có thể là tên của tập tin và value nội dung của tập tin, hoặc key là địa
chỉ URL và value là nội dung tại URL, v.v. Dữ liệu được định nghĩa theo dạng này
Trang 4
Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop
linh hoạt hơn các bảng dữ liệu quan hệ hai chiều truyền thống (quan hệ cha - con hay
còn gọi là khóa chính - khóa phụ).
2.1.2. Quá trình Split
Để có thể phân tán công việc trên hệ thống máy tính, trước tiên cần phải
phân nhỏ khối dữ liệu đầu vào cần xử lý ra thành nhiều phần, rồi sau đó mới có thể
phân công cho mỗi máy xử lý một phần trong số đó. Quá trình phân chia dữ liệu này
được gọi là Split, Split sẽ dựa vào một bộ tiêu chí được đặt ra trước để chia nhỏ
dữ liệu, mỗi mảnh dữ liệu được chia nhỏ như vậy gọi là một input split.
Input split
Input split
Input
Split
Rules
Input split
...
Input split
Hình 2.1.2.a - Quá trình Split
2.1.3. Quá trình Map và Shuffle
Sau khi các input split được tạo ra, Quá trình Map được thực hiện - hệ thống sẽ
phân bố các input split về các máy xử lý, các máy được phân công sẽ tiếp nhận và
xử lý input split được giao, ta gọi quá trình diễn ra trên nội bộ mỗi máy trong quá trình
Map là Mapper. Trước khi được xử lý, input split được định dạng lại thành dữ liệu
chuẩn của MapReduce - dữ liệu có dạng các cặp . Kết thúc quá trình
Mapper trên mỗi máy, dữ liệu đầu ra cũng có dạng các cặp , chúng sẽ
được chuyển sang cho quá trình Shuffle để phân nhóm theo tiêu chí đã được định
trước, chuẩn bị cho bước xử lý phân tán tiếp theo. Như vậy, quá trình Shuffle sẽ được
thực hiện một cách nội bộ trên mỗi máy chạy Mapper.
Trang 5
Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop
Mapper
Input
Split
Reader
key value
key value
key value
key value
key value
key value
key value
key value
Processing
Rules
...
...
key value
key value
key value
key value
key value
Shuffle
Rules
...
key value
key value
key value
Hình 2.1.3.a - Quá trình Mapper và Shuffle trên một máy.
2.1.4. Quá trình Reduce
Quá trình Shuffle diễn ra trên nhiều máy nhưng do sử dụng chung một tiêu chí
đã được định trước, nên việc phân nhóm dữ liệu trên các máy có sự thống nhất. Các
nhóm dữ liệu tương ứng với nhau trên tất cả các máy chạy Shuffle sẽ được gom lại
chuyển về cho cùng một máy xử lý, cho ra kết quả cuối cùng. Toàn bộ quá trình này
được gọi là Reduce, quá trình xử lý trên từng máy trong quá trình Reduce là quá trình
Reducer.
Shuffle
reduce
Output
reduce
Output
...
...
reduce
Output
...
...
Shuffle
...
Hình 2.1.4.a: Quá trình Reduce
Trang 6
Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop
2.1.5. Một số bài toán ứng dụng mô hình MapReduce
Grep phân tán
Grep là một tiện ích dòng lệnh dùng cho việc tìm kiếm trên tập dữ liệu văn bản.
Khi áp dụng mô hình MapReduce, trong quá trình Map, mỗi Mapper sẽ làm việc với
một tập con của tập dữ liệu văn bản, công việc của mỗi Mapper là tìm kiếm và đánh
dấu những dòng khớp với biểu thức tìm kiếm trong tập dữ liệu văn bản mà mình phụ
trách. Kết quả của các Mapper sẽ được quá trình Reduce gom lại tạo thành kết quả
cuối cùng.
Sắp xếp phân tán
Mô hình MapReduce rất phù hợp với bài toán sắp xếp dữ liệu. Trong quá trình
Map, mỗi Mapper sẽ chỉ giữ nhiệm vụ đọc dữ liệu lên, Shuffle sẽ phân nhóm dữ liệu
theo từng khoảng giá trị, Quá trình Reduce sẽ chịu trách nhiệm sắp xếp dữ liệu, mỗi
Reducer sẽ sắp xếp dữ liệu trên khoảng giá trị được phân công.
Một ví dụ cụ thể về việc sắp xếp dữ liệu: Bài toán sắp xếp một tập dữ liệu nhiệt
độ. Thay vì sắp xếp toàn bộ dữ liệu bằng một chương trình tuần tự, ta có thể xử lý
bằng mô hình MapReduce như sau: Tại quá trình Map, dữ liệu sẽ được đọc lên và
định dạng thành các cặp . Tại quá trình Shuffle, ta sẽ phân chia dữ
liệu theo từng khoảng giá trị của trường “nhiệt độ”, trước khi chuyển qua cho Reduce
sắp xếp. Như vậy, mỗi Reducer sẽ chỉ sắp xếp những dữ liệu nằm trong một khoảng
nhất định. Ta dễ dàng tổng hợp kết quả sắp xếp của các Recducer, để tạo ra kết quả
sắp xếp toàn cục.
2.2. HADOOP - NỀN TẢNG LẬP TRÌNH THEO MÔ HÌNH MAPREDUCE
2.2.1. Giới thiệu chung
Hadoop là một nền tảng nguồn mở, được Dough Cutting tạo ra khi ông nghiên
cứu về Nutch - một ứng dụng tìm kiếm. Hadoop được viết bằng Java, dùng hỗ trợ xây
dựng, thực thi các ứng dụng tính toán phân tán theo mô hình MapReduce. Hadoop
cluster là hệ thống máy tính đã được triển khai nền tảng Hadoop, một Hadoop cluster
bao gồm hai thành phần cơ bản là kiến trúc MapReduce và hệ thống tập tin phân tán
Trang 7
Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop
HDFS, Trong đó:
•
Kiến trúc MapReducer gồm hai phần: TaskTracker - trực tiếp thực thi các
tác vụ xử lý dữ liệu, JobTracker - quản lý và phân chia công việc cho các
TaskTracker.
•
Hệ thống HDFS gồm hai phần: DataNode - nơi trực tiếp lưu trữ dữ liệu,
mỗi DataNode chịu trách nhiệm lưu trữ một phần dữ liệu của hệ thống,
NameNode - quản lý các DataNode, dẫn đường cho các yêu cầu truy xuất
dữ liệu.
Kiến trúc của Hadoop cluster là kiến trúc Master-Slave, và cả hai thành phần
MapReduce và HDFS đều tuân theo kiến trúc này .
Master
Slave
TaskTracker
JobTracker
TaskTracker
...
TaskTracker
MapReduce layer
HDFS layer
DataNode
NameNode
DataNode
...
DataNode
Hình 2.2.1.a: Các thành phần của Hadoop cluster
2.2.2. MapReduce Layer
JobTracker và TaskTracker
Trang 8
Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop
Trong Hadoop, mỗi quá trình xử lý MapReduce được gọi là một job. Việc thực
hiện job sẽ được quản lý bởi hai đối tượng là JobTracker và TaksTracker. JobTracker
hoạt động tại máy master có nhiệm vụ quản lý toàn bộ hệ thống gồm việc tạo và quản
lý job, phân bố dữ liệu và phân công công việc cho các TaskTracker, xử lý lỗi, v.v.Tại
mỗi máy slave có một TaskTracker hoạt động để tạo các task xử lý theo yêu cầu của
JobTracker. Ngoài ra, định kỳ mỗi khoảng thời gian, TaskTracker phải gửi tín hiệu
HeartBeat về JobTracker để thông báo rằng nó vẫn đang còn hoạt động. Điều này đảm
bảo JobTracker lập thời biểu công việc chính xác và hiệu quả cho cả hệ thống.
Cơ chế hoạt động mô hình MapReduce trong Hadoop
Mỗi khi có yêu cầu thực thi một ứng dụng MapReduce, JobTracker sẽ tạo ra
một JobClient và chép toàn bộ code thực thi cần thiết của job đó lên hệ thống tập tin
phân tán HDFS, mỗi JobClient sẽ được gán một jobID duy nhất. Tiếp theo JobClient
sẽ gửi một yêu cầu thực thi job lên JobTracker, JobTracker dựa theo yêu cầu của
JobClient, sẽ gửi yêu cầu khởi tạo task kèm theo các thông tin phân công công việc
đến các TaskTracker. Mỗi TaskTracker sẽ dựa vào thông tin phân công lần lượt thực
hiện: Khởi tạo map task hoặc reduce task, chép toàn bộ code thực thi trên HDFS về,
thực hiện công việc được phân công. Sau khi thực hiện xong, TaskTracker sẽ thông
báo cho JobTracker và tự giải phóng.
MapReduce 1: Run job
program
3: Post
program source
Master
JobClient
2: Get JobID
4: Submit Job
5: Initialize task
6: Get program source
And input split
HDFS
JobTracker
Slave
StaskTracker
Run task
task
Hình 2.2.2.a: Cơ chế hoạt động của JobTracker và TaskTracker trong Hadoop
Trang 9
Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop
2.2.3. Hadoop Distributed File System Layer
Giới thiệu chung
Hadoop Distributed File System (HDFS) là một hệ thống tập tin phân tán, được
thiết kế để chạy trên hệ thống nhiều máy tính được nối mạng với nhau, có khả năng
chịu lỗi cao và có thể triển khai trên hệ thống phần cứng không đòi hỏi cấu hình đắt
tiền. Có rất nhiều đặc điểm giống nhau giữa HDFS và những hệ thống tập tin phân tán
khác. Tuy nhiên, HDFS có những đặc điểm nổi bật riêng giúp nó có khả năng hỗ trợ
tốt cho các ứng dụng xử lý dữ liệu lớn.
Những đặc điểm của HDFS
Dữ liệu lưu trữ cực lớn: HDFS được thiết kế để lưu trữ những tập tin với kích
thước hàng trăm megabyte, gigabyte hay terabyte. Ngày nay, hệ thống HDFS có thể
lưu trữ lên đến petabyte dữ liệu.
Xử lý lỗi phần cứng: HDFS không đòi hỏi phần cứng cấu hình cao đối với hệ
thống máy tính. Vì vậy, việc xảy ra lỗi trên các thiết bị phần cứng là hoàn toàn có thể
xảy ra một cách thường xuyên. Một hệ thống HDFS có thể bao gồm hàng ngàn máy
xử lý, mỗi máy (node) lưu trữ một phần của dữ liệu. HDFS có cơ chế quản lý toàn bộ
các node đang chạy trên hệ thống để nhận biết node nào đang rảnh và node nào bị lỗi.
Những công việc và dữ liệu được xử lý tại node bị lỗi đó sẽ được chuyển sang node
rảnh của hệ thống để xử lý lại.
Dữ liệu chặt chẽ: HDFS hoạt động theo cơ chế ghi một lần - đọc nhiều lần. Mỗi
tập tin sẽ được tạo, ghi dữ liệu và đóng lại hoàn toàn. Việc cập nhật ghi thêm dữ liệu
vào tập tin là không thể thực hiện trên HDFS. Dữ liệu có thể được truy xuất nhiều lần
nhưng vẫn đảm bảo tính nhất quán. Cơ chế thích hợp cho những ứng dụng đọc dữ liệu
theo dạng tuần tự.
Di chuyển tính toán thay vì di chuyển dữ liệu: những yêu cầu tính toán của ứng
dụng sẽ được thực hiện tại node chứa dữ liệu gần nhất với nó. Điều này càng hiệu quả
đối với dữ liệu lớn và hệ thống mạng băng thông hẹp. HDFS cung cấp giao diện cho
ứng dụng tìm kiếm và di chuyển chính nó đến vị trí dữ liệu gần nhất.
Trang 10
Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop
Chạy trên nhiều nền tảng và thiết bị: HDFS được thiết kế để dễ dàng di chuyển
từ nền tảng này sang nền tảng khác, thiết bị này sang thiết bị khác. Điều này tạo điều
kiện thuận lợi cho việc ứng dụng HDFS một cách rộng rãi.
Các khái niện trên HDFS
Block: Mỗi đĩa cứng có một kích thước block nhất định. Đó là kích thước dữ
liệu nhỏ nhất có thể được ghi và đọc trên đó. Kích thước block cho những tập tin hệ
thống cho những đĩa lưu trữ đơn thường khoảng vài kilobyte. Việc này giúp người
dùng dễ dàng đọc hoặc ghi tập tin với chiều dài đó. HDFS cũng có quy định về kích
thước block. Mặc định mỗi block trên HDFS có kích thước là 64MB.
NameNode và DataNode: HDFS là một kiến trúc Master/Slave. HDFS cluster
là hệ thống máy tính đã được triển khai HDFS. Trong một cluster HDFS có duy nhất
một NameNode đóng vai trò giống như một master, dùng quản lý không gian tên của
hệ thống tập tin (file system namespace) và điều phối việc truy xuất dữ liệu. Ngoài ra,
còn có các DataNode đóng vai trò như các slave. Mỗi DataNode chịu trách nhiệm
quản lý thông tin lưu trữ của các dữ liệu trên máy mà nó đang chạy. HDFS cung cấp
một không gian tên cho phép dữ liệu của người dùng lưu trữ trong các tập tin. Mỗi tập
tin sẽ được tách thành một hoặc nhiều block được lưu trữ trong một tập hợp những
DataNode. Dựa vào không gian tên, NameNode có thể thực hiện các thao tác như
đóng, mở và đổi tên tập tin và thư mục. NameNode cũng xác định sơ đồ lưu trữ các
block của DataNode. Ngoài nhiệm vụ đáp ứng yêu cầu đọc, ghi dữ liệu do Namenode
chuyển đến, các DataNode cũng có nhiệm vụ tạo, xóa và nhân rộng các blocks theo
những chỉ thị từ NameNode.
DataNode
DataNode
NameNode
...
DataNode
Hình 2.2.3.a: Kiến trục Master/Slave của hệ thống tập tin phân tán Hadoop (HDFS)
Trang 11
- Xem thêm -