1.2 Các trường hợp xảy ra trong giao dịch phân tánCó hai kết quả có thể xảy ra: - Tất cả các hoạt động hoàn thành thành công - Không có hoạt động nào được thực hiện cả do lỗi ở đâu đó t
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHƯƠNG 3 DỊCH VỤ HỆ THỐNG PHÂN BỐ
GVHD: TS Nguyễn Thiên Bảo
TP Hồ Chí Minh, ngày 24 tháng 3 năm 2022
Trang 2MỤC LỤC
NỘI DUNG 3
1 Giao tác trên hệ thống phân tán 3
1.1 Khái niệm 3
1.2 Các trường hợp xảy ra trong giao dịch phân tán 3
1.3 Hoạt động của giao dịch phân tán 4
1.4 Các giao dịch phân tán cần thiết và không cần thiết 5
1.5 Giao dịch phân tán cho dữ liệu truyền trực tuyến 6
2 Nhân bản và thống nhất trong hệ thống phân bố 7
2.1 Giới thiệu 7
2.1.1 Vì sao phải sao lưu? 7
2.1.2 Thống nhất dữ liệu 7
2.1.3 Khó khăn 8
2.2 Các mô hình sao lưu hướng dữ liệu 8
2.2.1 Mô hình thống nhất liên tục 9
2.2.2 Mô hình thống nhất theo thứ tự thao tác 10
3 Các dịch vụ hệ thống phổ biến 14
3.1 Kiến trúc của Hadoop 14
3.2 HDFS (Hadoop Distributed File System) 14
3.3 Map-Reduce 15
3.4 Yarn 17
3.5 Apache Spark 19
3.6 Bảo mật thông tin 24
3.6.1 Khái niệm bảo mật thông tin 24
3.6.2 Bảo mật thông tin doanh nghiệp 24
3.6.3 Bảo mật thông tin app 24
3.6.4 Các loại bảo mật thông tin 26
3.6.5 Mục tiêu và nguyên tắc của bảo mật thông tin 27
3.6.6 Rủi ro khi mất bảo mật thông tin 29
3.6.7 Các giải pháp bảo mật thông tin 31
TÀI LIỆU THAM KHẢO 31
Trang 31.2 Các trường hợp xảy ra trong giao dịch phân tán
Có hai kết quả có thể xảy ra:
- Tất cả các hoạt động hoàn thành thành công
- Không có hoạt động nào được thực hiện cả do lỗi ở đâu đó trong hệ thống
Trong trường hợp thứ hai, nếu một số công việc đã được hoàn thành trước khi xảy
ra sự cố, công việc đó sẽ được đảo ngược để đảm bảo không có công việc ròng nàođược thực hiện Loại hoạt động này tuân thủ các nguyên tắc ACID:
• Tính nguyên tố (Atomicity): toàn bộ các thao tác trong cùng một giao tác đều
được thực hiện hoặc không một thao tác nào trong chúng được thực hiện Một giaotác là một đơn vị công việc không thể phân chia
• Tính nhất quán (Consistency): một giao tác phải chuyển CSDL từ một trạng thái
nhất quán này sang một trạng thái nhất quán khác
• Tính cô lập (Isolation): Các giao tác phải được thực hiện một cách độc lập với
nhau Nói một cách khác những tác động của giao tác này sẽ không thể thấy được đốivới những giao tác khác, khi giao tác này chưa thực hiện xong hoàn toàn
• Tính bền vững (Durability): những thay đổi của CSDL do tác động của một giao
tác thành công là bền vững, không bị mất đi
Trang 4ACID thường được kết hợp với các giao dịch trên một máy chủ cơ sở dữ liệu duynhất, nhưng các giao dịch phân tán mở rộng sự đảm bảo đó trên nhiều cơ sở dữ liệu.Hoạt động được gọi là “cam kết hai giai đoạn” (2PC) là một dạng của giao dịchphân tán “Giao dịch XA” là các giao dịch sử dụng giao thức XA, là một giao thứcthực hiện hoạt động cam kết hai giai đoạn.
Hình 1.2 Một giao dịch phân tán trải dài trên nhiều cơ sở dữ liệu và đảmbảo tính toàn vẹn của dữ liệu
1.3 Hoạt động của giao dịch phân tán
Các giao dịch phân tán có các yêu cầu hoàn thành xử lý giống như các giao dịch
cơ sở dữ liệu thông thường, nhưng chúng phải được quản lý trên nhiều tài nguyên,khiến việc triển khai chúng trở nên khó khăn hơn đối với các nhà phát triển cơ sở dữliệu Nhiều tài nguyên làm tăng thêm nhiều điểm lỗi, chẳng hạn như hệ thống phầnmềm riêng biệt chạy tài nguyên (ví dụ: phần mềm cơ sở dữ liệu), các máy chủ phần
Trang 5cứng bổ sung và lỗi mạng Điều này làm cho các giao dịch phân tán dễ bị thất bại, đó
là lý do tại sao các biện pháp bảo vệ phải được thực hiện để duy trì tính toàn vẹn của
dữ liệu
Để một giao dịch phân tán xảy ra, người quản lý giao dịch điều phối các tàinguyên (nhiều cơ sở dữ liệu hoặc nhiều nút của một cơ sở dữ liệu) Người quản lýgiao dịch có thể là một trong những kho dữ liệu sẽ được cập nhật như một phần củagiao dịch, hoặc nó có thể là một tài nguyên riêng biệt hoàn toàn độc lập chỉ chịu tráchnhiệm điều phối Người quản lý giao dịch quyết định thực hiện một giao dịch thànhcông hay khôi phục một giao dịch không thành công, điều này sẽ giữ nguyên cơ sở dữliệu
Đầu tiên, một ứng dụng yêu cầu giao dịch phân tán đến người quản lý giao dịch.Người quản lý giao dịch sau đó sẽ phân nhánh đến từng tài nguyên, tài nguyên này sẽ
có “trình quản lý tài nguyên” riêng để giúp nó tham gia vào các giao dịch phân tán.Các giao dịch phân tán thường được thực hiện trong hai giai đoạn để bảo vệ chống lạicác cập nhật từng phần có thể xảy ra khi gặp lỗi Giai đoạn đầu tiên liên quan đến việcthừa nhận ý định cam kết, hoặc giai đoạn “chuẩn bị để cam kết” Sau khi tất cả các tàinguyên xác nhận, chúng sẽ được yêu cầu chạy một cam kết cuối cùng và sau đó giaodịch được hoàn tất
Chúng ta có thể xem xét một ví dụ cơ bản về những gì sẽ xảy ra khi lỗi xảy ratrong một giao dịch phân tán Giả sử một hoặc nhiều tài nguyên không khả dụng tronggiai đoạn chuẩn bị cam kết Khi hết thời gian yêu cầu, người quản lý giao dịch sẽ yêucầu mỗi tài nguyên xóa trạng thái chuẩn bị cam kết và tất cả dữ liệu sẽ được đặt lại vềtrạng thái ban đầu Thay vào đó, nếu bất kỳ tài nguyên nào không khả dụng trong giaiđoạn cam kết, thì người quản lý giao dịch sẽ thông báo cho các tài nguyên khác đãcam kết thành công phần giao dịch của họ để hoàn tác hoặc "khôi phục" giao dịch đó
và một lần nữa, dữ liệu trở lại trạng thái ban đầu Sau đó, ứng dụng sẽ thử lại giaodịch để đảm bảo rằng nó đã được hoàn tất
1.4 Các giao dịch phân tán cần thiết và không cần thiết
Các giao dịch phân tán là cần thiết khi bạn cần cập nhật nhanh chóng các dữ liệuliên quan được trải rộng trên nhiều cơ sở dữ liệu Ví dụ: nếu bạn có nhiều hệ thốngtheo dõi thông tin khách hàng và bạn cần thực hiện cập nhật chung (như cập nhật địachỉ gửi thư) trên tất cả các bản ghi, thì một giao dịch phân tán sẽ đảm bảo rằng tất cảcác bản ghi đều được cập nhật Và nếu xảy ra lỗi, dữ liệu sẽ được đặt lại về trạng tháiban đầu và việc gửi lại giao dịch tùy thuộc vào ứng dụng gốc
Trong một số môi trường, các giao dịch phân tán là không cần thiết và thay vào
đó, các hoạt động kiểm tra bổ sung được thực hiện để đảm bảo tính toàn vẹn của dữliệu khi tốc độ của giao dịch không phải là vấn đề Việc chuyển tiền qua các ngân
Trang 6hàng là một ví dụ điển hình Mỗi ngân hàng tham gia chuyển tiền đều theo dõi trạngthái của giao dịch, và khi phát hiện lỗi, trạng thái một phần sẽ được sửa chữa Quátrình này hoạt động tốt mà không có các giao dịch phân tán vì quá trình chuyển khôngphải diễn ra trong (gần) thời gian thực Các giao dịch phân tán thường rất quan trọngtrong các tình huống mà việc cập nhật hoàn chỉnh phải được thực hiện ngay lập tức.
1.5 Giao dịch phân tán cho dữ liệu truyền trực tuyến
Các giao dịch phân tán ngày nay đặc biệt quan trọng trong môi trường truyền dữliệu vì khối lượng dữ liệu đến Ngay cả một lỗi ngắn hạn ở một trong các tài nguyêncũng có thể thể hiện một lượng lớn dữ liệu bị mất Xử lý dòng tinh vi công cụ hỗ trợ
xử lý “chính xác một lần” trong đó giao dịch phân tán bao gồm việc đọc dữ liệu từnguồn dữ liệu, xử lý và ghi dữ liệu tới đích đích (“bồn chứa dữ liệu”) Thuật ngữ
"chính xác một lần" đề cập đến thực tế là mọi điểm dữ liệu đều được xử lý, không bịmất và không bị trùng lặp (Đối lập điều này với “nhiều nhất một lần” cho phép mất
dữ liệu và “ít nhất một lần” cho phép sao chép.) Trong kiến trúc phát trực tuyến chínhxác một lần, các kho lưu trữ cho nguồn dữ liệu và bộ lưu trữ dữ liệu phải có khả năng
để hỗ trợ đảm bảo chính xác một lần Nói cách khác, phải có chức năng trong các kholưu trữ đó cho phép công cụ xử lý luồng phục hồi hoàn toàn sau thất bại, điều nàykhông nhất thiết phải là người quản lý giao dịch thực sự, nhưng mang lại kết quả cuốicùng tương tự
Hazelcast Jet là một ví dụ về công cụ xử lý luồng sẽ cho phép xử lý chính xác mộtlần với các nguồn và phần chìm vốn dĩ không có khả năng hỗ trợ các giao dịch phântán Điều này được thực hiện bằng cách quản lý toàn bộ trạng thái của từng điểm dữliệu và đọc lại, xử lý lại và / hoặc ghi lại nếu điểm dữ liệu được đề cập gặp lỗi Logictích hợp này cho phép nhiều loại kho dữ liệu hơn (chẳng hạn như Apache Kafka vàJMS) được sử dụng làm nguồn hoặc chìm trong các ứng dụng phát trực tuyến quantrọng trong kinh doanh
Trang 72 Nhân bản và thống nhất trong hệ thống phân bố
2.1 Giới thiệu
2.1.1 Vì sao phải sao lưu?
Có 2 lý do chính để thực hiện việc sao lưu:
+ Để tăng tín tin cậy (tính sẵn sàng) cho hệ thống: Trong quá trình đọc hoặcghi dữ liệu, nếu dữ liệu đó bị lỗi hay vì một nguyên nhân nào đó mà không thểdùng được, ta có thể dùng ngay bản sao dữ liệu đó để hệ thống không phải dừnglại và tránh được tình trạng sử dụng các dữ liệu không chính xác
+ Để tăng hiệu năng của hệ thống: Tăng quy mô của hệ thống cả về số lượnglẫn phạm vi địa lý
Ví dụ: nếu số lượng máy tăng => tải trên mỗi máy trong hệ phân tán cũng ko tănglên nhiều hơn, phạm vi địa lý tăng => có thể sử dụng các bản nhân bản gần khu vựcđịa lý đó
2.1.2 Thống nhất dữ liệu
Đồng độ các bản sao sao cho các hệ thống luôn được đồng bộ về dữ liệu: khi mộtbản sao được cập nhật thì tất cả những bản còn lại cũng phải được cập nhật theo đểđảm bảo tính thống nhất của dữ liệu
=> Điều này ảnh hưởng rất lớn đến hiệu năng của hệ thống
Trang 8Đồng bộ từng phần tử rồi lan truyền sang các phần tử kế bên , việc này sẽ làm tănghiệu năng nhưng sẽ dẫn đến việc có những thời điểm các bản sao là ko giống nhau.Trong một số trường hợp ta cần phải nới lỏng những ràng buộc về tính thống nhấtdựa trên:
+ Tần suất truy cập và cập nhật dữ liệu
+ Mục đích sử dụng
2.2 Các mô hình sao lưu hướng dữ liệu
Đây là kiểu mô hình sao lưu được sử dụng rộng rãi nhất
Trong kiểu mô hình này, bất kì người sử dụng nào truy cập vào kho dữ liệu cũng
sẽ nhìn thấy các thao tác được sắp xếp theo mô hình
Điều này trái ngược với các mô hình sao lưu hướng client (mình sẽ nói sau) nơiclient được yêu cầu một mô hình sao lưu cụ thể và các client khác nhau sẽ nhìn thấycác thao tác theo những trật tự khác nhau
Kho dữ liệu có thể được đọc hay ghi bởi bất cứ tiến trình nào trong một hệ phântán
Tuy nhiên dữ liệu ghi vào một bản sao cục bộ phải đảm bảo cũng được truyền tớitất cả các bản sao ở xa
Vì nguyên nhân này mà các mô hình thống nhất đã ra đời, mục đích là để giúp ta
có thể hiểu rõ về các cơ chế khác nhau được sử dụng để thực hiện phần việc này.Một mô hình thống nhất có thể được coi là một bản hợp đồng giữa một kho dữ liệucủa hệ phân tán với các các tiến trình của nó Nếu các tiến trình đồng ý với các điềukhoản của hợp đồng thì kho dữ liệu sẽ hoạt động đúng như tiến trình mong muốn
Trang 9Như vậy trong hệ thống sẽ quy định một độ lệch giữa các bản sao
Nếu một phiên bản được cập nhật mà độ lệch chưa đạt tới giá trị quy định thì giữabản sao đó và các bản sao khác vẫn được coi là thống nhất và ko phải thực hiện cậpnhật
Độ lệch bằng số giữa các bản sao:
Thường sử dụng với các chương trình có dữ liệu là số
Có 2 dạng của độ lệch này là: độ lệch tương đối và độ lệch tuyệt đối
Có thể xác định số này là số lượng bản cập nhật cho 1 bản sao nào đó
Độ lệch về trạng thái giữa các bản sao:
Liên quan đến thời gian cuối cùng 1 bản sao đã được cập nhật
Với 1 số ứng dụng thì nó có thể chấp nhận dữ liệu cũ , miễn là ko quá cũ
Ví dụ: trong dự báo thời tiết , máy chủ liên tục nhận được các thông tin về thời tiếtnhưng chỉ đồng bộ 30’/lần …
Có thể sau nhiều lần cập nhật tạm thời thì bản sao mới được cập nhật lâu dài
=> Tóm lại , các bản sao có thể vẫn được sử dụng nếu sự khác nhau vẫn nằm tronggiới hạn được chấp thuận Nói một cách khác là khi 1 bản sao được cập nhật thì nó sẽchờ để được xác nhận trước khi cập nhật lên tất cả các bản sao khác => thứ tự cập
Trang 10nhật rắc rối Cách làm này cần lưu trữ thêm 1 bản để có thể quay lại nếu bản cập nhậtkhông được chấp thuận
2.2.2 Mô hình thống nhất theo thứ tự thao tác
Truy cập tương tranh đến các tài nguyên chia sẻ
Tài nguyên chia sẻ là dữ liệu được sao lưu
Mạnh hơn mô hình liên tục
Khi thực hiện cập nhật, thứ tự cập nhật được thống nhất giữa các bảo sao
a Thống nhất chặt
Là mô hình thỏa mãn điều kiện sau:
Thao tác đọc bất kỳ trên mục dữ liệu x đều trả về một giá trị tương ứng với kết quảcủa thao tác ghi gần nhất trên x đó
Sử dụng khái niệm thời gian tuyệt đối
Thời gian tuyệt đối này là tổng thể cho cả hệ thống để xác định đúng khái niệm
"gần nhất" => Điều này là khó khả thi với hệ phân tán
Giá trị khởi tạo của các dữ liệu là NIL (x = null)
Do việc lan truyền cục bộ của P1 chưa tới P2 nên P2 đọc dữ liệu x vẫn là giá trịnull ban đầu => Mô hình này là không khả thi
b Thống nhất tuần tự
Là mô hình lỏng lẻo hơn, yếu hơn mô hình thống nhất chặt
Các tiến trình đều có một chuỗi thao tác cục bộ
Nó thỏa mãn các yêu cầu sau:
+ Kết quả của sự thực hiện bất kỳ là như nhau nếu thao tác đọc và ghi do cáctiến trình thực hiện trên kho dữ liệu một cách tuần tự và các thao tác của mỗi tiếntrình xuất hiện trong chuỗi thao tác này chỉ ra bởi chương trình của nó
Trang 11+ Khi các tiến trình chạy đồng thời trên các máy khác nhau thì cho phép sự đanxen của các thao tác nhưng tất cả các tiến trình đều phải nhận biết được sự đan xencủa các thao tác đó là như nhau.
+ Tất cả các tiến trình đều nhìn thấy một thứ tự của các thao tác ghi
o Mô hình nhất quán tuần tự
o Không là mô hình nhất quán tuần tự
c Thống nhất tuyến tính
Là mô hình yếu hơn mô hình thống nhất chặt nhưng mạnh hơn mô hình thống nhấttuần tự
Mô hình này thỏa mãn điều kiện sau:
+ Kết quả của bất kì sự thực hiện nào là như nhau nếu các thao tác (đọc và ghi)của tất cả các tiến trình lên dữ liệu được thực hiện môt cách tuần tự và các thao táccủa mỗi tiến trình xuất hiện trong chuỗi thao tác này phải theo thứ tự đã được chỉ
ra trong chương trình của nó
d Thống nhất nhân quả
Đây là mô hình lỏng lẻo hơn mô hình thống nhất tuần tự
Mô hình này phân biệt các sự kiện có quan hệ nhân quả và các sự kiện không cóquan hệ nhân quả
Nếu sự kiện b được gây ra hoặc bị tác động bởi một sự kiện a xảy ra sớm hơn thìtính nhân quả đòi hỏi mọi thực thể khác phải "nhìn" thấy a trước rồi mới thấy b sau.Các thao tác ghi đồng thời có thể được nhận biết theo thứ tự khác nhau trên nhữngmáy khác nhau
Hai thao tác ghi được coi là có quan hệ nhân qủa với nhau nếu việc thực hiện mộtthao tác có khả năng gây ảnh hưởng đến dữ liệu được ghi bởi thao tác kia
Mô hình thống nhất nhân quả thỏa mãn các điều kiện sau:
+ Một thao tác đọc có quan hệ nhân quả với thao tác ghi cung cấp dữ liệucho nó
+ Một thao tác ghi có quan hệ nhân quả với một thao tác đọc xảy ra trước
nó trong cùng một tiến trình
Nếu các thao tác không có quan hệ nhân quả với nhau thì chúng được coi là xảy rađồng thời
Trang 12Các thao tác đọc đồng thời có thể được thực hiện theo bất kì trật tự nào miễn làchúng tuân theo trình tự của chương trình.
e Thống nhất FIFO
Thống nhất FIFO còn được gọi là nhất quán PRAM
Đây là mô hình yếu nhất vì mô hình này bỏ qua giới hạn về trật tự của bất kì thaotác đồng thời nào
Mô hình thỏa mãn điều kiện:
+ Các thao tác ghi bởi một tiến trình đơn phải được tất cả các tiến trình khácnhìn thấy theo cùng một trật tự mà chúng đề ra
+ Nhưng thao tác ghi bởi nhiều tiến trình khác nhau có thể được thấy theonhững trật tự khác nhau bởi các tiến trình khác nhau
o Mô hình nhất quán yếu
o Không là mô hình nhất quán yếu
g Thống nhất đi ra (Release consistency)
Sử dụng thêm hai lệnh:
+ Lệnh acquired: để báo muốn vào vùng tới hạn (critial region)
+ Lệnh release: để báo giải phóng vùng tới hạn
Hai lệnh này cũng có hai cách thực thi khác nhau như: bằng một biến hoặc bằngmột lệnh đặc biệt
Trang 13Hai thao tác này chỉ thực hiện với các dữ liệu dùng chung chứ không áp dụng chotất cả các dữ liệu.
Điều kiện thỏa mãn:
+ Trước khi thực hiện một thao tác đọc hay ghi lên dữ liệu chia sẻ thì tất cả cácthao tác acquire do tiến trình này thực hiện trước đó phải hoàn tất
+ Trước khi một thao tác release được phép thực hiện thì tất cả các thao tác đọc
và ghi do tiến trình này thực hiện trước đó phải được hoàn tất
+ Truy cập vào các biến đồng bộ hóa là nhất quán FIFO (Không yêu cầu nhấtquán tuần tự)
h Thống nhất đi vào (Entry consistency)
Giống mô hình thống nhất đi ra, mô hình thống nhất đi vào cũng sử dụng hai lệnhacquired và release khi muốn sử dụng vào vùng tới hạn
Tuy nhiên các lệnh này thao tác trên từng mục dữ liệu của vùng dữ liệu chia sẻ.Tiến trình nào muốn sử dụng mục dữ liệu thì phải đợi cho tất cả các tiến trình khácgiải phóng mục dữ liệu đó
Để ghi lên một mục dữ liệu, client phải có được biến đồng bộ hoá của mục đótrong chế độ dành riêng Điều đó có nghĩa là không client nào khác có thể sử dụngbiến đó Khi client cập nhật xong mục dữ liệu, thì nó giải phóng biến đó
Khi client muốn đọc một mục dữ liệu nào đó, nó phải có được biến đồng bộ hóakết hợp ở chế độ không dành riêng
Nhiều client có thể giữ một biến đồng bộ hóa ở chế độ không dành riêng
Khi thực hiện một thao tác acquire, client lấy về phiên bản mới nhất của mục dữliệu từ tiến trình cuối cùng thực hiện thao tác acquire trên biến đó
Điều kiện sau:
+Một thao tác acquire để truy cập vào một biến đồng bộ hóa không được phépthực hiện trong một tiến trình cho đến khi tất cả các cập nhật lên mục dữ liệu trongtiến trình đó được thực hiện
+ Trước khi một truy cập trong chế độ dành riêng của một tiến trình tới mộtbiến đồng bộ hóa được phép thực hiện thì không tiến trình nào khác còn được giữcác biến đồng bộ hóa, trong chế độ không dành riêng thì không cần yêu cầu nhưvậy
Trang 14+ Sau khi một truy cập trong chế độ dành riêng lên một biến đồng bộ hóa đượcthực hiện thì bất kì sự truy cập của tiến trình nào khác trong chế độ không dànhriêng lên biến đó cũng không được thực hiện cho đến khi chủ nhân của biến đồng
bộ thực hiện xong việc truy cập của mình
3 Các dịch vụ hệ thống phổ biến
3.1 Kiến trúc của Hadoop
Hadoop có một cấu trúc liên kết master-slave Trong cấu trúc này, chúng ta có mộtnode master và nhiều node slave Chức năng của node master là gán một tác vụ chocác node slave khác nhau và quản lý tài nguyên Các node slave là máy tính thực tế cóthể không mạnh lắm Các node slave lưu trữ dữ liệu thực trong khi trên master chúng
3.2 HDFS (Hadoop Distributed File System)
Là hệ thống file phân tán, cung cấp khả năng lưu trữ dữ liệu khổng lồ và tính năngtối ưu hoá việc sử dụng băng thông giữa các node HDFS có thể được sử dụng đểchạy trên một cluster lớn với hàng chục ngàn node
Cho phép truy xuất nhiều ổ đĩa như là 1 ổ đĩa Nói cách khác, chúng ta có thể sửdụng một ổ đĩa mà gần như không bị giới hạn về dung lượng Muốn tăng dung lượngchỉ cần thêm node (máy tính) vào hệ thống
+ Kích thước 1 block thông thường là 64MB, kích thước này có thể thay đổiđược bằng việc cấu hình
Trang 153.3 Map-Reduce
Map-Reduce là một framework dùng để viết các ứng dụng xử lý song song một lượnglớn dữ liệu có khả năng chịu lỗi cao xuyên suốt hàng ngàn cluster(cụm) máy tính
Map-Reduce thực hiện 2 chức năng chính đó là Map và Reduce
+ Map: Sẽ thực hiện đầu tiên, có chức năng tải, phân tích dữ liệu đầu vào và đượcchuyển đổi thành tập dữ liệu theo cặp key/value
+ Reduce: Sẽ nhận kết quả đầu ra từ tác vụ Map, kết hợp dữ liệu lại với nhauthành tập dữ liệu nhỏ hơn
Trang 16Để dễ hiểu hơn, chúng ta hãy cùng xem ví dụ WordCount sau đây WordCount làbài toán đếm tần suất xuất hiện của các từ trong đoạn văn bản Và chúng ta sẽ mô tả quátrình xử lý bài toán này bằng Map-Redue
Đối với hàm Map: