1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu về big data và nền tảng tính toán phân tán hadoop

83 6 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Trang 1

BO GIAO DUC VA DAO TAO DAI HOC HUE

TRUONG DAI HOC KHOA HOC

CAO CHI HIEN

TIM HIEU VE BIG DATA VA NEN TANG TINH TOAN PHAN TAN HADOOP

LUAN VAN THAC SI KHOA HOC

CONG NGHE THONG TIN

Thira Thién Hué, 2020

Trang 2

BO GIAO DUC VA DAO TAO ĐẠI HỌC HUE TRƯỜNG ĐẠI HỌC KHOA HỌC CAO CHÍ HIẾN

TIM HIEU VE BIG DATA VA NEN TANG TINH TOAN PHAN TAN HADOOP

CHUYEN NGANH: KHOA HOC MÁY TÍNH MA SO: 8480101

LUAN VAN THAC Si KHOA HOC DINH HUONG UNG DUNG

NGUOI HUONG DAN KHOA HOC PGS.TS NGUYEN MAU HAN

Thừa Thiên Hué, 2020

Trang 3

LOI CAM DOAN

Tôi xin cam đoan bản luận văn này là công trình nghiên cứu riêng của tôi, không sao chép ở bất kỳ công trình khoa học nào trước đây Các kết quả nêu trong luận văn có nguồn gốc rõ ràng và được trích dẫn đầy đủ

Tơi xin hồn tồn chịu trách nhiệm về luận văn này

Học viên

Trang 4

Vi du minh hoa

The overall MapReduce word count process

Input Splitting Mapping Shuffling Reducing Final result

Hình 2.6 Hoạt động của các hàm Map và Reduce

2.2.4 Cơ chế hoạt động MapReduce trong Hadoop

2241 Một số khái niém: Job, Task, JodTracker, TaskTracker

- Trong mô hình MapReduce của Hadoop, Hadoop định nghĩa MapReduce

Job (Job) la một đơn vị quá trình xử lý mà người dùng muốn thực hiện, kèm theo đó

là dữ liệu input

- Một MapReduce Job sẽ được phân rã thành các công việc con nhỏ hơn, duoc goi la task Task duoc chia lam 2 loai: Map task va Reduce task Hiéu mét

cach don gian, Map task là công việc con được thực thi thông qua việc gọi hàm

Map, va tương tự với Reduce task sẽ thực hiện hàm Reduce

- Để quản lý và thực thi MapReduce Job, Hadoop đưa ra 2 khái niệm

JobTracker và TaskTracker

- JobTracker (công việc theo dõi) là một điển truy cập cho clients Nhiệm vụ của JobTracker là đảm bảo kế hoạch và lập kế hoạch công việc sắp tới của MapReduece, và giao nhiệm vụ cho các TaskTrackers mà nó có trách nhiệm thực hiện

- TaskTracker: là một máy vật lý cài đặt Hadoop MapReduce (là các worker

của hệ thống), VỚI vai tro tiép nhận task được JobTracker phân công và thực hiện

Trang 5

MUC LUC

Trang

9090 0)09 90 i

LỜI CẢM ƠN 225 221222112221 2212211221211 21222122 erea ii

MUC LUC Lecce cece Ẽ6 Đ© ‹4ă ul

DANH MUC CAC BANG ooo ooo coos soe seeseeeeeeee te tvtettetteeteetteeeeteteeteeess vi DANH MỤC HÌNH ẢNH -22- 222 22222232211121112112112112122222ee vii DANH MỤC CÁC TỪ VIẾT TẮT -2-222222122212221221221221222.2E2 xe ix

PHẢN 1: MỞ ĐẦU 52-2222 2211221122112111221112111221112211121 212 eo 1

1 Tính cấp thiết để tài 22 22 22221122112111211122112112122222 re 1

2; Mue tiêu nghiên,CỨU yee erscee merece meena resem nace nue ween espero ceaeemnngee eran euuempeesnaes 1 3 Đối tượng nghiên cứu -©-22222222122112111211111111111111111211121 re 2 4 Phuong phap:ng hin ctu cxccssncenessrermersesror nee menennem meneame me 2 5 Pham vi nghién 0 .aa 3 6 Noi dung nghién COU adadđdđdđddiiẳiẳiaáẳáảảẢä4ä(4 3

PHÀN 2: NỌI DUNG 222 22222222112211221122112111111211212211222222 re 4 Chương 1 TƯNG QUAN VỀ HỆ THƠNG PHÂN TÁN 2-222-c 2c 4 1.1 Giới thiệu sơ lược về cơ sở dữ liệu phân tán 22: 22222222222222222222zce2 4 1.2 Xử lý phân tán và hệ thống phân tán -2- 22 2222222251225122112211211 2 2-e 6

1.2.1 Khái niệm xử lý phân tán .-.- - c2 S2 nhe 6

1.2.2 Hệ thống phân tán - 22-222 22222112211211121112111211121121222122 e6 6

1:3; Tệ cơ sở dữ liễu phần LẤNssezzcseszresesrrrrdintrtrdttttitSEEH0(EERADS(RUĐBJ(HGbSisnGtnA 7

1;3,1:;H1Ệ cơ:sỏ:dữ liều:phần tán lã¿B T7 sssnseseneisiebisisitfisHBIDESEBBIEEIEERISEIGENBR 7

1.3.2 Sự cần thiết của hệ cơ sở dữ liệu phân tán - 2222222222222 7

1.3.3 Khả năng truy cập từ xa của hệ cơ sở dữ liệu phân tán - 9

1.4 Tiểu kết chương Ì -.-22-2222211221122121121121121121122222222 2e 10

Trang 6

Chuong 2 TINH TOAN PHAN TAN VỚI HADOOP | ccccccscccesceeeseeeseees 11

2.1 Tổng quan nên tảng tính tốn phân tán Hadoop -©-s¿22s22z+2zzsze2 11 21.1.1 Liịch: sử IElat[GODbeeeseeeersseeirianiersroodiitsreEBiTl1rLEE18 0166691000019 3E000100115010010E 11 212 khái niệm,T8O0PizeseeseneeitbelsoiDDEEDHIESEIGOISSIHDNIEEIEDHEEIVHEIINESSSISASEE 12

2.1.3 Các thành phần Hadoop - 22-222 22222522211211121112111211121222 xe 13

2.1.4 Ưu, nhược điểm của Hadoop 22-222 22222512211221121112211212211 2e 15 2.2 Tổng quan về Mapreduee ©222212221122122122121121122122.2 re 16 2.2.1 Nguyên nhân và lịch sử ra đờI - S2: vs srhhrkryrrerrrerse 16

2.2.2 Khái niệm về MapReduce 22 2222212211121112111211211222 xe 17

22.3; Cũ: pháp MiapR€dHGGisseseseetesetsoitiDsOISEIGOISSINDAIEEENHEEIVRESIIEHSSISĐSEE 18 2.2.4 Cơ chế hoạt động MapReduce trong Hadoop 22: 2-+2zzs2scz2 20 2.3 Hệ thống tập tin phân tán (HDFS) 2222222 2211221222122112221221.22 2 xe 28

2.3.1 Giới thiệu về HDFS 222222 nnnhhhrrrrriririerrreee 28

2.3.2 Kiến trúc và hoạt động của HDES St Hhehereere 29

2.4 Tiểu kết chương Ï - 2-22 22112211221211122121121121121121222 ae 33 Chương 3 XỬ LÝ BIG DATA VÀ ỨNG DỤNG -©2222222222221222e 35 3.1 Giới thiệu về Big Data - 22222 22122212221222122122222222222 are 35 3.1.1 Giới thiệu về Big Data - 22 2S 22122212211221122122222 re 35

E8 án -. 1-1ÍỲỲA 35 3.1.3 Các đặc điểm và thành phần của Big Data - 222222 22222222222 36 3:14 Mô hình xứ lý-Big DÍ8:ssssssosrtooieotiiGiavt0iGIAEEOUGIOEREMGIEI03i8g3 Ai 39 3.1.5 Thách thức của Big Data với công nghệ thông tin hiện nay 40 3.1.6 Ứng dụng của Big Data trong thực tế -2- 22 22s2221222122212221 22.22, 41 3.2 Xử lý Big Data với Hornworks SanbOX - cc tt srrtrsrxerrerrrrerrree 44 3.2.1 Giới thiệu Hortonworks Data Platform (HDP) -:c5:+5:+52 44

Trang 7

3.2.2 Những đặc tính quan trọng của Hortonworks Data Platform 45 3.2.3 Các thành phần của Hortonworks Data Platform 2-©2s22zszs2 45

3.2.4 Cài đặt Hortonworks Sandbox - .- c2 1 222111112111 1521111211112 xxx 50

3.3 Ung dung Big Data dé giải quyết bài toán trong thực tẾ 2 -2 51 3.3.1 M6 14 bal t0atssincneneencemmmnmneee 51

3.3.2 Dữ liệu đầu vào, đầu ra ctia bai toaI: oe ce ce ccceccccesecsesecesessesecuesecseseeeeseees 52 3.3.3 Cài đặt bài toán trên Hortonworks Sandbox -c S225 cc+sss+ 54

3.4 Đánh giá Hortonworks Sandbox và SQL trong xử lý Big Data 37 3.4.1 Đánh giá hiệu năng xử lý truy vấn SQL và Hadoop -2s + 57

3ÿ052uIEENinfiinssnorsetonintgetotnttgtoottnttI09ID0N0058000940/0800199000000000000/0099000180800790000000-0ng0 62

3.5 Tiểu kết chương IIT -2- 22s 2212221221122112211221127121121121122112211212 xe 62 KE LUAN VÀ HƯỚNG PHÁT TRIỂN - 22 222222522212221121122222 xe 63

1 Kết quả đạt được trong luận văn St t1 nhà HH Hee 63

2 Một số hạn chế đề tài 2222222 tt tren 63

3 Hướng phát triển -©-2-2221221122112211211121112112112112112112222 ae 64 TÀI LIỆU THAM KHẢO 522222 222222122212211211211211212122 2e 65 PHỤ LỤC CÀI ĐẶTT - 2-22 22122122512112212112112112112112212121222 re 66

1 Cài đặt máy ảo Hortonworks Sandbox HDP 2.6.5 -íccccc series 66

a) Cài đặt bộ Oracle VM VirtualBOx 2 2 2 122112112 211211111 181 ke 66

b) Cài đặt Hortonworks Sandbox HDP 2.6.5 cho VirtualBox 66

Trang 8

Bang 2.1 Bang 2.2 Bang 2.3 Bang 3.1 Bang 3.2 Bang 3.3 Bang 3.4 Bang 3.5 DANH MUC CAC BANG Trang ۓ0v.0 12117 all 26

Giai đoạn Reduce - c1 112211112211 115211 1112211111011 1 1201111111111 2xx ke 26

Kết quả bài toán đếm từ 2 22 2222222211211121121122222 re 27

Cấu trúc tập tin đầu vào -2- 22 22222212111211121121121122122 2e 33 Cấu trúc dữ liệu bảng tập tin đầu vào 22-222 22222222111211212 xe 33

Kết quả thực hiện một số lần test c2 1 2111111111211 2n rae 57

Số bản ghi và dung lượng đữ liệu được lưu trữ trên SQL Server và

Hortonworks Sandbox - - c2 20122012201 11211 121115111011 1811 8111811 xay 58

Bảng kết quả so sánh thời gian xử lý giữa SQL Server và Hortonworks

SandbOX c1 2.01201021112111 1 1211121111011 n1 9 1111k Hi Hhykt 60

Trang 9

Hinh 1.1 Hinh 1.2 Hinh 1.3 Hinh 1.4 Hinh 2.1 Hinh 2.2 Hinh 2.3 Hinh 2.4 Hinh 2.6 Hinh 2.7 Hinh 2.8 Hinh 2.9 Hinh 2.10 Hinh 2.11 Hinh 2.12 Hinh 2.13 Hinh 2.14 Hinh 2.15 Hinh 2.16 Hinh 2.17 DANH MUC HiNH ANH Trang MHõ:-hình:cở sử dữ liệu phần tấn: s:eeossceeieeeiiinrndinndnsaairiniassristaoniÔ 5 Cơ sở dữ liệu phân tán trên mạng cục bỘ - ¿5S + sccccsrxsrres 5 Truy cập CSDL từ Xxa LH HH HH HH Hàn tt 9 Truy cập CSDL từ Xa SH HH HH HH Hà nhe 10 I0 0s 0 aa.a AB 11 Các thành phần của Hadoop - ©2222 22E221222122212221122122122 e6 13 MapRecduce và HDEN sseeearorteenirtogpdiltÐgibtisiGRAHISECRNlI0RGNSiyIRONSiiiĐGg 15

Luéng dữ liệu MapReduce với một tác Vụ . . :cccsccscssc2 17

Luỗng dữ liệu MapReduce với nhiều tác vụ -22s22xz22xc2 18 Hoạt động của các hàm Map và Reduce Series 20 Cơ chế hoạt động MapReduce trong Hadoop 2s-22z22zc2 21 Liên tạc đầu tiên giữa JobTracker và TaskTracker - s22 32 Cơ chế hoạt động của map task 22222 22222212221222122122 2x6 22 1askTracker hoàn:thành map tASK+::ssezrsebsrsesobsrsxasorosayirihoygiiitee 23

Cơ chế hoạt tông cửa:Reduee ÍASÌxssexesssessisieossefisisieHBIPB8AnEEA 24

TaskTracker hồn thành Reduce fask ¿55c ccSccscssccerrsxerreee 24

Quá trình thực hiện với bài toán MapReduce với bài toán đếm từ 27

Kiến trúc HDES -.55 22221 nghe 30

Hoạt động NameNode (master) và DataNode (worker) - 31

;2/2e507/-8:i-:0s79 11 aa 32

Ghi file trên HIDES 1 S1 nhe 33

Trang 10

Hinh 3.1 Hinh 3.2 Hinh 3.3 Hinh 3.4 Hinh 3.5 Hinh 3.6 Hinh 3.7 Hinh 3.8 Hinh 3.9 Hinh 3.10 Hinh 3.11 Hinh 3.12 Hinh 3.13

Các thành phần của kiến trúc Big Data 22-222 222222222122122cee 38 Mô hình xử lý Big Data ó2: t2 t2 nghe 39 Giới thiệu Hortonworks Data Platform (HDP) : 555 c2:‡22s52 44 Cấu trúc của Hortonworks Data Platform 222222 22222122212221e6 45 Cầu trúc của Hortonworks Data Platform (HDP 2.5) -5s¿ 46 Thành phần Data Management 22 2+ 2222212221122122211221222122 e6 46 Thành phần Data Access - 522222222 221222112211211211221122 e6 46 Thành phần Securify 22-522 2222252221122112211211121112212122 2x6 49

Thực hiện câu lệnh truy vấn thống KỆ Q Q0 Q2 TS HT ng khe 54

Kết quả thực hiện truy vấn -©2222222222251211121112111211212212 xe 55 Thông tin chỉ tiết thực hiện tray van MapReduce 0.00.00 ccc 56 Biểu đồ so sánh khả năng lưu trữ của SQL Server và HWS 59 Biểu đồ so sánh thời gian thực hiện truy vấn SQL và HWS 61

Trang 11

DANH MUC CAC TU VIET TAT

CSDL Cơ sở dữ liệu

CSDLPT Cơ sở dữ liệu phân tán

GD&DT Giáo dục và Đào tạo

THPT Trung học phổ thông

DBMS Database Management System

DDBMS Distributed Database Management System GFS Google File System

HDFS Hadoop Distributed File System HDP Hortonworks Data Platform

MS Excel Microsoft Excel

Trang 12

PHAN 1: MO DAU 1 TINH CAP THIET DE TAI

Ngày nay, sự phát triển không ngừng của khoa học kỹ thuật, sự ra đời và

phát triển của Internet, máy tính cá nhân, các thiết bị điện thoại thông minh, đã

mang lại những đổi thay lớn lao trên mọi lĩnh vực đời sống Trong kỷ nguyên của

loT với việc ứng dụng và tích hợp sâu rộng các thiết bị di động như điện thoại di

động, ôtô, máy móc công nghiệp góp phần vào việc tạo và chuyển đữ liệu, dẫn đến

sự bùng nổ của dữ liệu có thể thu thập được Trong dòng thác dữ liệu liên tục được

tạo ra từng giây, thuật ngữ Big Data (Dữ liệu lớn) được sử dụng đề chỉ những bộ đữ

liệu không lồ, được thu thập và lưu trữ từ nhiều nguồn khác nhau [Š]

Các tổ chức lớn đang thực sự đối mặt với thách thức cách tổ chức lưu trữ lớn

và cách truy vấn xử lý dữ liệu với những bộ dữ liệu không lồ một cách nhất quán các dữ liệu có liên quan

Để giải quyết vấn để trên, các hệ quản trị cơ sở dữ liệu quan hệ truyền théng Database Management System (DBMS) gặp rất nhiều hạn chế Do vậy, để phục vụ cho các kiểu đữ liệu này, các nhà phát triển công nghệ đã nghiên cứu tạo ra những nên tảng và công cụ mới để giải quyết vần để này, chẳng hạn như

Hadoop, NoSQL, Spark,

Chính vì những lý do trên tôi đã lựa chọn dé tai: “TIM HIEU VE BIG DATA

VA NEN TANG TINH TOAN PHAN TAN HADOOP” voi muc dich tìm hiểu về

Big Data va tính toán phân tán trên hé théng Hadoop (Hadoop Ecosystem)

Dé tài sẽ cho chúng ta có cái nhìn tổng quan, hiệu quả về nên tảng phát triển ứng dụng tính toán phân tán bằng Hadoop so với các Hệ cơ sở dữ liệu quan hệ truyền thống DBMS

2 MỤC TIỂU NGHIÊN CUU

- Mục tiêu chung: tìm hiéu Big Data va Hadoop

Trang 13

+ Tìm hiểu, nghiên cứu nên tảng tinh toán phân tan trên môi trường Hadoop; + Tìm hiểu, nghiên cứu mô hình tính toán MapReduce và lưu trữ Hadoop Distributed File System (HDFS) trong ứng dụng xử lý Big Data;

+ Tìm hiểu một số thanh phan trong Hadoop;

+ Kết hợp các thành phan trong Hadoop dé giải quyết bài toán thực tế:

+ Phân tích, đánh giá kết quả thử nghiệm hiệu suất cho dữ liệu lớn và định

hướng nghiên cứu tiếp theo

3 DOI TUONG NGHIÊN CỨU

Từ những yêu cầu của dé tài ta xác định được đối tượng và phạm vi nghiên cứu như sau:

- Tính toán phân tán

- Các mơ hình tính tốn phân tán - Mô hình tính toán MapReduce - Dữ liệu Big Data

- Công cụ phần mềm mã nguồn mở Hadoop

- Các phuong phap Extract, Transform & Load (ETL) trong Hadoop Ecosystem

4 PHUONG PHAP NGHIEN CUU

1.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 tính toán phân tán

- Nghiên cứu nên tảng tính toán phân tán trên môi trường Hadoop - Nghiên cứu cơ sở lý thuyết về Big Data

1.4.2 Nghiên cứu thực nghiệm

Trang 14

- Cài đặt ứng dụng mô hình MapReduce trên nền tảng Hadoop bằng công cụ Hortonworks Sandbox xử lý về Big Data

- Chuyển đổi đữ liệu từ Cơ sở dữ liệu quan hệ sang Hadoop

- Tiến hành phân tích đữ liệu mô hình quan hệ và mô hình Hadoop - Đánh giá hiệu năng xử lý truy vấn dữ liệu của mô hình Hadoop

5 PHAM VI NGHIEN CUU

- Tổng quan về Big Data, mô hình lập trình MapReduce dựa trên nền tảng Hadoop và ứng dụng

6 NỌI DUNG NGHIÊN CỨU

- Tìm hiểu tổng quan về cơ sở dữ liệu phân tán và Big Data

Trang 15

PHAN 2: NOI DUNG

Chuong 1 TONG QUAN VE HE THONG PHAN TAN

1.1 GIOI THIEU SO LUOC VE CO SO DU LIEU PHAN TAN

Ngày nay cùng với sự phát triển khoa học công nghệ, các tổ chức kinh tế ngày càng phát triển mở rộng phạm vi hoạt động lên đến đa quốc gia Các tổ chức

kinh tế có nhiều trụ sở phân tán ở nhiều vị trí địa lý khác nhau trên thế giới lại mỗi

trụ sở của tổ chức kinh tế ta xây đựng một hệ thống quản lý dữ liệu Điều này hệ thống cơ sở đữ liệu tập trung không thể đáp ứng được Vấn để đặt ra tại mỗi trụ sở của tô chức kinh tế có thể dùng chung một dữ liệu hợp nhất; Làm thế nào quản lý cơ sở đữ liệu téng thé của tô chức; Làm thế nào đề có thể quản lý các luéng dé liệu và

sử dụng chung dữ liệu, chương trình của tổ chức Vì vậy cần một hệ thống làm việc trong suốt phân tán hoạt động tại các trụ sở của tổ chức Một hệ thống phân tán bao

gồm hai phần: mạng máy tính và Hệ quản trị cơ sở đữ liệu phân tán Cơ sở đữ liệu phân tán là gì?

Một cơ sở dữ liệu phân tán (Đ¡sfribufed Dafabase) là một tập hợp dữ liệu có

liên quan với nhau chứa thông tin của một tổ chức, mà về mặt logie tập hợp này

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 tính

Trong định nghĩa có hai van dé quan trong:

Phân tán: Dữ liệu không cư trú trên một vị trí mà được phân bố rộng khắp trên nhiễu máy tính đặt tại nhiễu vị trí khác nhau Đây là điểm phân biệt một cơ sở dữ liệu phân tán với một cơ sở dữ liệu tập trung

Tương quan logic: Dữ liệu trong hệ phân tán có một số thuộc tính ràng buộc chúng với nhau Điều này giúp chúng ta có thể phân biệt một cơ sở dữ liệu phân tán

với một tập hợp cơ sở dữ liệu tập trung Các file dữ liệu được lưu trữ tại nhiễu vị trí

khác nhau, điều này thường thấy trong các ứng dụng mà hệ thống sẽ phân quyển truy nhập dữ liệu trong môi trường mạng

Trang 16

Tại mỗi chỉ nhánh có một máy tính điều khiển một số máy kế toán cuối củng (teller terminal) và cơ sở đữ liệu thống kê của chỉ nhánh đó

Mỗi máy tính với cơ sở dữ liệu thống kê địa phương của nó tại mỗi chỉ

nhánh được đặt ở một vị trí của cơ sở dữ liệu phân tán Các máy tính được nối với

nhau bởi một mạng truyền thông Các nút trong một mạng phân tán một mặt xử lý thông tin tại vị trí mà nó quản lý, mặt khác nó cũng tham gia vào việc xử lý các yêu cầu về thông tin cần truy cập qua nhiều địa điểm Ví dụ như việc lên danh sách tất cả nhân viên của ngân hàng Yêu cầu này đòi hỏi tất cả các máy tính ở các chỉ nhánh của công ty đều phải hoạt động đề cung cấp thông tin

Để đáp ứng được vấn để này thì tại mỗi chỉ nhánh các máy chủ trong mạng

Trang 17

1.2 XU LY PHAN TAN VA HE THONG PHAN TAN

1.2.1 Khái niệm xử lý phân tán

Thuật ngữ xử lý phân tán có thê làm thuật ngữ được dùng nhiều trong khoa học máy tính trong những năm qua Nó thường được dùng để chỉ những hệ thống

gồm nhiều loại thiết bị khác nhau chẳng hạn như: hệ đa bộ xử lý, xử lý dữ liệu phân

tan, mạng máy tính,

Có hai khái niệm xử lý phân tán liên quan với nhau:

— Khái niệm liên quan đến việc tính toán trên Client/Server Trong đó ứng

dụng được chia ra thành hai phân, phan cua Server va phan cua Client va duoc van

hành ở hai nơi Trong tính toán phân tán này cho phép truy nhập trực tiếp dữ liệu và xử lý dữ liệu trên Server và Client

— Khái niệm thứ hai là việc thực hiện các tác vụ xử lý phức tạp trên nhiều hệ

thống Không gian nhớ và bộ xử lý của nhiều máy cùng hoạt động chia nhau tác vụ xử lý Các phần tử trong mạng máy tính cùng phối hợp thực hiện những công việc

được giao cho chúng Phần tử ở đây để chỉ một máy tính hoặc một thiết bị tính toán

có khả năng thực hiện chương trình trên nó Máy tính trung tâm sẽ giám sát và quản lý các tiến trình này Có trường hợp thông qua mạng Internet, hàng nghìn máy cùng

xử lý một tác vụ

Có thể định nghĩa hệ xử lý phân tán như sau: Hệ xử lý phân tán là một tập hợp các phần tử xử lý tự trị (không nhất thiết đồng nhất) được kết nối với nhau bởi một mạng máy tính và cùng phối hợp thực hiện những công việc gán cho chúng

Phần gửi xử lý ở đây là để chỉ một thiết bị tính toán có khả năng thực hiện chương

trình trên nó

1.2.2 Hệ thống phân tán

Hệ thống phân tán là tập hợp các máy tính độc lập kết nối với nhau thành

một mạng máy tính được cài đặt các hệ cơ sở dữ liệu và các phần mềm hệ thống

Trang 18

nghĩa là không chia sẻ bộ nhớ, chỉ có một hệ điều hành trong toàn bộ hệ thống

phân tán

Các mạng máy tính được xây dựng trên kỹ thuật Web, ví dụ như mạng Internet, mạng Intranet, làm các mạng phân tán

1.3 HE CO so DU LIEU PHAN TAN

1.3.1 Hệ cơ sở dữ liệu phân tán là gì?

Trong ngữ cảnh hệ xử lý phân tán thì hệ cơ sở đữ liệu phân tán có thể được xem như những công cụ làm cho quá trình xử lý dữ liệu phân tán đễ dàng hơn và

hiệu quả hơn Khái niệm hệ cơ sở dữ liệu phân tán ở đây bao gồm cả khái niệm cơ sở dữ liệu phân tán và hệ quản trị cơ sở dữ liệu phân tán

Cơ sở dữ liệu phân tán là một tập các cơ sở dữ liệu có quan hệ với nhau về

mặt logic và được phân bố trên một mạng máy tính

Hệ quản trị cơ sở dữ liệu phân tán là hệ thống phần mềm cung cấp môi

trường thuận lợi và hiệu quả cho việc tạo lập, cập nhật và khai thác cơ sở dữ liệu

phân tán Làm cho sự phân tán đó trong suốt đối với người đùng (Ví dụ hệ quản trị

cơ sở dữ liệu phân tán Oracle, SQL Server, DB2, )

Hệ cơ sở đữ liệu phân tán không đơn thuần bao gồm nhiều tập tin dữ liệu

được tổ chức lưu trữ riêng lẻ trên các thiết bị nhớ của mạng máy tính Đề tạo một hệ

cơ sở đữ liệu phân tán, các tập tin không chỉ có quan hệ với nhau về mặt logic mà còn cần có một cấu trúc giao diện chung giữa chúng để các tập tin có thê truy cập lẫn nhau

1.3.2 Sự cần thiết của hệ cơ sở dữ liệu phân tán

Trang 19

- Su phat triển của các cơ cấu tổ chức: Cùng với sự phát triển của xã hội,

nhiều tổ chức kinh tế xã hội có cơ cấu tổ chức không tập trung, hoạt động phân tán

trên phạm vị địa lý rộng Vì vậy cần thiết kế và cài đặt cơ sở dữ liệu phân tán phù

hợp, đáp ứng được mọi nhu câu truy xuất và khai thác đữ liệu Cùng với sự phát triển của khoa học máy tính là động cơ thúc đây phát triển kinh tế xã hội Việc tổ chức các trung tâm máy tính lớn và tập trung trở thành vấn đề cần nghiên cứu Cơ cấu tô chức kinh tế là một trong những nguyên nhân quan trọng nhất của sự phát triển cơ sở đữ liệu phân tán

- Giảm chỉ phí truyền thông: Trong thực tế, sử đụng một số ứng đụng mang tính địa phương sẽ làm giảm chỉ phí truyền thông Bởi vậy, việc tối ưu hóa cơ sở dữ liệu được tổ chức địa phương của các ứng dụng là một trong những mục tiêu chính

của việc thiết kế và cài đặt một cơ sở dữ liệu phân tán

- Hiệu quả công việc: Sự tổn tại một số hệ thống xử lý địa phương đạt được

thông qua việc xử lý song song Vấn để này thích hợp với mọi hệ đa xử lý Cơ sở dữ

liệu phân tán có thuận lợi trong việc phân tích dữ liệu phản ánh điều kiện phu thuộc

của các ứng dụng địa phương, làm tăng khả năng xử lý dữ liệu của các ứng dụng tại địa phương Công việc được phân chia giữa các bộ xử lý khác nhau của các địa phương và tránh được các tắc nghẽn thông tin trên mạng truyền thông hoặc các địch vụ chung của toàn hệ thống Sự phân tán dữ liệu phản ánh hiệu quả làm tăng tính địa phương của các ứng dụng

Trang 20

nhất, về mặt logic đữ liệu phân tán sao cho chúng xuất hiện với người đùng giống như cơ sở dữ liệu tập trung

Hệ cơ sở dữ liệu phân tán phát triển nhờ sự phát triển của kỹ thuật tính toán,

kỹ thuật truyền thông và mạng máy tính Những ứng dụng được xây dựng trên cơ sở dữ liệu phân tán xuất hiện nhiễu trên thị trường và từng bước chứng minh tính ưu

việt của nó so với cơ sở dữ liệu tập trung

1.3.3 Khả năng truy cập từ xa của hệ cơ sở dữ liệu phân tán

Các hệ quản trị cơ sở dữ liệu phân tán thường hỗ trợ về điều khiển tương tranh và khôi phục các tiến trình phân tán Khả năng truy cập từ xa có thể thực hiện được bằng hai cách

Cách thứ nhất: Trình ứng dụng yêu câu truy cập từ xa Yêu cầu này được

định tuyến tự động bởi DDBMS tới máy chủ chứa dữ liệu Được thực hiện tại máy

chủ chứa cơ sở đữ liệu và gửi lại kết quả về trạm yêu cầu Cách tiếp cận này được

sử dụng cho truy cập từ xa, trong suốt phân tán có thể thực hiện được bằng việc

Trang 21

Cách thứ hai: Chương trình phụ thực hiện tại các trạm ở xa (người lập trình

phải tự lập), các kết quả trả lại cho chương trình ứng dụng Chương Hệ quản trị trình ứng Site 1 dụng Site 2 Chương | Hệ quản trị trinh ứng CSDL 2 dụng Hình 1.4 Truy cập CSDL từ xa

Hệ quản trị cơ sở dữ liệu phân tán hỗ trợ cả hai cách tiếp cận trên Mỗi

một cách tiếp cận đều có những thuận lợi và khó khăn riêng Giải pháp thứ nhất cung cấp khả năng trong suốt phân tán cao hơn, trong khi giải pháp thứ hai có thể có hiệu quả hơn nếu như có rất nhiều chương trình ứng dụng cùng yêu cầu

truy cập, bởi vì các chương trình phụ có thể thực hiện các yêu cầu từ các trạm ở

xa và trả lại kết quả

1.4 TIEU KET CHUONG I

Trong chương này cho ta cái nhìn hệ thống phân tán

Cụ thể trình bày kiến thức cơ bản về khái niệm, đặc điểm của cơ sở dữ liệu

phân tán, hệ cơ sở đữ liệu phân tán và cách thức xử lý phân tán, hệ thống phân tán

Trang 22

Chuong 2 TINH TOAN PHAN TAN VOI HADOOP

2.1 TONG QUAN NEN TANG TINH TOAN PHAN TAN HADOOP

2.1.1 Lịch sử Hadoop

Hadoop Creation History “YAHOO

Fastest sort of a TB, 3.5mins aver 910 nodes NY Times converts 47B of image archives over 100 EC2s + " Go

Mai papers Yahoo! hires Cutting, cloudera Doug Cutting ~ Hadaap spins out of Nutch Founded joins Cloudera

Google

Facebooks launches Hive: 0 7 do

SQL Support for Hada0p doom Summit 2009,

Source: Cloudara, lnc 750 attendees

Hình 2.1 Lịch sử Hadoop

Nguồn gốc của Hadoop đến từ các bài viết File System Google được xuất bản vào tháng 10 năm 2003 Bài viết này là một bài nghiên cứu được sản sinh ra từ Google - MapReduce: Xứ lý dữ liệu đơn giản trên các cluster lớn Bắt đầu phát triển trên dự án Apache Nuích, nhưng đã được chuyên qua dự án con Hadoop mới trong

thang 1 năm 2006 [3] Doug Cutting đã làm việc tại Yahool vào thời điểm đó, đặt

tên Hadoop theo tên của con voi đô chơi của con trai minh

Hadoop 0.1.0 được phát hành vào tháng 4 năm 2006 và tiếp tục phát triển bởi nhiều người đóng góp đến dự án Apache Hadoop

2003 - Google launches project Nutch to handle billions of searches and indexing millions of web pages

Oct 2003 - Google releases papers with GFS (Google File System) Dec 2004 - Google releases papers with MapReduce

2005 - Nutch used GFS and MapReduce to perform operations

Trang 23

2006 - Yahoo! created Hadoop based on GFS and MapReduce (with Doug Cutting and team)

2007 - Yahoo started using Hadoop on a 1000 node cluster Jan 2008 - Apache took over Hadoop

Jul 2008 - Tested a 4000 node cluster with Hadoop successfully

2009 - Hadoop successfully sorted a petabyte of data in less than 17 hours to handle billions of searches and indexing millions of web pages

Dec 2011 - Hadoop releases version 1.0 2.1.2 Khai niém Hadoop

Dưới đây là một vài định nghĩa về Hadoop, mỗi định nghĩa nhắm vào một

nhỏm đối tượng khác nhau trong doanh nghiệp

Đối với các giám đốc điều hành: Hadoop là một dự án phần mềm nguồn mở của Apache đề thu được giá trị từ khối lượng/ tốc độ/ tính đa dạng đáng kinh

ngạc của dữ liệu về tổ chức của bạn Hãy sử dụng dữ liệu thay vì vứt bỏ hầu hết

đữ liệu đó đi

Đối với các giám đốc kỹ thuật: Hadoop là một bộ phần mềm nguồn mở để khai phá Big Data có cấu trúc và không có cấu trúc về công ty của bạn Nó tích hợp

với hệ sinh thái Business Intelligence của bạn

Đối với nhân viên pháp lý: Hadoop là một bộ phần mềm nguồn mở được nhiều nhà cung cấp đóng gói và hỗ trợ Hãy xem phần Tài nguyên về việc trả tiền sở hữu tri tué (IP)

Đối với các kỹ sư: Hadoop là một môi trường song song thực thi MapReduce dựa trên Java, không chia sẻ gì cả Hãy nghĩ đến hàng trăm, hàng ngàn máy tính đang làm việc để giải quyết cùng một vấn để, có khả năng khôi phục lỗi dựng sẵn Các dự án trong hệ sinh thái Hadoop cung cấp khả năng load (tải) dữ liệu, hỗ trợ ngôn ngữ cấp cao, triển khai trên đám mây tự động và các khả năng khác

Đối với chuyên gia bảo mật: Hadoop là một bộ phần mềm bảo mật-Kerberos

Trang 24

Wikipedia dinh nghia: Apache Hadoop hay Hadoop là một software framework hỗ trợ các ứng dụng phân tán dữ liệu chuyên sâu theo một giấy phép miễn phí Nó cho phép các ứng dụng làm việc với hàng ngàn máy tính tính toán độc lập và petabyte dữ liệu Hadoop được bắt nguồn từ các bài báo MapReduce của Google và Google File System (GFS)

Vay ta có thể kết luận như sau:

Là Framework cho phép phát triển các ứng dụng phân tán

Hadoop cung cấp một phương tiện lưu trữ dữ liệu phân tán trên nhiéu node,

hỗ trợ tối ưu hoá lưu luong mang, do la HDFS HDFS che giấu tất cả các thành

phần phân tán, các nhà phát triển ứng dụng phân tán sẽ chỉ nhìn thấy HDFS như

một hệ thống file cục bộ bình thường

Hadoop hiện thực mô hình MapReduce, mô hình mà ứng dụng sẽ được

chia nhỏ ra thành nhiều phân đoạn khác nhau được chạy song song trên nhiều

node khác nhau

Viết bằng Java tuy nhiên hỗ trợ được các ngôn ngữ khác như C++, Python, Perl bằng cơ chế streaming

Trang 25

Hadoop Core Componenfs: cung cấp các công cụ và giao diện cho hệ thống phân tán và các tiện ích I/O Đây là phần lõi để xây dựng nên gồm hai layer chính HDFS và MapReduce

MapReduce: Frameworks cho lập trình (dùng Java) Đây là mô hình lập trình

cho Hadoop Có hai giai đoạn được gọi là Map và Reduce, một quá trình mà hệ

thống thực hiện sắp xếp và chuyên các kết quả đầu ra của Map tới các đầu vào của các bộ Reduce MapReduce gồm 2 thành phần: JobTracker làm nhiệm vụ quản lý và phân chia công việc cho TaskTracker; và TaskTracker trực tiếp thực thi xử lý dữ

liệu JobTracker là một điển truy cập cho clients Nhiệm vụ của JobTracker là đảm báo kế hoạch và lập kế hoạch công việc sắp tới cia MR, va giao nhiệm vụ cho các TaskTrackers mà nó có trách nhiệm thực hiện Một TaskTracker có thể chạy một số của nhiệm vụ phụ thuộc trong các nguôn lực có sẵn

HDFS (Hadoop Distributed File System): mét hé théng tap tin phân phối thiết kế để chạy trên phần cứng Nó có nhiều điểm tương đồng với hệ thống tập tin phân tán hiện có Tuy nhiên, sự khác biệt từ hệ thống tập tin phân phối khác là rất lớn HDFS chịu lỗi rất tốt và được thiết kế dé triển khai trên phần cứng chi phí thấp HDES cung cấp khả năng truy cập cao ứng dụng dữ liệu và phù hợp cho các ứng dụng có tập dữ liệu lớn HDFS gồm 2 thành phần DataNode và NameNode Các tập

tin trong HDFS duoc chia thành một số khối lớn (thường là 64Mb) và được lưu

trong DataNode Một tập tin điển hình được phân phối trên một số DataNodes nhằm thúc đây băng thông cao và xử lý song song Để nâng cao độ tin cậy, các khối dữ liéu trong HDFS (data blocks) được nhân bản và lưu trữ trong 3 máy, với một trong những bản sao trong mỗi giá khác nhau để tăng tính sẵn có của dữ liệu Việc đuy trì

các tập tin siêu dữ liệu được xử lý bởi một NameNode riêng biệt Siêu dữ liệu này bao gồm ánh xạ từ tập tin vào khối và vị trí của khối (DataNode) NameNode theo định kì sẽ truyền đạt siêu dữ liệu của nó cho Secondary NameNode khi cần cấu hình

lại để làm nhiệm của NameNode khi xây ra trường hợp lỗi

Trang 26

Task

Tracker Task Task

MapReduce + Iracker' 'Tracker| Layer Job Tracker! Name ADEs Layer Nase Node a c— 2 Dalo ] Node Data Node Hinh 2.3 MapReduce va HDFS 2.1.4 Ưu, nhược điểm của Hadoop

2.1.4.1 Uu diém của Hadoop

Khả năng mở rộng: Hadoop framework cho phép người dùng nhanh chóng viết và kiểm tra các hệ thống phân tán Đây là cách hiệu quả cho phép phân phối dữ liệu và công việc xuyên suốt các máy trạm nhờ vào cơ chế xử lý song song của các lõi CPU

Khả năng xử lý lỗi: Hadoop không dựa vào cơ chế chịu lỗi của phần cứng fault-tolerance and high availability (FTHA), thay vì vậy bản thân Hadoop có các thư viện được thiết kế đề phát hiện và xử lý các lỗi ở lớp ứng dụng

Tính linh hoạt: Hadoop có thê phát triển lên nhiều server với cấu trúc master- slave để đảm bảo thực hiện các công việc linh hoạt và không bị ngắt quãng do chia

nhỏ công việc cho các server slave được điều khiển bởi server master

Tính tương thích: Hadoop có thể tương thích trên mọi nền tảng như Window,

Linux, MacOs do được tạo ra từ Java

Tốc độ xử lý: Phương pháp lưu trữ độc đáo của Hadoop, dựa trên một hệ

thống tập tin phân phối theo các “ánh xạ” dữ liệu Các công cụ xử lý dữ liệu thường nằm trên cùng một máy chủ với dữ liệu nên kết quả xử lý đữ liệu nhanh

hơn nhiều Nếu chúng ta đang làm việc với khối dữ liệu lớn, phi cấu trúc,

Trang 27

Hadoop có thể xử lý hiệu quả mỗi tetabyte dữ liệu chỉ trong vài phút và mỗi petabye trong vài giờ

2.142 Nhược điểm của Hadoop

HDFS: Không hiệu quả cho việc lưu trữ, xử lý các tập tin dữ liệu nhỏ

Hadoop không có mô hình bảo mật và tính phức tạp cao

Hadoop không cung cấp lưu trữ hoặc mã hóa đữ liệu mức mạng Đây là điểm quan tâm đối với dữ liệu của đối tượng khách hàng cần bảo mật thông tin

2.2 TONG QUAN VE MAPREDUCE

2.2.1 Nguyên nhân và lịch sử ra đời

Ngày nay cùng với việc gia tăng chóng về mặt về số lượng cũng như sự đa

dạng dỡ liệu dựa trên nên tảng của thông tin số hội tụ toàn cầu như các website thương mại điện tử, mạng xã hội như Facebook, Zalo, ngày càng làm các nhà

kinh doanh mong muốn nhiều hơn các giá trị quý giá đem lại từ các loại dữ liệu đỏ Việc đó đồng nghĩa với các nhà khoa học phải đau đầu đối phó với việc lưu trữ, xử lý khối lượng số liệu khổng lồ và đa dạng vẻ chủng loại đữ liệu Vì vậy nhiều các nhà khoa học đang nghiên cứu các cơng nghệ, thuật tốn để giải quyết bài toán về

lưu trữ, xử lý và phân tích các loại dữ liệu lớn Năm 2004, Google xuất bản một bài

báo về một quá trình gọi là MapReduce sử dụng một kiến trúc tương tự MapReduce cung cấp một mô hình xử lý song song, và phát hành những ứng dụng liên quan để xử lý lượng đữ liệu khổng lồ Với MapReduce, các truy vấn được chia nhỏ và truyền đi qua các nút mạng song song và được xử lý song song (bước Map) Các kết quả sau đó được thu thập và phân phối (bước Reduce) Khuôn mẫu này rất thành công nên những công ty khác cũng muốn sao chép các thuật toán của nó Do dé, Google đã triển khai khuôn mẫu MapReduce thông qua dự án mã nguồn mở Apache Hadoop Các nghiên cứu vào năm 2012 cho thấy cấu trúc nhiều lớp là một lựa chọn để giải quyết các vấn đề của xử lý dữ liệu lớn Một kiến trúc phân tán song song phân tán đữ liệu trên nhiều máy chủ; những môi trường thực hiện song song này có thê cải thiện đáng kê tốc độ xử lý dữ liệu Kiểu cấu trúc này chèn dữ liệu vào

Trang 28

một DBMS song song, thực hiện việc sử dụng các khung nên MapReduce và

Hadoop Loại khung nên này sẽ tăng sức mạnh xử lý thông suốt đến người dùng cuối bằng cách sử dụng một máy chủ ứng dụng đầu cuối

2.2.2 Khái niệm về MapReduce

MapReduce được thiết kế bởi Google như là một mô hình lập trình, thực

hiện quá trình xử lý tập dữ liệu lớn song song, thuật toán được phân tán trên l cụm Mặc dù, MapReduce ban đầu là công nghệ độc quyền của Google, né da trở thành thuật ngữ tổng quát hóa trong thời gian gần đây MapReduce gồm 2 phân: Map và Reduce

Hàm MapQ) thực hiện lọc (filter) và phân loại (sort) trên dữ liệu

Hàm ReduceQ) thực hiện tổng hợp dữ liệu

Mô hình này dựa trên các khái niệm biến đổi của bản dé và reduce cdc

Trang 29

input peers output _ HDFS — HDFS replication 71 Dị] 1= | Ti Hình 2.5 MapReduce với nhiều tác vụ 2.2.3 Cú pháp MapReduce

MapReduce định nghĩa dữ liệu (cấu trúc và không cấu trúc) dưới dạng cặp

khóa, giá trị (key, value)

Trong đó: Khóa (key) có thể là tên của tập tin và giá trị (value) là nội đung của tập

tin; hoặc khóa là địa chỉ URL và giá trị là nội dung của URL, Việc định nghĩa dữ liệu thành cặp khóa — giá trị này linh hoạt hơn các bảng dữ liệu quan hệ 2 chiều

truyền thông (quan hệ cha-con hay còn gọi là quan hệ khóa chính — khó phụ)

Quy trình xử lý, MapReduce được xây dựng từ mô hình lập trình hàm và lập trình song song Tăng tốc độ thực thi xử lý đữ liệu là mục đích quan trọng nhất Quy trình này gồm 2 phần: Hàm Map và hàm Reduce

~ Map: Đầu vào là nút chủ (master node) và sau đó chia nhỏ nó ra thành các vấn đề

bé hơn Gọi là các split 0, split 1, split 2,

— Reduce: Tt cac dau ra trung gian sẽ tổng hợp lại để đưa ra các kết quả cuối cùng

cho van dé master

2.2.3.1 Ham Map

Ham Map (ham ánh xạ): Nhận dữ liệu đầu vào một cặp (key, value) dé

sinh ra một cặp (keyl, value]) - key và value trung gian Dữ liệu nay input vao

hàm Reduce

Trang 30

Map(k, v) > List (kl, v1) Trong do: k, k1 la khoa; v, v1 la cac gia tri Mot vi du vé ham Map:

def map (key, value): list = [] for x in value: if test: list.append( (Key, x) ) return list 2.2.3.2 Ham Reduce

Ham Reduce (ham rut gon): Tiép nhận các (keyl, valuel) và trộn các cặp

(keyl, valuel) trung gian, lấy ra các valuel có cùng keyl (k1, list(v1)) List(k2,list(v2)) Một ví dụ về hàm Reduce: defreduce (key, listOgValues): result = 0 for x in listOgValues: result += x return (key, result)

Đề xử lý khối dữ liệu bao gồm rất nhiều cặp (key, value), lập trình viên viết hai hàm map và reduce Hàm map có đầu vào là một cặp (KI, v1) và đầu ra

là một danh sách các cặp (k2, v2) Như vập hàm Map có thể được viết theo

dang: map(kl,v1) => list(k2,v2) Va ham reduce co dang reduce(k2, list (v2)) => list(v3)

Trang 31

Vi du minh hoa

The overall MapReduce word count process

Input Splitting Mapping Shuffling Reducing Final result

Hình 2.6 Hoạt động của các hàm Map và Reduce

2.2.4 Cơ chế hoạt động MapReduce trong Hadoop

2241 Một số khái niém: Job, Task, JodTracker, TaskTracker

- Trong mô hình MapReduce của Hadoop, Hadoop định nghĩa MapReduce

Job (Job) la một đơn vị quá trình xử lý mà người dùng muốn thực hiện, kèm theo đó

là dữ liệu input

- Một MapReduce Job sẽ được phân rã thành các công việc con nhỏ hơn, duoc goi la task Task duoc chia lam 2 loai: Map task va Reduce task Hiéu mét

cach don gian, Map task là công việc con được thực thi thông qua việc gọi hàm

Map, va tương tự với Reduce task sẽ thực hiện hàm Reduce

- Để quản lý và thực thi MapReduce Job, Hadoop đưa ra 2 khái niệm

JobTracker và TaskTracker

- JobTracker (công việc theo dõi) là một điển truy cập cho clients Nhiệm vụ của JobTracker là đảm bảo kế hoạch và lập kế hoạch công việc sắp tới của MapReduece, và giao nhiệm vụ cho các TaskTrackers mà nó có trách nhiệm thực hiện

- TaskTracker: là một máy vật lý cài đặt Hadoop MapReduce (là các worker

của hệ thống), VỚI vai tro tiép nhận task được JobTracker phân công và thực hiện

Trang 32

nó Một TaskTracker có thể chạy một số của nhiệm vụ phụ thuộc trong các nguồn

lực có sẵn và sẽ phân bố cho các nhiệm vụ mới bằng JogTracker khi nó sẵn sàng 2.2.4.1 Cơ chế hoạt động MapReduce trong Hadoop

Hình 2.7 Cơ chế hoạt động MapReduce trong Hadoop

Đầu tiên chương trình client sẽ yêu cầu thực hiện job và kèm theo là dữ liệu đầu vào tới JobTracker JobTracker sau khi tiếp nhận job này, nó sẽ gửi thông báo phản hồi chương trình client về tình trạng tiếp nhận job Khi chương trình client

nhận được thông bảo nếu tình trạng tiếp nhận hợp lệ thì nó chia dữ liệu đầu vào cho

mỗi công việc job thành các mảnh (piece) có kích thước cố định gọi là các input split hoặc là các split (khi đùng HDES thì kích thước một split thường bằng với kích thước của một đơn vị Block trên HDFS) va cac split nay sẽ được ghi xuống HDES Sau đó chương trình client sẽ gửi thông báo đã sẵn sàng để JobTracker biết

rằng việc chuẩn bị dữ liệu đã thành công và hãy tiến hành thực hiện Job

Khi nhận được thông báo từ chương trình client, JobTracker sẽ đưa Job này vào một stack mà ở đó lưu các job mà các chương trình client yêu cầu thực hiện

Tại một thời điểm JobTracker chỉ được thực hiện một Job Sau khi một job hoan

thành hay bị block, JobTracker sé lay job khac trong stack nay (FIFO) ra thue hién

Trong cấu trúc đữ liệu của mình, JobTrack có một job scheduler voi nhiém vu lay Vi trí các split (từ HDES do chương trình client tạo), sau đó nó sẽ tạo một danh sách

Trang 33

các task để thực thi Với một Map task cho mỗi split, cai chay mỗi nhiệm vụ map do

người sử dụng định nghĩa cho mỗi bản ghi (recorđ) trong split, mặc nhiên số lượng map task bằng với số lượng split Còn đối với Reduce task, số lượng Reduce task

được xác định bởi chương trình client Bên cạnh đó, JobTracker còn lưu trữ thông tin trạng thái và tiến độ của tất cả các task

để Gir heartbe:

‘Phan cong task

Hình 2.8 Liên tạc đầu tiên giữa JobTracker và TaskTracker

Ngay khi JobTracker khởi tạo các thông tin cần thiết để chạy job, thì bên cạnh đó các TaskTracker trong hệ thống sẽ gửi các heartbeat đến JobTracker Hadoop cung cấp cho các TaskTracker cơ chế gửi heartbeat đến JobTracker theo chu kỳ thời gian nào đó, thông tin bên trong heartbeat nay cho phép JobTrack biét

được TaskTracker này có thể thực thi task hay Nếu TaskTracker còn thực thi được

thì JobTracker sẽ cấp task và vị tri split trong ing đến TaskTracker này đề thực

hiện Tại sao ở đây ta lại nói TaskTracker còn có thể thực thi task hay không Điều

này được lý giải là do một Tasktracker có thể cùng một lúc chạy nhiều Map task và

Reduce task một cách đồng bộ, số lượng các task này dựa trên số lượng core, số

Trang 34

Khi một TaskTracker nhan thuc thi Map task, kém theo do la vi tri cla input split trén HDFS Sau đó, nó sẽ nạp dữ liệu của split từ HDES vào bộ nhớ, rồi dựa

vào kiểu format của dữ liệu input do chương trình client chọn thì nó sẽ parse split này để phát sinh ra tập các record, và record này có 2 trường: key và value Cho ví

dụ, với kiểu input format là text, thì TaskTracker sẽ cho phát sinh ra tập các record với key là offset đầu tiên của dong (offset toàn cục), và value là các ký tự của một

dòng Với tập cdc record này, TaskTracker sẽ chạy vòng lặp đề lấy từng record làm input cho hàm Map để trả ra out là dữ liệu gồm intermediate key và value Dữ liệu output của hàm Map sẽ ghi xuống bộ nhớ chính, và chúng sẽ được sắp xếp trước ngay bên trong bộ nhớ chính

Trang thai của maptask “completed” lanh sách vị trí các parition Œ ¬ Ghi output “Taskti : ` aes | Bến | a =] localdisk

Hinh 2.10 TaskTracker hoan thanh map task

Trước khi ghi xuéng local disk, cdc dé liéu output này sẽ được phân chia vào cac partition (region) dua vao ham partition, tung partition nay sé ing với dữ liệu input cua Reduce task sau nay Va ngay bén trong ting partition, di liệu sé được sắp xếp (sort) ting dan theo intermediate key, va néu chyong trình client có sử dụng ham combine thì hàm này sẽ xử lý dữ liệu trên từng partition đã sắp xếp rồi Sau khi thực hiện thành công Map task thì dữ liệu output sé 1a cac partition duoc ghi trén local, ngay lúc đó TaskTracker sẽ gửi trạng thái completed của Map task và danh sách các vị trí của các partition output trén localdisk của nó đến JobTracker

Trang 35

Yếu cầu danh sách vị trí các copy Rt partition được cấp TaskTracker

Hinh 2.11 Co ché hoat dong cua Reduce task

Sau khi nạp thành công tất cả các region thi TaskTracker sé tién hanh merge dit

liệu của các region theo nhiều đợt mà các đợt này được thực hiện một cách đồng thời

để làm gia tăng hiệu suất của thao tac merge Sau khi các đợt merge hoàn thành sẽ tạo ra các file dữ liệu trung gian được sắp xếp Cuối cùng các file đữ liệu trung gian này sẽ duoc merge lần nữa dé tạo thành một file cuối cùng TaskTracker sẽ chạy vòng lặp dé lấy từng record ra làm input cho hàm Reduce, hàm Reduce sẽ dựa vào kiểu format của output dé thực hiện và trả ra kết quả output thích hợp Tất cả các dữ liệu output nay sé được lưu vào một file và file này sau đó sẽ được ghi xuống HDFS

Thông báo trạng thai cla job

Client Program

Thông báo trạng thái của task

TeskTracker performs

Hinh 2.12 TaskTracker hoan thanh Reduce task

Khi TaskTracker thực hiện thành công Reduce task, thì nó sẽ gửi thông báo trạng thái “completed” của Reduce task được phân công đến JobTracker Nếu reduce task này là task cuối cùng của job thì JobTracker sẽ trả về cho chương trình người dùng biết job này đã hoàn thành Ngay lúc đó JobTracker sẽ làm sạch cấu trúc dữ liệu của mình mà dùng cho Job này, và thông báo cho các TaskTracker xóa tất cả các dữ liệu output của các Map task

Trang 36

Vĩ đụ: Xét bài toán đếm số lần xuất hiện của các từ trong một tập tin

Ta sẽ giải quyết bài toán này theo mô hình lập trình MapReduce như sau: - Ham Map:

+ Input: tap tin chira dữ liệu là xâu ký tự

+ Output: Danh sách các cặp (khóa, giá trị) ứng với từng từ trong dòng văn bản đó Trong đó "khóa" = từ, giá trị = l

- Ham Reduce:

+ Input: danh sách các cặp khóa, giá tri đếm được của mỗi từ

+ Output: khéa=tir trong ca doan, giá trị = số lượng từ tương ứng trong đoạn - Dữ liệu đầu vào được phân chia thành những khối nhỏ lưu trữ phân tán trong máy tính

- Đối với mỗi khối dữ liệu đầu vào, một bộ ánh xạ (mapper) chạy cho ra kết

quả đầu ra là ánh xạ mỗi từ thành cặp (khóa, giá trị) trong đó khóa là từ còn giá trị là tần suất của từ trong khối Cũng có thể đơn giản là (khóa, L) trong đó các khóa có

thể trùng lại, khóa là một từ trong khối

- Kết quả đầu ra của tất cả các bộ ánh xạ được sắp xếp và kết tập theo khóa

riêng biệt; một bộ sưu tập được tạo ra có chứa tất cả các giá trị tương ứng từ đầu ra

của các hàm Map

- Tiép theo, mỗi bộ sưu tập được thực hiện rút gọn theo khóa để tạo ra cặp (từ,

n) Đây chính là kết quả cuối cùng của hai bước ánh xạ và rút gọn

Cụ thể bài toán: Cho tập tin kiểu text chira x4u ky tu “Dai Hoc Hue Truong Dai Hoc Khoa Hoc Hue Khoa Cong Nghe Thong Tin”,

Hãy đếm số lần xuất hiện các từ Xác định cặp giá trị key/value: tt/1

- Giai doan Map: gan gia tri Ì cho trường count của tất cả các từ Bất kế từ giống hay khác nhau

Trang 37

Bang 2.1 Giai doan Map Key Count Dai Hoe Hue Truong Dai Hoc Khoa Hoe Hue Khoa Cong Nghe Thong Tin —|—Ì ¬ | ¬| | | | | | | | | | -

Trang 38

- Két qua: Bảng 2.3 Kết quả bài toán đếm từ Key Count Cong 1 Dai 2: Hoc 3 Hue 2 Khoa 2 Nghe 1 Thong 1 Tin 1 Truong 1 CHUONG TRINH XU LY MAP - REDUCE Dữ liệu vào Chia dữ liệu Goi ham Map Goi ham Reduce Dữ liệu ra Dai 1

Dai Dai Hoc 1 Hoc Hoc Hue 1

Hue Hue Map 1 [mang 1 Cong 1 Truong Truong Dai 1 Dai 2 Dai Dai Hoc 1 Hoc 3 Hoc Hoc Khoa 1 Hue 2 Khoa Khoa Reduce 1 |} ——+ Khoa 2

Hoc Hoc ies Nghe 1

Hue Hue Hoc 1 Thong 1 Khoa Khoa Hue 1 Tin 1

Cong Cong ——— Map 2 ite iL Truong 1 Nghe Nghe ‘Cong 1

Thong Thong Nghe 1 Tin Tin Thong 1 Tin 1

Hình 2.13 Quá trình thực hiện với bài toán MapReduce với bài toán đếm từ

Ưu điểm MapReduce: Lập trình viên không bận tâm tới lưu trữ vật lý phân tán của tập tin trong HDES Chương trình không phụ thuộc vào cách lưu trữ phân

Trang 39

tán Lập trình viên không cần phải quan tâm tới việc khả năng xử lý của các nút Số lượng các hàm Map và Reduce được tạo ra tự động do chức năng của Hadoop 2.3 HE THONG TAP TIN PHAN TAN (HDES)

2.3.1 Giới thiệu về HDES

Khi kích thước của tập dữ liệu vượt quá khả năng lưu trữ của một máy tính,

tất yếu sẽ dẫn đến nhu cầu phân chia dữ liệu lên trên nhiều máy tính Các hệ thống tập tin quản lý việc lưu trữ đữ liệu trên một mạng nhiều máy tính gọi là hệ thống tập tin phân tán Do hoạt động trên môi trường liên mạng, nên các hệ hồng tập tin phân

tán phức tạp hơn rất nhiều so với một hệ thống file cục bộ Ví dụ như một hệ thống

file phân tán phải quản lý được tình trạng hoạt động (live/dead) của các server tham gia vào hệ thống file

Hadoop mang đến cho chúng ta hệ thống tập tin phân tán HDFS (viết tắt từ Hadoop Distributed File System) với nỗ lực tạo ra một nền tảng lưu trữ dữ liệu đáp

ứng cho một khối lượng dữ liệu lớn và chỉ phí rẻ

HDFS ra đời trên nhu cầu lưu trữ đữ liệu của Nutch, một dự án Search

Engine nguồn mở HDFS kế thừa các mục tiêu chung của các hệ thống file phân tán

trước đó như độ tin cậy, khả năng mở rộng và hiệu suất hoạt động Tuy nhiên, HDES ra đời trên nhu cầu lưu trữ dữ liệu của Nuích, một dự án Search Engine

nguồn mở, và phát triển để đáp ứng các đòi hỏi về lưu trữ và xử lý của các hệ thống xử lý dữ liệu lớn với các đặc thù riêng Do đó, các nhà phát triển HDFS da xem xét

lại các kiến trúc phân tán trước đây và nhận ra các sự khác biệt trong mục tiêu của

HDES so với các hệ thống file phân tán truyền thống

Thứ nhất, các lỗi về phần cứng sẽ thường xuyên xảy ra Hệ thống HDFS sé chạy trên các cluster với hàng trăm hoặc thậm chí hàng nghỉn node Các node nay được xây 18 đựng nên từ các phần cứng thông thường, giá rẻ, tỷ lệ lỗi cao Chất lượng và số lượng của các thành phần phần cứng như vậy sẽ tất yếu dẫn đến tỷ lệ xây ra lỗi trên cluster sẽ cao Các vấn đề có thể điểm qua như lỗi của ứng dụng, lỗi

của hệ điều hành, lỗi đĩa cứng, bộ nhớ, lỗi của các thiết bị kết nối, lỗi mạng, và lỗi

Trang 40

vé nguồn điện Vì thế, khả năng phát hiện lỗi, chống chịu lỗi và tự động phục hồi

phải được tích hợp vào trong hệ thống HDFS

Thứ hai, kích thước file sẽ lớn hơn so với các chuẩn truyền thống, các file có kích thước hàng GB sẽ trở nên phổ biến Khi làm việc trên các tập dữ liệu với kích thước nhiều TB, ít khi nào người ta lại chọn việc quản lý hàng tỷ file có kích thước

hàng KB, thậm chí nếu hệ thống có thể hỗ trợ Điều chúng muốn nói ở đây là việc

phân chia tập dữ liệu thành một số lượng ít file có kích thước lớn sẽ là tối ưu hơn

Hai tác dụng to lớn của điều này có thể thấy là giảm thời gian truy xuất dữ liệu và đơn giản hoá việc quản lý các tập tin

Thứ ba, hầu hết các file đều được thay đổi bằng cách append dữ liệu vào

cuối file hơn là ghi đè lên dữ liệu hiện có Việc ghi dữ liệu lên một vị trí ngẫu nhiên trong file không hề tổn tại Một khi đã được tạo ra, các file sẽ trở thành file chỉ đọc (read-only), và thường được đọc một cách tuần tự Có rất nhiều loại dữ liệu phù hợp với các đặc điểm trên Đó có thể là các kho dữ liệu lớn để các

chương trình xử lý quét qua và phân tích dữ liệu Đó có thể là các dòng dữ liệu

được tạo ra một cách liên tục qua quá trình chạy các ứng dụng (ví dụ như các file

log) Đó có thể là kết quả trung gian của một máy này và lại được đùng làm đầu vào xử lý trên một máy khác Và do vậy, việc append dữ liệu vào file sẽ trở thành

điểm chính để tối ưu hoá hiệu suất

2.3.2 Kiến trúc và hoạt động của HDES 2.3.2.1 Kiến trúc HDFS

Giống như các hệ thống file khác, HDFS duy trì một cấu trúc cây phân cấp

các file, thư mục mà các file sẽ đóng vai trò là các node lá Trong HDEFS, mỗi file sẽ được chia ra làm một hay nhiều block va méi block này sẽ có một block ID để nhận

diện Các block của cùng một file (trừ block cuối củng) sẽ có cùng kích thước và

kích thước này được gọi là block s1ze của file đó Mỗi block của file sẽ được lưu trữ thành ra nhiều bản sao (replica) khác nhau vì mục đích an toàn dữ liệu

Ngày đăng: 11/01/2024, 22:46

w