BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC HUẾ TRƯỜNG ĐẠI HỌC KHOA HỌC VÕ THANH PHI TÌM HIỂU MƠ HÌNH XỬ LÝ DỮ LIỆU MAPREDUCE VÀ HỆ THỐNG FILE
PHAN TAN HADOOP
CHUYEN NGANH: KHOA HOC MAY TINH
MA SO: 8.48.01.01
LUAN VAN THAC SI KHOA HOC DINH HUONG UNG DUNG
Người hướng dẫn khoa học:
TS NGUYỄN ĐÌNH HOA CƯƠNG PGS.TS NGUYEN MAU HAN
Thừa Thiên Huế, 2020
Trang 2
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này là công trình nghiên cứu của cá nhân tôi Tất
cả số liệu, kết quả nghiên cứu trong luận văn là trung thực, chưa được người khác
công bố trong bất cứ một công trình nghiên cứu nào
Học viên
Trang 3LOI CAM ON
Luận văn thạc sĩ khoa học này là kết quả của quá trình học tập tiếp thu kiến thức trong nhà trường Trong quá trình thực hiện luận văn tốt nghiệp, tôi luôn nhận
được sự giúp đỡ và hỗ trợ tận tình của Quý Thầy Cô và đồng nghiệp
Tôi xin chân thành bày tỏ lòng biết ơn:
- TS NGUYEN DINH HOA CUONG, PGS TS NGUYEN MAU HAN đã
tận tình hướng dẫn, truyền đạt kinh nghiệm, khuyến khích, động viên và giúp đỡ tôi trong suốt quá trình thực hiện luận văn tốt nghiệp
- Quý Thầy Cô Khoa Công nghệ thông tin và Phòng Đào tạo Sau đại học,
Trường Đại học Khoa học Huế đã tận tình hướng dẫn, truyền đạt kiến thức, tạo điều kiện thuận lợi trong suốt quá trinh học tập
- Ban Giám hiệu, Ban Giám đốc Thư viện Trường Đại học An Giang đã hỗ
trợ và tạo điều kiện thuận lợi để tơi hồn thành khóa học
Xin nhận lời cảm ơn sâu sắc nhat!
Học viên
Võ Thanh Phi
Trang 4các nút nhanh hơn sẽ thực hiện hàm Reduce thứ nhất, khi hoàn thành sẽ khởi động hàm Reduce thứ hai Với hệ số này, việc cân bằng tải khi xử lý công việc sẽ tốt hơn nhiễu,
giảm chỉ phí thất bại nhưng lại tăng chi phí khung (MapReduce framework)
Chores Dữ liệu , Cac cap
ae SẠP đầu vào ` Ket qua (khoa, téng
(khoa, gia Ham Fe dt hed Các giá trỊ tr) trung Reduce a có cùng lan ỗ khóa) Hình 2.7 Mô hình hoạt động của hàm Reduce 2.4.4 Nguyên tắc hoạt động
MapReduce có thể xử ly dữ liệu được lưu trữ trên một hệ thống file hoặc trong cơ sở dữ liệu, nó hoạt động bằng cách phân chia dữ liệu đầu vào từ các nút worker, thực hiện song song các nhiệm vụ của Map Khi các trình ánh xạ đã hoàn thành, các
kết quả được chuyên đến các máy khác đang chạy các nhiệm vụ Reduce Dữ liệu
đầu vào của hàm Reduce được lay từ hàm Map nên nhiệm vụ Reduce, luôn thực hiện sau nhiệm vụ Map
MapReduce hoạt động = các giai đoạn như trong hình 2.8: 7 T T T T T — Đâu vào & + 5 @ @ be =
| KIxkiy kế | K3x k3 k2 | KS k5 k2 IE Khóa trung gian
Trang 5CHUONG 2 TINH TOAN PHAN TAN VỚI HADOOP 2s se 15 2.1 Giới thiệu về Apache Hadoop - 22-222 222225121212111211121122122121 xe 15 2.2 Các thành phần của Hadoop 22: 2s 2222222225122512111221121112212112212 xe 16 2.3 Hệ thống file phân tán (Hadoop distributed file system) 22-552 17
2.4 XỬ LÝ PHÂN TÁN VỚI MAPREDUCE - 222222, 19
2.4.1 Giới thiệu về MapReduee - 552222 221222122122112122122222 xe 19 2.4.2 Hàm Map 20 2.4.3 Hàm Reduce 2.4.4 Nguyên tắc hoạt động
2.4.5 Hiệu quả sử dụng mơ hình tính tốn MapReduce
2.5 Tiểu kết chương 2 -22©222222222122212212221e6 29 CHUONG 3 XU LY BIG DATA VA UNG DUNG 30
3.1 Xử ly Big Data v6i Hortonworks Sandbox 30
3.1.1 Giới thiệu Hortonworks Data Platform 3.0 30
3.1.2 Những lợi ích của Hortonworks Data Platform 3.0
3.1.3 Các thành phần của Hortonworks Data Platform 3.0
3.1.4 Cài đặt Hortonworks Sandbox HDP 3.0 trên Oracle VirtualBox
3.2 Bài toán thống kê độ tin cậy và tỷ lệ lỗi của đĩa cứng
3.2.1 na 36
3.2.2 Dữ liệu đầu vào và đầu ra của bài toán - S221 22112211111 2e 36 3.2.3 Cài đặt bài toán trên Hortonworks Sandbox HDP 3.0 +: 38
3.3 Danh gia Hortonworks Sandbox HDP 3.0 và SQL 2019 trong xử lý Big Data 46
3.3.1 Đánh giá hiệu năng xử lý truy vấn dữ liệu - 2222222222222 46 3.3.2 Kết luận -: 22c 221222211221112211211121112211121121 21122121 rae 49 3.4 Tiểu kết chương 3 - 22 22222122212112112112211211221122222 re 50 KET LUAN VA HƯỚNG PHÁT TRIỂN 22 22222122212221221222222 e6 51
Trang 6DANH MỤC CÁC BẢNG
Trang
Bảng2.l Dữ liệu đầu ra của hàm Map ©25222222122212212222222222 e6 24
Bảng2.2 Kết quả của giai đoạn kết hợp -522222221222122212222222222 e6 24 Bang 2.3 Kết quả của giai đoạn trộn và sắp XẾp -2- 52 2222221222122 2 e6 25
Bảng24_ Kết quả của bài toán 222-22222212221222122122112222222 2e 25 Bang 3.1 Cấu trúc file dữ liệu đầu vào -552222 2212221221212 2x6 37 Bang 3.2 Thống kê tỷ lệ hư hỏng của các Ổ đĩa 222222 22222212221222122222 e6 4
Bảng 3.3 Thống kê số bản ghi và dung lượng lưu trữ dữ liệu trên SQL 46
Trang 7Hình 1.1 Hình 1.2 Hình 1.3 Hình 1.4 Hình 1.5 Hình 1.6 Hình 1.7 Hình 1.8 Hình 1.9 Hình 1.10 Hình 2.1 Hình 2.2 Hình 2.3 Hình 2.4 Hình 2.5 Hình 2.6 Hình 2.7 Hình 2.8 Hình 2.9 Hình 2.10 Hình 3.1 Hình 3.2 Hình 3.3 Hình 3.4 Hình 3.5 Hình 3.6 Hình 3.7 DANH MỤC CÁC HÌNH Trang Mơ hình Master/SÏave ch HH ngu He 5 Mô hình Client/S€TV€T c1 nh HH He, 5
Mô hình bình đẳng 22 22 222222122112111211121112112211122 xe 5
Mo hình sử lý phần:DẤn pusrsesitoitoiBiEbiSEGDIEHGDNIEESBRIREEEGĐISHERGABSEĐeBNi 6
Các phân đoạn và mô hình vật lý cho một quan hệ tổng thê 7
Mô hình truy cập từ xa trực tiẾp - 2222222212222 re 8 Mô hình truy cập từ xa gián tiếp -©2-222112111211211.12 xe 8 Mơ hình tổng thê của Big Dafa 22222 221222122112212222ee 10 Các thành phần phân tích Big Data 2- 222 222222122212221222222 e0 12 Những ứng dụng của Big Data trong thực tế -©222222222222zz2xce2 13 Mô hình hoạt động của Apache Hadoop YARN 16
Mô hình phân chia và phân phối các Block của HDES 17
Mô hình hoạt động của Hadoop distributed file system 18
Mô hình hoạt động của secondary NameNode .-: 19
Mô hình tổng quát của MapReđuce 22222 222222122226 20 Mô hình hoạt động của hàm Map ị- ccc Sc series 21 Mô hình hoạt động cla ham Reduce ec cecececeeceeeeeeeteeseeeeeeeentenes 22 Các giai đoạn hoạt động của MapReduce ccccssieinreree 22 Quá trình thực hiện bài toán đếm từ 255 2n tre 26 Quá trình lập lịch cho nhiệm vụ MapReduce trên YARN 27
Các ứng dụng của Hortonworks Data Platform - -:ccs:ss+ 5: 30 Data management của HDP 3.0 - LH HH ue 31 Datacaccess cla-HDP 3:0 :zcsitssosrtiigiotsiirllslSE-EEISGISEEIVIEGSEAIVI3SESGI903 03888 32 Governance integration cla HDP 3.0 oo ec ceceececeeseeeeeeeteeseeseteesentenes 33 Security cla HDP 3.Ú - S1 2x HH HH HH Ha HH Hà nà tt 34 Operations của HDP 3 - c St 211 2 ty Hà Hye 34 Giaordién newoi ding DAS venience enceueyemcemenecenmm RNR 38
Trang 8Hình 3.8 Câu lệnh truy vấn để giải bài toán -222 2222212221222 xe 39
Hình39 Kết quả thu được sau khi thực hiện câu truy _ "Ắ 39 Hình 3.10 Thống kê công việc thực hiện của hệ thống ` ` 40
Hình 3.11 Tổng thời gian thực hiện câu truy vấn -52222222212221222122 e6 40
Hình 3.12 Biểu đồ so sánh thời gian truy vấn dữ liệu giữa SQL và HDP 3.0 49
Trang 9CSDL DAG DAS DBMS EC HDFS HDP ORC RPC DANH MUC CAC CHU VIET TAT Cơ sở dữ liệu
Directed Acyclic Graph (Dé thi theo chu ky) Data Analytics Studio (Studio phân tích dữ liệu)
Database Management System (Hé théng quan ly co sé dit liéu) Erasure Coding (Ma hoa xóa)
Hadoop Distributed File System (Hé théng tap tin phân tán Hadoop) Hortonworks Data Platform (Nén tảng dữ liệu Hortonworks)
Optimized Row Columnar (Dữ liệu dòng cột được tối ưu hóa)
Remote Procedure Call (Phương thức truy cập dữ liệu từ xa)
Trang 10MỞ ĐẦU
1 LÝ DO CHỌN ĐÈ TÀI
Ngày nay với sự phát triển nhanh chóng của công nghệ thông tin, dữ liệu được
tạo ra từ các hoạt động nghiên cứu khoa học, các trang web thương mại điện tử hay
các trang mạng xã hội, với kích thước ngày càng lớn và rất phức tạp
Tuy nhiên, những bộ dữ liệu này, ân chứa trong mình những thông tin vô cùng quý giá Nếu được phân tích hay trích xuất hợp lý, nó có thể giúp cho việc phát triển kinh doanh, nghiên cứu khoa học hoặc những dự báo mà chúng ta có thể đề phòng hay có những hướng xử lý hiệu quả trong tương lai Ví dụ như Amazon, Facebook hay Google, các công ty này đang cố gắng làm giàu kho đữ liệu của minh Ti những dữ liệu này, họ có thê phân tích để nắm bắt hành vi, sở thích của người tiêu dùng để đưa ra những chiến lược kinh doanh hiệu quả hơn
Vì dữ liệu được tạo ra với tốc độ rất nhanh và rất phức tạp (đa số là không có
cấu trúc), nên các cơ sở dữ liệu truyền thống không thê xử lý được, đòi hỏi chúng ta phải thay đổi quy trình từ việc lưu trữ đến việc phân tích dữ liệu nên hiện nay nhiều công ty, doanh nghiệp trong nước vẫn còn lúng túng chưa khai thác hiệu quả những bộ đữ liệu có cấu trúc phức tạp này
Từ những lý do trên, em chon để tài “Tìm hiểu mô hình xử lý dữ liệu MapReduce và hệ thống file phân tán Hadoop” Hệ sinh thái Hadoop sẽ giúp chúng ta, giải quyết những vấn đề về lưu trữ và phân tích đữ liệu với quy mô lớn
2 MỤC TIỂU NGHIÊN CUU
- Nghiên cứu tổng quan về Big Data và các công cụ truy vấn dữ liệu trên Big Data
- Nghiên cứu mô hình xử lý dữ liệu MapReduce và hệ thống file phân tán Hadoop
3 DOI TUONG NGHIÊN CỨU
Trang 11- Mô hình xử lý đữ liệu MapReduce, hệ thống file phân tán - Công cụ phần mềm mã nguồn mở Hadoop
4 PHƯƠNG PHÁP NGHIÊN CỨU
4.1 Nghiên cứu lý thuyết
- Tìm hiểu, phân tích và tổng hợp các bài báo, tài liệu liên quan đến đẻ tài - Nghiên cứu cơ sở lý thuyết về Big Data
- Nghiên cứu mô hình MapReduce, hệ thống file phân tán Hadoop 4.2 Nghiên cứu thực nghiệm
- Thu thập dữ liệu thực tế
- Phân tích, thiết kế và cài đặt bài toán trên nền tảng xử lý dữ liệu Big Data là Hortonworks Sandbox HDP 3.0
5 PHẠM VI NGHIÊN CỨU
- Nghiên cứu tổng quan về Big Data
- Mô hình xử lý dữ liệu MapReduce và hệ thống file phân tán Hadoop
- Phân tích, thiết kế và cài đặt bài toán trên nền tảng xử lý dữ liệu Big Data là Hortonworks Sandbox HDP 3.0
6 BÓ CỤC CỦA LUẬN VĂN
Luận văn chia làm 3 chương:
Chương 1 Tổng quan về cơ sở dữ liệu phân tan va Big data Chương 2 Tính toán phân tán với Hadoop
Trang 12CHƯƠNG 1 TONG QUAN VE CO SO DU LIEU PHAN TAN
VA BIG DATA
1.1 GIGI THIEU VE CO SO DU LIEU PHAN TAN
Cùng với sự phát triển của công nghệ mạng máy tính Nhu cầu thu thập, lưu trữ, trao đổi và xử lý thông tin của các công ty hay các tập đoàn đa quốc gia, ngày càng lớn, cơ sở đữ liệu tập trung đã bộc lộ nhiều điểm yếu như: khó mở rộng không gian lưu trữ; hệ thống không thể hoạt động tốt với số lượng người dùng ngày càng tăng: trên các máy tính đơn lẻ, khả năng xử lý đữ liệu chậm Với những điểm yếu
trên, cơ sở dữ liệu phân tán đã dần dần khắc phục được Vậy, cơ sở dữ liệu phân tán
là như thế nào? Nó có những đặc điểm và lợi ích gì?
Cơ sở dữ liệu phân tán là một tập hợp dữ liệu, mà về mặt logic, tap hop nay thuộc cùng một hệ thống, nhưng về mặt vật lý dữ liệu đó được phân tán trên các vị
trí khác nhau của một mạng máy tinh.[1]
Có nhiều nguyên nhân thúc đẩy việc cần thiết phải sử đụng cơ sở đữ liệu phân tán:
- Sư phát triển của các cơ cầu tô chức Với nhu cầu mở rộng hoạt động của các công ty, doanh nghiệp Việc thiết kế và sử dụng cơ sở dữ liệu phân tán là đáp ứng được yêu cầu về truy xuất và khai thác đữ liệu
- Giảm chỉ phí truyền thông Trong một số trường hợp, khi thiết kế cơ sở dữ liệu phân tán, người ta thường tối ưu hóa ứng dụng địa phương (local application)! để giảm chỉ phí truyền thông
- Hiệu quả công việc Việc tối ưu hỏa ứng dụng địa phương, nên công việc được phân chia cho các bộ xử lý trên các site? khác nhau Theo cách này, sẽ giảm
tối đa việc tác động qua lại của dữ liệu đối với mỗi bộ xử lý của từng site, từ đó làm
giảm việc tắc nghẽn thông tin trên mạng giữa các site
1 Các ứng dụng mà không yêu câu dữ liệu từ các site khác.[1]
? Mỗi máy tính và cơ sở đữ liệu của nó tạo nên một site của mạng cục bộ
Trang 13- Độ tin cậy và tính sẵn sàng Một hệ thống có nhiều site, thì việc phát sinh lỗi
là điều không thể tránh khỏi Tuy nhiên, ảnh hưởng của lỗi chỉ ảnh hưởng đến site bị lỗi, hiếm khi xảy ra lỗi trên toàn hệ thống
Cơ sở đữ liệu phân tán có những đặc điểm chính như sau:
- Chia sẽ tài nguyên Được thực hiện thông qua mạng truyền thông và đề chia sẽ một cách hiệu quả, tài nguyên phải được chia sẽ thông qua một ứng dụng có giao diện truyền thông
- Tính mở Dễ dàng mở rộng về phần cứng Nhưng phải theo tiêu chuân chung
để tương thích với hệ thống hiện tại
- Khả năng song song Cơ sở dữ liệu phân tán hoạt động trên mạng truyền thông gồm nhiều site nên việc thực hiện yêu cầu từ phía người sử dụng có thể được thực hiện trên từng ứng dụng địa phương Cụ thê là có thể thực hiện song song truy
vấn nội bộ và truy vấn từ các site khác
- Khả năng mở rộng Việc mở rộng chỉ cần tăng khả năng lưu trữ dữ liệu và xử lý của mạng mà không ảnh hưởng nhiều đến toàn hệ thống
- Khả năng chịu lỗi cao Khi thiết kế phải đảm bảo khả năng thay thế, phục hồi
dữ liệu, khi có phát sinh lỗi
- Đảm bảo tin cậy và nhất quán Lỗi riêng lẻ của mỗi site chỉ ảnh hưởng đến
site đỏ, khơng ảnh hưởng đến tồn hệ thống Và khi thiết kế phải đảm bảo tính nhất
quán vả toàn vẹn của cơ sở dữ liệu
- Tính trong suốt Là sự che khuất các thành phần riêng biệt đối với người sử dụng và người lập trình ứng dụng
1.2 CÁC MÔ HÌNH LẬP TRÌNH VÀ XỬ LÝ PHÂN TÁN
1.2.1 Các mô hình lập trình a M6 hinh Master/Slave
Chức năng xử lý thông tin được phân chia trên nhiều tram Slave Mét tram
Master phối hợp hoạt động với nhiều trạm Slave Các trạm Slave có vai trò tương
Trang 14a Master ì oN Slave <> Slave <> Slave Hình 1.1 Mô hình Master/Slave b Mô hình Chenf/Server
Với mô hình Client/Server, nhiệm vụ xử lý thông tin được chia thành 2 phan riêng biệt nhau Phần xử lý chung cho nhiều trường hợp, được thực hiện trên các
server, phần xử lý riêng được thực hiện trên từng client Client gởi yêu cầu đến server, server xử lý và trả kêt quả vé cho client Client Client NZ Server Client Server
Hinh 1.2 M6 hinh Client/Server
c M6 hinh binh ding
Trang 151.2.2 Xử lý phân tán
Xử lý phân tán tại các site bao gồm các lược đỗ sau: lược đỗ tổng thể, lược đỗ phân đoạn, lược đỗ định vị và lược đỗ ánh xạ cục bộ Lược đồ tổng thé (Global Schema) Lược đồ phân đoạn (Fragmentation Schema) Lược đồ định vị (Allocation Schema) Lược đỗ ánh xạ cục bộ 1 Lược đỗ ánh xạ cục bộ n
(Local mapping Schemal) | `” (Local mapping Schema n)
H6 quan tri CSDL 1 Hệ quản trị CSDLn
(DBMSofstel | | (DBMS of site n)
Hình 1.4 M6 hinh xt ly phan tan [1]
- Luge dé téng thé: định nghĩa tat ca đữ liệu trong cơ sở đữ liệu phân tán như trong cở sở dữ liệu tập trung Tuy nhiên, mô hình đữ liệu lược đồ tổng thể cần phải
tương thích với việc định nghĩa các ánh xạ tới các mức của cở sở dữ liệu phân tán
Trang 16và phân đoạn được định nghĩa là lược đỗ phân đoạn Ánh xạ này là mối quan hệ
một-nhiều Các kiểu phân đoạn đữ liệu bao gồm phân đoạn ngang và phân đoạn dọc
và một kiểu phân đoạn phức tạp hơn là sự kết hợp của 2 loại trên
- Lược đồ định vị: Các phân đoạn là những phần logic của các quan hệ tổng
thể được chứa ở một hay nhiễu site trong mạng Lược đỗ định vị xác định các phân đoạn được chứa ở những site nào Với kiểu của ánh xạ được định nghĩa trong lược đỗ định vị sẽ xác định là cơ sở dữ liệu phân tán là lưu trữ dạng có nhiều bản sao hay
không bản sao Trường hợp có nhiều bản sao thì ánh xạ là n-1 Trường hợp có 1 bản
sao thì ánh xa la 1-1 Các phân đoạn của cùng một quan hệ toàn cục và sự định vị của nó tại vị trí J trên mạng được gọi là hình ảnh vật lý của quan hệ toàn cục R tại vị
trí j Ký hiệu R¡ để chỉ phân đoạn thứ ¡ và Rỉ để chỉ hình ảnh vật lý của quan hệ toàn cục R tại vị trí J Ri (Site 1) R2 (Site 2) Re R3 Ey (Site 3) Re Sơ đồ tổng thể Các đoạn Hình ảnh vật lý
Hình 1.5 Các phân đoạn và mô hình vật lý cho một quan hệ tổng thé [1]
Trang 171.3 TRUY CAP DU LIEU TU XA TRONG HE THONG PHAN TAN
Truy cập dữ liệu từ xa trong hệ thống phân tán, được thực hiện theo 2 cách cơ
bản: truy cập từ xa trực tiếp và gián tiếp - Mô hình truy cập từ xa trực tiếp: Phương thức truy cập dữ liệu
Chương Hệ quản tri co
trinh img sở đỡ liệu Ì dụng (DBMS 1) Hệ quản trị cơ sở đữ liệu 2 (DBMS 2) Cở sở dữ liệu 2 Kết qua
Hình 1.6 Mô hình truy cập từ xa trực tiếp [1]
Chương trình ứng dụng yêu cầu truy cập đến cơ sở dữ liệu từ xa, yêu cầu này
được hệ quản trị cơ sở dữ liệu tự động tìm nơi đặt dữ liệu và thực hiện yêu cầu tại
điểm đó Sau khi thực hiện yêu cầu, kết quả được trả về cho chương trình ứng đụng Đơn vị chuyển đổi giữa hai hệ quản trị cơ sở dữ liệu là phương thức truy cập cơ sở
dữ liệu và kết quả nhận được
- Mô hình truy cập từ xa gián tiếp:
Theo mô hình này, chương trình ứng dụng thực hiện yêu cầu qua chương trình phụ ở điểm khác Chương trình phụ này, được người lập trình ứng dụng viết dé truy cập từ xa đến cơ sở dữ liệu và trả về kết quả của chương trình ứng đụng yêu cau
Yêu câu thực hiện chuongtrinh phy Chyong [>| Hệ quản trị cơ trình ứng sở đữ liệu 1 dụng (DBMS 1) Kết quả toàn cục Hệ quản trị cơ Chương trình phụ sở đữ liệu 2 (DBMS 2)
Trang 181.4 GIO] THIEU VE BIG DATA 1.4.1 Khái niệm
Big Data không có định nghĩa cụ thể, nhưng theo định nghĩa của Gartner? thi Big Data chính là tài sản thông tin, mà những thông tin này có khối lượng đữ liệu
lớn, tốc độ cao và dữ liệu đa đạng, đòi hỏi phải có công nghệ mới để xử lý hiệu quả
nhằm đưa ra được các quyết định hiệu quả, khám phá được các yếu tố ân sâu trong
dữ liệu và tối ưu hóa được quá trình xử lý dữ liệu”
Và những nguồn đữ liệu nao, tạo nén Big Data? Do là dữ liệu cảm biến thời tiết, các trang web truyền thông, mạng xã hội (Twitter, Facebook, Instagram ), dữ liệu của khách hàng khi giao dịch tại thị trường chứng khoán, dữ liệu về giao thông,
dữ liệu từ các công cụ tìm kiếm của Google hay đữ liệu được ghi lại từ các chuyến bay của các hãng hàng không
Tóm lại, với một lượng lớn dữ liệu và đa dạng như vậy Nhu cầu hiểu được ý
nghĩa của dữ liệu đã làm phát sinh thuật ngữ Big Data 1.4.2 Vai trò
Dữ liệu Big Data giúp cho doanh nghiệp có sự hiểu biết sâu sắc hơn về các hoạt động sản xuất, kinh đoanh của mình hay việc để ra những định hướng phát triển trong tương lai Phân tích đữ liệu Big Data giúp cho đoanh nghiệp nâng cao hiệu quả khi ra quyết định kinh doanh và có thể ảnh hưởng đến sự tồn tại của các doanh nghiệp Chính vì vậy, Big Data có vai trò quan trọng trong rất nhiều ngành công nghiệp
Ví dụ, công ty Uber, thu thập dữ liệu về các chuyến đi của người dùng hay các chuyến vận chuyên hàng hóa từ những tuyến đường khác nhau đến cùng một địa điểm nào đó, khi phân tích bộ đữ liệu này, công ty Uber có thể chọn ra tuyến đường
gan nhat hay thuan tién nhất để vận chuyền hàng hóa đến một địa điểm nào đó Từ
đó, giúp công ty Uber nâng cao khả năng cạnh tranh với các công ty khác
Trang 191.4.3 Mô hình Data St Batch ee Processing
Data Machine A Analytical Aaalylics and
Sources learning data store reporting Realtime Stream message ingestion processing Orchestration
Hình 1.8 Mô hình tổng thể ctia Big Data!
- Data sources: Dữ liệu được thu thập từ nhiều ngồn khác nhau như: lưu trữ dữ
liệu từ các chương trình ứng dụng, nhật ký máy chủ, các trang web về thương mại
điện tử hay dữ liệu lưu trữ từ các trang mạng xã hội
- Data storage: Dữ liệu cho các hoạt động xử lý hàng loạt thường được lưu trữ trong kho lưu trữ dữ liệu phân tán mà nó có thê chứa khối lượng lớn các file có kích
thước lớn với các định dạng khác nhau
- Batch processing: Do các bộ đữ liệu thường rất lớn nên một giải pháp về Big
Data phải xử lý các bộ dữ liệu bằng cách lọc, tổng hợp và chuẩn bị dữ liệu để phân
tích Có thể sử dụng các công cụ như: Hive, Pig, MapReduce hay Park của Hadoop - Real-time message ingestion: Néu giải pháp bao gồm các nguồn dữ liệu theo thời gian thực, kiến trúc phải bao gồm cách để nắm bắt và lưu trữ các thông điệp
theo thời gian thực để xử lý luồng Đây có thể là một kho lưu trữ dữ liệu đơn giản,
nơi các tin nhắn đến được lưu vào một nơi dé xử lý Dạng này, có thê sử đụng công cụ Apache Kafka để xử lý
- Stream processing: Sau khi nhận tin nhắn, giải pháp phải xử lý chúng bằng
cách lọc, tổng hợp và chuẩn bị đữ liệu để phân tích Dữ liệu luồng được xử lý, sau đó kết quả được trả về ở một đầu ra khác Dữ liệu dạng này, có thể sử dụng Apache
Storm hay Spark Streaming để xử lý
* Nguồn: https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/
Trang 20- Analytical data store: Dữ liệu được xử lý theo định dạng có cấu trúc, có thể
được truy vấn bằng các công cụ phân tích Có thê sử dụng NoSQL, Hbase hoặc
Hive dé phan tích dữ liệu
- Analysis and reporting: Mục tiêu của hầu hết các giải pháp về Big Data là khai thác hiệu quả dữ liệu thông qua phân tích và bảo cáo
- Orchestration: Hau hét các giải pháp dữ liệu lớn bao gồm các hoạt động xử
lý dữ liệu lặp đi lặp lại, được thực hiện trong một quy trình công việc như các thành
phân trên Đề tự động hóa quy trình công việc này, ta có thể sử dụng các công cụ nhu: Apache Oozie va Sqoop
1.4.4 Dac diém
Theo Gartner, dữ liệu lớn có 5 đặc điểm cơ bản được xây dựng theo mô hình 5Vs gồm: khối luong dé ligu (Volume), tốc độ (Velocity), da dang (Variety), d6 tin
cay/chinh xac (Veracity), gia tri (Value)
- Khối lượng dữ liệu (Volume): đây là đặc điểm tiêu biểu nhất của Big Data Tùy theo nhu cầu thu thập dữ liệu từ những đối tượng nào và thời gian thu thập là bao lâu, nhưng cơ bản thì khối lượng dữ liệu Big Data rất lớn
- Tốc độ (Velocity): tốc độ của Big Dafta bao gồm 2 ý nghĩa sau: khối lượng
dữ liệu gia tăng rất nhanh; xử lý dữ liệu rất nhanh, theo thời gian thực (real-time)
- Đa dạng (Variety): dữ liệu bao gồm rất nhiều loại đến từ nhiều nguồn khác
nhau như: đữ liệu của các thiết bị cảm biến Dữ liệu về status, comment, like của
trang mạng xã hội Facebook, Twitter hay hồ sơ, sở thích mua sắm của khách hàng trên các trang thương mại điện tử
- Độ tin cậy/chính xác (Veracity): đặc điểm này đo lường độ chính xác của dữ
liệu và khả năng sử dụng nó để phân tích Mức độ chính xác của các tập dữ liệu lưu trữ vào hệ thống, sẽ xác định mức độ quan trọng của dữ liệu Các nhà nghiên cứu
tin rằng đây là thách thức lớn nhất của Big Data
- Giá trị (Value): đây cũng là đặc điểm rất quan trọng của Big Data Vì ngay
khi bắt đầu thu thập dữ liệu, chúng ta cần xác định là thu thập đữ liệu nào và dữ liệu
này, sẽ mang lại lợi ích gì cho chúng ta
Trang 211.4.5 Thành phần Data Sources Gms | “Se Spaik® Cassandra a Spark’ loud Sề 3» tb: ụ wet {btobleou ) tủ E7] @ [E
Hình 1.9 Các thành phần phân tich Big Data’
Hình 1.9 mô tả các thành phần phổ biến của Big Datfa và sự tích hợp của các thành phần với nhau Nền tảng Hadoop là cốt lõi trong hầu hết các ứng dụng về Big Data nhưng không phải là nguyên tắc chung
- Layers đầu tiên là các thành phần xử lý dữ liệu gốc
- Layers tiếp theo là hệ thống lưu trữ, có thê là HDFS (lớp lưu trữ, xử lý việc
lưu trữ dữ liệu, cũng như siêu dữ liệu được yêu cầu để hoàn thành tính toán);
NoQuery có thê là các kho lưu trữ đạng bảng như HBase hoặc cột dựa trên khóa-giá
tri Cassandra
- Layers tinh toán hay logic gồm cé MapReduce (day là sự kết hợp của hai quá trình riêng biệt là map và reduce) hoặc Pig (Pig cũng là một nền tảng trong hệ sinh thái Hadoop, nó có thể dùng để kết hợp hoặc thay thế cho MapReduce; Nó là một ngôn ngữ cấp cao và được sử dụng rộng rãi để xử lý, phân tích các bộ dữ liệu lớn)
- Layers ứng dụng logic hay tương tác cũng có thê gồm các thành phần sau: Hive (đây là đữ liệu lớp kho được xây đựng trên nền tảng Hadoop; Hive cung cấp phương tiện để tương tác, xử lý và phân tích dữ liệu HDFS bằng các truy van Hive rất giống với SQL) hay Cascading, cung cấp API để chia sẽ hay thực hiện xử lý dữ liệu với các thành phần khác thông qua Hadoop
5 Nguén: https://medium.com/@jain6968/big -data-ecosystem-b0e4c923d7aa
Trang 22- Các Layers cho các ứng dụng phân tích chuyên sâu như: Netezza hoặc
Greenplum có khả năng mở rộng và được biết đến với việc nhập và cập nhật dữ liệu
rất nhanh, đây là một yêu cầu bắt buộc đối với các mô hình phân tích 1.4.6 Ứng dụng của Big Data trong thục tế Của Big Data Ứng Dụng Trong Thực š
Hình 1.10 Những ứng dụng của Big Data trong thực tế
Chúng ta đang sống trong thế giới cạnh tranh rất lớn Đề giữ vững được vị trí của mình cũng là một thách thức Chính vì vậy, các doanh nghiệp luôn tìm kiếm những giải pháp tối ưu để nâng cao hiệu quả cạnh tranh và Big Datfa là một trong những giải pháp tiên tiến được áp dụng rộng rãi trong rất nhiều ngành công nghiệp và nó đã chứng minh được sự hữu ích của mình trong thực tế thông qua các lĩnh vực sau: ngành công nghiệp thức ăn nhanh; ngành ngân hàng: kinh doanh sòng bạc; nhà
hàng; truyền thông & giải trí; du lịch; chăm sóc sức khỏe; thương mại điện tử; quản
lý thiên tai; đảm bảo an ninh quốc gia; nông nghiệp: giáo dục; tiếp thị kỹ thuật số; điện toán đám mây: cung cấp địch vụ hướng đến khách hàng: khu vực chính phủ: viễn thông: ngành bán lẻ; truyền thông xã hội: ngành hàng không
Ví dụ, khi chúng ta tìm kiếm video trên YouTube, nó sẽ lưu lại các truy vấn
hay video mà người dùng sử dụng và sẽ có những gợi ý xem những video có nội dung tương tự Hay như trang web thương mại điện tử Amazon, khi chúng ta chọn xem một ebook về Big Data, thì trang web cũng sẽ có gợi ý là danh sách những ebook mà những người dùng trước (khi xem ebook về Big Data) di xem qua Do chính là sử dụng dữ liệu Big Data
Trang 231.5 TIEU KET CHUONG 1
Trong chương này, tôi đã giới thiệu về cơ sở đữ liệu phân tán, các mô hình lập trình và xử lý phân tán, các phương thức truy cập dữ liệu từ xa trong hệ thống phân tán và giới thiệu về Big Data
Chương I, giúp cho ta hiểu được những nội dung cơ bản về Cơ sở dữ liệu phân tán và Big Data Tất cả dữ liệu Big Data khi thu thập chỉ là dữ liệu thô, không cung cấp được nhiều thông tin có giá trị, để khai thác những thông tin hữu
ích từ những dữ liệu thô này, ta cần nắm bắt và phân tích dữ liệu Một công cụ
phân tích dữ liệu Big Data mà hiện nay, đang được rất nhiều doanh nghiệp sử dụng, đó chính là Hadoop Trong chương 2, tôi sẽ trình bày những nội đung về hệ sinh thái Hadoop
Trang 24CHƯƠNG 2 TÍNH TỐN PHÂN TÁN VỚI HADOOP
Khi làm việc với dữ liệu Big Data, chúng ta sẽ gặp một trong những thách
thức về việc làm thế nào để lưu trữ, tìm kiếm và phân tích dữ liệu Hadoop là một
trong những giải pháp để giải quyết các thách thức đó Trong chương này tôi sẽ trình bày tổng quan về Hadoop và mô hình MapReduce trên nền tảng Hadoop 2.1 GIOI THIEU VE APACHE HADOOP
Apache Hadoop duge tao ra boi Doug Cutting vào năm 2006, là dự án phần mềm mã nguồn mở, tập hợp các phần mềm tiện ích, sử dụng mạng lưới nhiều máy tính dé giải quyết các vấn đề liên quan đến lưu trữ và phân tích các bộ dữ liệu lớn Không giống như các hệ quản trị cơ sở dữ liệu truyền thống, Hadoop được thiết kế để làm việc với nhiều loại đữ liệu nguồn, nó cung cấp một khung phan mém để lưu trữ phân tán và xử lý dữ liệu lớn bằng mô hỉnh lập trình MapReduce
Cốt lõi của Apache Hađoop bao gồm một phần xử lý việc lưu trữ, được gọi là Hệ thống file phân tán (HDFS) và một phần xử lý là mô hình lập trình MapReduce
Hadoop chia khối lượng lớn công việc thành các khối đữ liệu nhỏ hơn, các khối dữ
liệu này được nhân rộng và phân phối trên các nút trong một cụm (cluster) máy tính đề xử lý dữ liệu song song
Hadoop còn được thiết kế để có thê mở rộng quy mô lên đến hàng ngàn máy chủ Có thể sử dụng các cụm máy tính với phần cứng giá rẻ Các mô-đun (modules) của Hađoop cũng được thiết kế đề phát hiện và xử lý tự động các lỗi ở lớp ứng dụng nên khả năng chịu lỗi của Hadoop là rất cao
Hiện nay, phiên bản Hađoop 3 hỗ trợ thêm một số tính năng mới như: mã hóa x6a (erasure encoding) trong HDFS; dich vu thoi gian YARN v.2; Container® va lap
ké hoach phan tan; tối ưu hóa địa phương cho các nhiệm vụ của MapReduce; hỗ trợ hơn 2 NameNode; bộ căn bằng dữ liệu nội bộ (intra-DataNode balancer) [6]
® Nhiệm vụ của Container là đảm bảo có sẵn tải nguyên dé thực hiện nhiệm vụ ngay lập tức
Trang 252.2 CÁC THÀNH PHẢN CỦA HADOOP
Hadoop có 2 thành phần cốt lõi là HDFS và MapReduce Ngoài 2 thành phần này, Hadoop còn kết hợp thêm một số thành phần khác Cụ thể:
- Hadoop Common: Là tiện ích cở sở hỗ trợ cho tất cả các thành phần khác của Hadoop Tất cả các thành phần khác hoạt động phía trên tiện ích này
- HDFS: Hệ thống file phân tán, đảm nhiệm việc lưu trữ dữ liệu của các ứng
dụng Hadoop Các phiên bản tiêu chuẩn, HDFS tạo ra 3 bản sao đữ liệu và phân phối các bản sao này trên các node trong cụm Việc phân phối đảm bảo dữ liệu được an tồn và tính tốn cực kỳ nhanh chóng
- Hadoop MapReduce: Là thành phần xử lý đữ liệu, nó có khả năng xử lý
lượng dữ liệu không lồ được lưu trữ và thực hiện song song trén HDFS
- Hadoop YARN: La thanh phan tién ích quản ly tài nguyên, nó lập lịch và phân bồ tài nguyên tính toán phân tán cho các ứng dụng khác nhau chạy trên cụm Hadoop YARN là một bước đột phá quan trọng giúp Hadoop vượt ra ngồi mơ hình MapReduce YARN có thể quản lý tài nguyên ở quy mô trung tâm dữ liệu và các cách dễ dàng hơn để tạo các ứng dụng phân tán, xử lý dữ liệu lên đến petabyte [10] YARN được thiết kế theo mô hình master-slave với ứng dụng ResourceManager duy nhất và nhiều ứng dụng tiện ích NodeManager
Hình 2.1 Mô hình hoạt động của Apache Hadoop YARN7
7 Nguồn: https://hadoop.apache.org/docs/r3.0.3/hadoop-yarn/hadoop-yarn-site/Y ARN.html
Trang 26+ ResourceManager: Trình quản lý tài nguyên chịu trách nhiệm theo dõi các tài nguyên sẵn có trong một cụm và lên lịch cho các ứng dụng Trình quản lý tài nguyên có hai thành phần chính: trình lập lịch và trình quản lý ứng dụng [7]
+ NodeManager: Trình quản lý nút chịu trách nhiệm khởi chạy và quản lý các
container trên một nút Các container thực thi các tác vụ theo chỉ định của App
master® Nó hoạt động như một slave cho trình quản lý tài nguyên (ResourceManager) Mỗi trình quản lý nút theo dõi các tài nguyên xử lý đữ liệu có sẵn trên SlaveNode của nó và gửi các báo cáo thường xuyên đến trình quản lý tài nguyên [7]
+ Dich vu thoi gian YARN v.2 (YARN Timeline Service v.2): Dich vu nay, giai
quyét hai thach thirc ma Timeline Service v.1 (nén tang JobTracker va TaskTracker)
không thực hiện được, đó là cải thiện khả năng mở rộng phân tán, lưu trữ phụ trợ (backend storage) ra khỏi các cụm nhỏ và độ tin cậy cua Timeline Service
2.3 HE THONG FILE PHAN TAN (HADOOP DISTRIBUTED FILE SYSTEM)
HDFS 1a tién ich được lập trình bằng ngôn ngữ lập trình Java HDFS được thiết kế để cung cấp hệ thống lưu trữ phân tán với khả năng chịu lỗi và phục hôi lỗi
rất cao Nhiệm vụ của nó là chia một file thành các khối (thông thường là 128 MB) Block-1 BS Block-3 2 Replicate blocks lở pm << Block-3 : 1 Separate into blocks i B
Hình 2.2 Mô hình phân chia và phân phối các Block của HDFS [8] thay vì xử lý toàn bộ file Machine HDFS
Điều này, cho phép nhiều tính năng như phân phối, nhân rộng, phục hôi lỗi và quan trọng hơn là xứ lý phân tán các khối trên các cụm máy tính
® Application Master là quá trình khởi động cho các ứng dụng chạy trên YARN
Trang 27Kích thước khối có thê là 64 MB, 128 MB, 256 MB hoặc 512 MB, có thể tùy
chọn cho phù hợp với mục đích sử dụng Đối với file 1 GB và kích thước khối là
128 MB thi ta sẽ có 8 khối (1024 MB / 128 MB) Nếu ta chọn theo tiêu chuẩn, hệ số
sao chép dự phòng là 3 thì file 1 GB, ta sẽ có 24 khối
HDES có hai thành phần chính là NameNode và DataNode NameNode chứa tất cả siêu dữ liệu của tất cả nội dung của hệ thống file gồm: tên file, quyền truy cập file và vị trí của từng khối của mỗi file Do đó, đây là máy quan trọng nhất trong HDFS DataNode lấy tat ca thông tin siêu dữ liệu liên quan đến nội dung trong hệ thống file từ NameNode Nếu NameNode không có bất kỳ thông tin nào, DataNode sẽ không thé cung cấp thông tin cho bất kỳ ứng dụng nào muốn đọc hoặc ghi vào HDFS.|6] Name Node Metadata Client |_Metadata ops vv Read/Write ops Block ops HỊ [I [2] IIE] Data Nodes
Hình 2.3 Mô hình hoạt động của Hadoop distributed file system [6]
Có thể cài đặt NameNode và DataNode trên cùng một máy đối với hệ thống nhỏ Nhưng, các cụm HDFS thường sử dụng máy chủ chuyên dụng để chạy
NameNode, và DataNode chạy trên các máy tính khác, tùy vào mục đích sử dụng,
các máy tính chạy DataNode, có thể mở rộng lên đến hàng nghìn máy Vì
NameNode chịu trách nhiệm chính trong việc lưu trữ tất cả thông tin của các khối
trong hệ thống file nên để giảm nguy cơ mất dữ liệu do lỗi từ máy chủ chạy
NamNode, người ta sử dụng thêm Namenode phụ (secondary) để lưu lại nhật ký,
ảnh chụp từ bộ nhớ của của NameNode chính Đây là tính sẵn sàng cao (High availability) được phát triển mới trong phiên bản Hadoop 3
Trang 28High Availability Shared edits on NFS or Quorum based Journal ae hề" =n Name Node Name Node (Active) (Stand-By) Le = rae Block ops % ag Ya ^ L1 L] Replication Data Nodes
Hình 2.4 Mô hình hoạt déng cia secondary NameNode [6]
DataNode lưu trữ các khối của hệ thống file và sao chép thông tin của các khối
từ NameNode nên khi DataNode bị lỗi NameNode vẫn hoạt động bình thường Khi DataNode bị lỗi, NameNode sẽ tự động ngưng việc sao chép các khối đến DataNode bị lỗi và đảm bảo việc sao chép sẽ được thực hiện lại
Mã hóa xóa (erasure coding), HDFS là thành phần cơ bản từ khi xây dựng phần mềm Hadoop Trong các phiên bản trước như Hadoop 1, cũng như Hadoop 2 bản cài đặt HDEFS theo tiêu chuẩn sử dụng hệ số sao chép la 3 HDFS trong Hadoop 3, có thay đổi lớn để tăng công suất lưu trữ dữ liệu cho các DataNode khi sử dụng tính năng erasure coding (EC) để giảm hệ số sao chép từ 3 xuống 1,4 Mặc dù EC làm giảm đáng kế chỉ phí cho không gian lưu trữ dữ liệu nhưng việc áp dụng EC
không nên thực hiện đối với những dữ liệu truy cập thường xuyên, vì việc đọc từ xa
sẽ rất tốn kém chi phí mạng và tài nguyên CPU
2.4 XU LY PHAN TAN VOI MAPREDUCE 2.4.1 Giới thiệu về MapReduce
Hadoop dựa trên mô hình lập trình MapReduce, đây là mô hình phổ biến nhất đề
phân tích dữ liệu lớn và đã mang lại một bước đột phá trong lập trình dữ liệu lớn [5] Trong mô hình này, việc lập trình và xử lý dữ liệu lớn được thực hiện bởi các
thuật toán phân tán và tính toán song song trên các cụm máy tính với thiết bị phần
Trang 29cứng thông thường, khả năng chịu lỗi cao Hadoop MapReduce là phần mềm mã nguồn mở có nguôn gốc từ Google MapReduce
MapReduce rất hữu ích trong nhiều ứng dụng như tìm kiếm trên nền tảng phân tán, sắp xếp phân tán, thống kê nhật ký truy cập web, phân cụm tài liệu, máy học Trước đây, Google sử dụng MapReduce để tái tạo chỉ mục của World Wide Web [5]
Dữ liệu
đầu vào Map Shuffle Reduce
Dữ liệu đâu ra
Hình 2.5 Mô hình tổng quát của MapReduce [5]
Công việc tính toán và xử lý dữ liệu của MapReduce được thực hiện bởi hai hàm Map và Reduce Hàm Map thực hiện việc phân chia dữ liệu đầu vào thành các phần độc lập, sắp xếp dữ liệu vừa phân chia và tạo ra một tập hợp (khóa, giá trị)
trung gian và tập hợp trung gian này là đữ liệu đầu vào của hàm Reduce Hàm Reduce thực hiện tính toán và trả về kết quả cuối cùng Thông thường, việc xử lý dữ
liệu đầu vào và dữ liệu đầu ra được lưu trữ trên cùng một hệ thống file, điều này
giúp cho MapReduce có thể quản lý việc phân chia thực hiện nhiệm vụ, giám sát và
thực hiện lại các nhiệm vụ thất bại
2.4.2 Hàm Map
Hàm Map có nhiệm vụ nhận dữ liệu đầu vào, xử lý song song và sinh ra một
danh sách trung gian là danh sách các cặp (khóa, giả tri) map (k1, v1) > list (k2, v2) [9]
Trang 30Nguyên tắc hoạt động của hàm Map: MapReduce lấy dữ liệu đầu vào, chia
nhỏ dữ liệu thành các cặp có khóa, giá trị là (K1, v1) và đưa vào hàm Map Nội dung ham Map sé thực hiện tính toán những gì là do lập trình viên lập trình để thực hiện
theo mong muốn của họ Hàm Map thực hiện xử lý đữ liệu đầu vào và trả về kết qua
là các cặp (khóa, giá trị) trung gian, chính là các cặp (k2, v2) Sau đó, dữ liệu trung
gian này, sẽ được chuyển qua cho hàm Reduce xử lý
Chia nhỏ
dữ liệu Cặp (khóa,
Dữ liệu Ham Map giá tr)
Dữ liệu Dữ liệu trung gian
đầu vào đầu ra
Hình 2.6 Mô hình hoạt động của hàm Map
Số lượng hàm Map khi MapReduce phân chia để xử lý, tùy thuộc vào kích
thước tổng số khối của các file đữ điệu đầu vào Mặc dù được thiết kế khi sử dụng
đến 300 hàm Map, nhưng mức độ xử lý song song phù hợp cho hàm Map là khoảng
từ 10 đến 100 hàm Map trên mỗi nút” Như vậy, khi dữ liệu đầu vào là 1GB và kích
thước khối là 128 MB, MapReduce sé str dung 8 ham Map (1024MB / 128 MB) 2.4.3 Ham Reduce
Ham Reduce, xt ly song song từng nhóm đữ liệu đầu ra, theo mỗi khóa reduce(<k2, list(v2)>) <k2, v3> [9]
Tham số: k2 là khóa; v2, v3 là gia tri
Nguyên tắc hoạt động của hàm Reduce: Lấy dữ liệu đầu vào từ kết quả trả về của hàm Map, hàm Reduce, gom nhóm tất cả giá trị trong danh sách các khóa trung gian để tạo thành tập đữ liệu gồm khóa và tổng các giá trị có cùng khóa, tập dữ liệu này chính là kết quả cuối cùng
Số lượng hàm Reduce có thể là 0,95 hoặc 1,75 nhân với số nút (nodes)!? Với
0,95, tất cả các hàm Reduce sẽ khởi chạy ngay khi hàm Map thực hiện xong Với 1,75,
® Nguồn: https://hadoop.apache org/docs/r3.2.1 /hadoop-mapreduce-client/hadoop-mapreduce-client- core/MapReduceT utorial.html
19 Nguồn: https://hadoop.apache.org/docs/r3.2.1/hadoop-mapreduce-client/hadoop-mapreduce-client- core/MapReduceTutorial.html
Trang 31các nút nhanh hơn sẽ thực hiện hàm Reduce thứ nhất, khi hoàn thành sẽ khởi động hàm Reduce thứ hai Với hệ số này, việc cân bằng tải khi xử lý công việc sẽ tốt hơn nhiễu,
giảm chỉ phí thất bại nhưng lại tăng chi phí khung (MapReduce framework)
Chores Dữ liệu , Cac cap
ae SẠP đầu vào ` Ket qua (khoa, téng
(khoa, gia Ham Fe dt hed Các giá trỊ tr) trung Reduce a có cùng lan ỗ khóa) Hình 2.7 Mô hình hoạt động của hàm Reduce 2.4.4 Nguyên tắc hoạt động
MapReduce có thể xử ly dữ liệu được lưu trữ trên một hệ thống file hoặc trong cơ sở dữ liệu, nó hoạt động bằng cách phân chia dữ liệu đầu vào từ các nút worker, thực hiện song song các nhiệm vụ của Map Khi các trình ánh xạ đã hoàn thành, các
kết quả được chuyên đến các máy khác đang chạy các nhiệm vụ Reduce Dữ liệu
đầu vào của hàm Reduce được lay từ hàm Map nên nhiệm vụ Reduce, luôn thực hiện sau nhiệm vụ Map
MapReduce hoạt động = các giai đoạn như trong hình 2.8: 7 T T T T T — Đâu vào & + 5 @ @ be =
| KIxkiy kế | K3x k3 k2 | KS k5 k2 IE Khóa trung gian
Trang 32- Đầu vào: Giai đoạn này có trình đọc bản ghi (record reader), đọc và định
dạng mỗi đòng đữ liệu trong file đầu vào và gởi dữ liệu này đến trình ánh xạ theo
dạng cặp (khóa, giá trỊ)
- Giai đoạn Map: Sẽ lấy các cặp (khóa, giá trị), xử lý từng cặp và cho ra cặp
(khóa, giá trị) trung gian Dữ liệu đầu ra có thể là 0 hoặc nhiều cặp (khóa, giá trỊ)
- Khóa trung gian: Các cặp (khóa, giá tri) được tạo ra bởi giai đoạn Map
- Giai đoạn kết hợp: Là một Reduce cục bộ, nó lấy khóa trung gian từ hàm Map và áp dụng mã đo lập trình viên viết, để tổng hợp các giá trị trong phạm vi của hàm Map Nó không phải là thuật toán chính của MapReduce mà là chức năng tùy chọn
- Trộn và Sắp xếp: Nó tải các cặp (khóa, giá trị) trên máy cục bộ, nơi Reduce
đang chạy Các cặp (khóa, giá trị) riêng lẻ được sắp xếp theo khóa và đưa vào đanh sách đữ liệu lớn hơn Danh sách đữ liệu này sẽ gom nhóm các khóa giống nhau, để các giá trị của chúng có thể được tổng hợp dễ dàng hơn trong nhiệm vu Reduce
- Giai đoạn Reduce: Reduce lay dữ liệu được gom nhóm theo cặp (khóa, giá tr, làm dữ liệu đầu vào và thực hiện nhiệm vụ Reduce trên mỗi cặp trong danh sách dữ liệu Dữ liệu có thể được tổng hợp, lọc và kết hợp theo một số cách và nó yêu cầu xử lý trên một phạm vi rộng Khi nhiệm vụ kết thúc, kết quả trả về có thể là 0 hoặc nhiều cặp (khóa, giá trị)
- Đầu ra: Trong gian đoạn này, bộ định dạng đầu ra sẽ xử lý cặp (khóa, giá trỊ)
cuối cùng từ hàm Reduce và ghi chúng vào file bằng cách sử dụng trình ghi dữ liệu (record writer)
Từ các giai đoạn hoạt động trên, ta sé sử dụng mô hình MapReduce để giải bài toán trong ví dụ sau:
Ví dụ 2.1: Bài toán đếm số lần xuất hiện của mỗi từ trong file
Eie dữ liệu chứa nội dung: “Nam quoc son ha Nam de cu”
- Đầu vào: Trình đọc dữ liệu sẽ chia nhỏ nội dung file và chuyển cho hàm Map
- Giai đoạn Map:
Trang 33+ Input: “Nam quoc son ha Nam de cu”
+ Output: Danh sách các cặp (khóa, giá trị) tương ứng với từng từ trong file
Cụ thể, khóa là mỗi từ và giá trị là I (do 1 lần xuất hiện) Sau khi hàm Map thực hiện, ta có danh sách các cặp (khóa, giá trị) như sau:
Bảng 2.1 Dữ liệu đầu ra của hàm Map Khóa Giá trị Nam 1 quoc 1 son 1 ha 1 Nam 1 de 1 cu 1
- Sau khi hàm Map tra vé két qua, MapReduce thực hiện tiếp giai đoạn kết
hợp Sau khi hệ thống thực hiện xong, ta sẽ có kết quả như sau:
Trang 34- Tiếp theo là giai đoạn trộn và sắp xếp, ta có kết quả như sau: Bảng 2.3 Kết quả của giai đoạn trộn và sắp xếp Khóa Giá trị cu 1 de 1 ha 1 Nam 11 quoc 1 son 1
- Cuối cùng là giai đoạn Reduce: cộng các giá trị của mỗi khóa + Input: là các cặp (khóa, giá trị) tại bảng 2.3
+ Output: 1a két qua cuối cùng như trong bảng 2.4
Bảng 2.4 Kết quả của bài toán Từ Số lần xuất hiện cu 1 de 1 ha 1 Nam 2 quoc 1 son 1
Dé dé hiéu hon vé qua trinh thuc hién hai nhiém vu Map va Reduce trong vi dụ 2.1, tôi vẽ lại sơ đồ như trong hình 2.9
Trang 35Trộn và Nam decu E—>_ de, l cu, 1 quoc, 1 Dữ liệu Chia nhỏ Map gee Recude Sap xép cu, 1 Nam quoc Nam 1 de 1 quoc, 1 NY 1 ha, l ded sonha | —» ai [sie ha, 1 ` Nam, 2 Nam, 1 | quoc, 1 nu Nam, 1 Nam, 1 ⁄ son, 1 (/ son, 1
Hình 2.9 Quá trình thực hiện bài toán đếm từ
MapReduce nếu sử dụng riêng lẻ, không đạt được khả năng mở rộng cao khi xử lý phân tán và khả năng chịu lỗi cùng một lúc vì tính toán phân tán thường rất phức tạp, rất nhiều lỗi xảy ra khi ứng đụng phân tán đang chạy nên việc tự mình viết ứng dụng phân tán đáng tin cậy là điều khó khăn Phiên bản Apache Hadoop 1.0, MapReduce được tích hợp với HDFS nhưng bị giới hạn về khả năng mở rộng nên nhóm YARN xây dựng lai MapReduce chạy trên nền tảng của YARN từ Apache Hadoop phién ban 2.0, MapReduce chay trén nén tang YARN MapReduce sit dung YARN để lên lịch cho trình ánh xạ (mappers) và bộ giảm tốc (reducers)
thực hiện nhiệm vụ YARN hỗ trợ chia sẽ bộ nhớ đệm (Cache), cho phép các công
việc của MapReduce có thể tận dụng tài nguyên này Điều này giúp tiết kiệm băng thông giữa các máy trong cum YARN và MapReduce xử lý công việc nhanh hơn
Trang 36NameNode ResourceManager Applications Resource Manager Scheduler JobClient 1 Node Manager 6 6 Container Container p Reduce \ p Map Task Task Container Container DataNode DataNode
Hình 2.10 Quá trình lập lịch cho nhiệm vụ MapReduce trên YARNH
Quá trình lập lịch như trong hình 2.10 được thực hiện bằng hai giai đoạn như sau:
Giai đoạn 1: Quá trình tương tác giữa JobClient và ResourceManager - JobClient gởi yêu cầu, đăng ký đến ResourceManager
- ResourceManager tạo một Job ID và gởi mô tả tài nguyên của cụm NodeManager cho JobClient
- Dựa vào thông tin của ResourceManager gởi, JobClient khởi tạo thông tin của công việc như: lập lịch hàng đợi, người dùng, quyền sở hữu và những thông tin cần thiết cho công việc và bắt đầu khởi động ResourceManager
- JobClient thực hiện truy vấn và nhận báo cáo về tiến trình thực hiện công
việc từ ResourceManager
- ResourceManager gởi các báo cáo đến các máy khách MapReduce
- Máy khách có thể gởi thông báo trực tiếp cho ResourceManager để kết thúc công việc nêu cân
+! Nguồn: hftps://support.huawei.com/enterprise/br/doe/EDOC11000201942section=k007
Trang 37Giai đoạn 2: Quá trình tương tác giữa các thành phần của YARN
- ResourceManager lên lịch cho các tài nguyên và khởi động ApplicationMaster trên nút NodeManager thích hợp ApplicationMaster goi đăng ký với ResourceManager, xác định các thông số đề bắt đầu kết nối
- ResourceManager nhận thông tin đăng ký bao gồm thông tin về tài nguyên của cụm và gửi thông tin đến ApplicationMaster
- ApplicationMaster khởi tạo yêu cầu phân bố tài nguyên cho ResourceManager gồm những thông tin như: Số lượng nút Container và thông tin của những nút này
- ApplicationMaster được ResourceManager phân bổ tài nguyên và bắt đầu giữ kết nối tiến trình phân bé nay voi ResourceManager
- ApplicationMaster yêu cầu khởi động Container trên các nút NodeManager ma ResourceManager đã chỉ định
- Sau khi khởi động Container, NodeManager gửi tình trạng hoạt động của Container dén ApplicationMaster
Như vậy, với việc tích hợp MapReduce trên YARN, các lập trình viên không cần bận tâm nhiều đến việc căn bằng tải và khả năng tính toán trên các nút, từ đó
góp phần nâng cao hiệu quả hoạt động cho MapReduce khi xử lý đữ liệu 2.4.5 Hiệu quả sử dụng mô hình tính toán MapReduce
Với tính chất đơn giản của hai hàm Map và Reduce, nó có thể được lập trình dé tính toán trên bất kỳ đữ liệu đầu vào và có thé phát triển đề chạy trên bất kỳ nền tang phân tán nào Cùng với việc được tích hợp trén HDFS va YARN, MapReduce tỏ ra hiệu quả hơn trong vấn đề về khả năng chịu lỗi, xử lý dữ liệu phân tán trên các cụm máy với chỉ phí phần cứng giá rẻ
Ngoài HDFS va YARN, các phần mềm mới như: Apache Spark, Apache Hive và Apache Tez được xây dựng đề xử lý những bộ đữ liệu lớn hơn với thời gian ngắn hơn Nền tảng cốt lõi để xử lý dữ liệu trong những phần mềm này, vẫn là MapReduce Hay cụ thể hơn, những phần mềm này hoạt động như một công cụ hỗ trợ thực thi ứng dụng MapReduce
Trang 382.5 TIEU KET CHUONG 2
Trong chwong nay, t6i da gidi thiéu vé Hadoop va cac thanh phan cia Hadoop Trình bày về 2 ứng dụng cốt lỗi của hệ sinh thái Hadoop là hệ thống file lữu trữ
phân tán (HDFS) và xử lý phân tán với MapReduce Từ đó, làm nền tảng để sử
dụng những công cụ trong hệ sinh thái Hadoop, thực hiện phân tích dữ liệu Big Data mà tôi sẽ trình bày trong chương 3
Trang 39CHƯƠNG 3 XỬ LÝ BIG DATA VÀ ỨNG DỤNG
3.1 XỬ LÝ BIG DATA VỚI HORTONWORKS SANDBOX 3.1.1 Giới thiệu Hortonworks Data Platform 3.0
Hortonworks Data Platform (HDP) 1a mét khung (framework) phan mém duoc xây dựng trên mã nguồn mở để lưu trữ phân tán và xử lý các bộ dữ liệu lớn, đa nguồn HDP giúp cho doanh nghiệp hiện đại hóa cơ sở hạ tầng công nghệ thông tin, giữ an toàn cho đữ liệu tại chỗ hoặc trên đám mây, đồng thời cung cấp các công cụ phân tích dữ liệu mạnh mẽ giúp đẩy nhanh quá trình ra quyết định, cải thiện trải nghiệm của khách hàng và kiểm soát chỉ phí
Phần mềm HDP 3.0 là một bước nhảy vọt với những thay đổi lớn trên hoàn hệ thống như: hỗ trợ GPU!? dé thực hiện các công việc Hađoop liên quan đến Deep Learning!, tri tué nhân tạo, lưu trữ đám mây, mã hóa xóa, nhiều NameNođe, khả năng quản trị và bảo mật nâng cao
Trong phiên bản HDP 3.0 này, Apache Tez được tích hợp với Apache Hive để
có thể dịch các câu lệnh SQL phức tạp thành các biểu đồ xử lý dữ liệu với mục đích
tối ưu hóa hiệu suất xử lý dữ liệu và tăng khả năng mở rộng
bà ti TOOLS 204 (PERATIDNS
Data Lifecycle ‘& Governance —_ neve ‘Administration aaa Provisioning, pe
DATA ACCESS ‘Authorization & Monitoring
Falcon Atng
i Batch Sượt SWL N$WU Sưeam Semh Irlem 0thes Data Protection kiời
s Map Pig Hive Hhae | Storm | Solt | Spark SV
— Aceumilo Engineers Ranger Cloudbreak iD Partners Data Workflow Phoenix Si Ms ‘Sqoop Atlas Xa 'YARN:DATA 0PERATIN6 SYSTEM HOS Encryption — ata Corie Nes Hadoop Distributed File System EES
Hinh 3.1 Cac tng dung ctia Hortonworks Data Platform!
12 GPU (Graphics Processing Unit) là bộ xử lý những tác vụ liên quan đến đồ hoa cho vi xử lý trung tam CPU để Deep learning được bắt ngn từ thuật tốn Neural network, chỉ là một ngành nhỏ của máy học (machine learning)
14 Nguon: https://www.ibm.com/downloads/cas/DK WR4KZB
Trang 403.1.2 Những lợi ích của Hortonworks Data Platform 3.0
HDP giúp doanh nghiệp chuyên đổi mô hình kinh doanh của họ bằng cách
khai thác toàn bộ tiềm năng của bộ dữ liệu lớn với các lợi ích sau:
- HDP là đự án của một cộng đồng các nhà phát triển nguồn mở phi tập trung (Apache Software Foundation) nén nó hoàn toàn mở và cho phép các doanh nghiệp
triển khai, tích hợp và làm việc với khối lượng dữ liệu lớn
- YARN là kiến trúc trung tâm của Hadoop Nó phân bồ tài nguyên giữa các
ứng dụng để xử lý dữ liệu YARN điều phối các dịch vụ trên toàn cụm cho các hoạt động, quản trị dữ liệu và bảo mật
- Kiến trúc nguồn mở, cho phép HDP có thể tương tác với các trung tâm dữ liệu và các ứng dụng thông minh thvong mai (business intelligence applications) Khả năng tương tác của HDP giúp giảm thiểu chi phí và công sức cần thiết để kết nối cơ sở hạ tầng công nghệ thông tin của khách hàng với khả năng xử lý đữ liệu của HDP
3.1.3 Cac thanh phan cia Hortonworks Data Platform 3.0 a Data management
Các thành phan nén tang cia HDP la Apache Hadoop YARN va Hadoop Distributed File System (HDFS)
YARN: DATA OPERATING SYSTEM HDFS
Hadoop Distributed File System PA 102 )5)|)
Hinh 3.2 Data management cua HDP 3.0