HỌC VIEN CÔNG NGHỆ BƯU CHÍNH VIỄN THONG
PHẠM ĐÌNH CƯỜNG
NGHIÊN CỨU MÔ HÌNH XỬ LÝ PHAN TAN TRONG BÀI TOÁN PHAN CUM DU LIEU LON
Chuyén nganh : HE THONG THONG TIN
Mã số: 60.48.01.04
TÓM TÁT LUẬN VĂN THẠC SĨ KỸ THUẬT
NGƯỜI HƯỚNG DẪN KHOA HỌCPGS.TS HA HAI NAM
HÀ NỘI - NĂM 2014
Trang 2Người hướng dẫn khoa học: PGS.TS Hà Hải Nam
Phản biện 1: PGS.TS Ngô Quốc Tạo
Phản biện 2: TS Trần Nguyên Ngọc
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu
chính Viễn thông
Vào lúc: 15 giờ00 ngày 08 tháng 02 năm 2015
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thong
Trang 3LỜI MỞ ĐẦU
Chúng ta đang sống trong thời đại bùng nỗ dữ liệu số Mỗi ngày lượng dữ liệu lưu trữ không ngừng tăng lên, việc thu thập thông tin cũng như nhu cầu lưu trữ thông
tin càng ngày càng lớn Bên cạnh đó việc tin học hoá được ứng dụng nhanh chóng
trong các hoạt động sản xuất, kinh doanh ding như nhì éu lĩnh vực hoạt động khác đã
tạo ra cho chúng ta một lượng dữ liệu lưu trữ khổng 16 Hàng triệu co sở dữ liệu đã
được sử dụng trong các hoạt động sản xuất, kinh doanh, quản lý, giải trí Trong đó có nhiều cơ sở dữ liệu cực lớn cỡ Gigabyte, thậm chí là Terabyte, Petrabyte Sự bùng nồ này đã dan tới một yêu cầu cấp thiết là cần có những Kĩ thuật xử lý, những công cu
mới dé tự động lưu trữ cũng như chuyên đổi lượng dữ liệu không lồ đó thành những tri
thức có ích.
Xuất phát từ nhu cầu đó luận văn sẽ tập trung vào đề tài: “Wghiên cứu mô hình
xử lý phân tán trong bài toán phân cum dit liệu lớn Kĩ thuật phan cum dt liệu lớn
tuy không phải là mới nhưng hiện nay ở Việt Nam nó vẫn là một cái gìđó xa lạ Và
việc áp dụng xử lý dữ liệu lớn hầu hết là chưa được ứng dụng, không chỉ ở các công ty
nhỏ mà ngay cả các công ty lớn ở Việt Nam việc áp dụng các kĩ thuật xử lý dữ liệu lớn
là chưa được áp dụng hoặc việc áp dụng chưa thực sự tốt Lợi ích của việc xử lý dữ
liệu lớn sẽ góp phần to lớn vào việc thu thập, lưu trữ dữ liệu cũng như các hoạt động gắn liền với việc tồn tại và phát triển cho các doanh nghiệp Do vậy luận văn này sẽ
tập trung nghiên cứu vào các R thu at xử lý phân cụm với dữ liệu lớn từ đó áp dụng
việc xử lý dữ liệu lớn vào bài toán cụ thé dé thay vai trò và lợi ích to lớn của nó vào
việc áp dụng thực tế.
Trang 4CHƯƠNG 1: PHAT BIEU BÀI TOÁN
Trong thời đại chúng ta đang sống, ngành công nghệ máy tính phát triển một cách
vũ bão Số lượng người sử dụng máy tính và các tài nguyên trực tuyến dé xử lý công việc,
giải trí ngày càng tăng nhanh Hiện nay lượng người tham gia sử dụng Internet không chỉ
riêng ở Việt Nam mà cả trên thé giới đang gia tăng nhanh chóng Hệ quả tat yếu của sự gia tăng lượng người sử dụng dẫn tới lượng dữ liệu số đang gia tăng nhanh chóng mặt.
Thật không dễ dé do lường được hết tổng dung lượng dữ liệu số đã được lưu trữ trên thé
Hiện tại, nhiều tổ chức đang gặp rat nhiều khó khan khi phải thao tác với kho dit
liệu số quá lớn của mình, các hệ thống xử lý truyền thống bị quá tải Do vậy đặt ra yêu cầu phải xây dựng hệ thống xử lý có khả năng làm việc hiệu quả với dit liệu lớn, và luận
văn từng bước di vào việc tìm hiểu dữ liệu lớn cũng như di sâu vào các kĩ thuật xử lý dữ
liệu lon do.
1.1 Téng quan về dữ liệu lớn
1.1.1 Khái niệm dữ liệu lớn
Đề hiểu được dữ liệu lớn (Hay còn gọi là Big Data), đầu tiên chúng ta cần biết về 3 khái niệm chính của dit liệu lớn — Khối lượng (Volume), Sự đa dang (Variety), va Tốc
độ lưu thông (Velocity).
= Khối lượng: là khối lượng dữ liệu dang được lưu trữ hàng ngày bởi các công ty,
trong các trung tâm dữ liệu.
= Sự đa dang: là tập hợp dữ liệu ở rất nhiều các định dạng có cấu trúc và phi cầu trúc khác nhau như cảm biến GPS, hình ảnh, video, và bài viết blog.
= Tốc độ lưu thông: là tốc độ mà tại đó dữ liệu được phân tích bởi các công ty dé
cung cấp một trải nghiệm người dùng tốt hơn.
Từ đó, nhiều khái niệm khác bao gồm tính xác thực, tính hiệu lực, và tính biến động đã được thêm vào bởi nhiều công ty khi họ bắt đầu sử dụng các công nghệ dữ liệu lớn.
1.1.2 Dữ liệu lớn thực sự quan trọng thế nào Lợi ích của việc khai thác dữ
liệu lớn.
Sir bùng nổ về dữ liệu đã đặt ra cho chúng ta những thách thức là làm dé nào lưu
tữ và xử lý tất cả đữ liệu đó Tuy nhiên ở một mặt khác nó lại mang đến các cơ hội Cơ
Trang 5hội chiếm lĩnh một nguồn thông tin không 16 nếu chúng ta có kha năng phân tích và xử lý
nguôn dữ liệu đó, biến những dữ liệu thô thành những thông tin hữu ích với một chi phí
hợp lý.
Dữ liệu lớn do đó có thể được hiểu là những số lượng lớn các dữ liệu được thu
thập bởi các công ty sau đó được xử lý dé “dé có được những hiểu biết về xu hướng kinh
doanh chủ yếu của người dùng, trong y tế dung phân tích dữ liệu lớn thu nhập được dé ngăn ngừa bệnh tật, trong an ninh thì dung phân tích dữ liệu thu thập được phòng chống
tội phạm, v.v.
1.2 Các lĩnh vực ứng dụng dữ liệu lớn
Các ĩnh vực ứng dụng dữ liệu lớn trong đời song: Kinh doanh, Sinh hoc, Thu
viện, Bao hiém, tai chinh v.v.
Ngoài ra dit liệu lớn còn được ứng dung ở rất nhiều các ngành nghề khác nhưng nhằm đáp ứng được nhu cầu lưu trữ thông tin, quản lý thông.
1.2.1 Dữ liệu lớn hiện nay trong các doanh nghiệp
Các công ty có cơ chế quản lý dit liệu tốt sẽ có nhiều chiến lược dé kinh doanh và
phát triển bền vững công ty và cung cấp cho người dùng những sản phẩm và dịch vụ tốt nhất Hiện nay có nhiều công cụ dé xử lý dữ liệu lớn nhưng Hadoop được biết đến như là
một công cụ tốt nhất dé lưu trữ và xử lý những dữ liệu đó Có rất nhiều các công ty sử
dụng Hadoop như: Twitter, Facebook, A9.com, Amazon, Apixio, Knewton, KapowSoftware, Netflix, Amazon vv
1.3 Mục tiêu nghiên cứu
- Tim hiểu về dữ liệu lớn.
- Nghiên cứu các kỹ thuật xử lý phân cụm với dữ liệu lớn.
- Ap dụng việc xử lý dit liệu lớn trong bài toán tìm kiếm.
1.4 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu: Nghiên cứu về dit liệu lớn và các kỹ thuật xử lý dữ liệu lon Phạm vi nghiên cứu cụ thé trong các chương là:
Chương 1: Trong chương này luận văn sẽ tìm hiểu về:
e Tìm hiểu dữ liệu lớn.
e Cac lĩnh vực ứng dụng dt liệu lon.
e Lợi ích của việc xử lý dữ liệu lớn.
Trang 6Chương 2: Tìm hiểu mô hình xử lý phân tán cho bài toán phân cụm dit liệu lớn Trong chương này sẽ tìm hiểu chỉ tiết về:
e Tìm hiểu nguyên tắc hoạt động của mô hình xử lý dữ liệu phân tán song song
MapReduce, cách thức hoạt động Hadoop.
e_ Tìm hiểu thuật toán xử lý phân cụm dữ liệu mean Ap dụng thuật toán
K-mean trên nền Hadoop MapReduce để xử lý phân tán dữ liệu.
Chương 3: Thử nghiệm và đánh giá:
e_ Mô hình hóa bài toán, chuyên đổi các yếu tố thông tin của tài liệu và biểu thức
tìm kiếm sang ngôn ngữ chỉ mục là vector đặc trưng.
e Vận dụng kết hợp mô hình lập trình MapReduce và nền tảng Hadoop, áp dụng thuật toán K-means xử lý phân cụm dữ liệu với các tập tài liệu Xử lý biểu thức tìm kiếm và tính độ tương đồng tập tài liệu, xuất kết quả tìm kiếm.
e Đánh giá kết quả thực nghiệm Đề xuất cải tiến với việc xử lý phân cụm, vận dụng xây dựng hệ thống tìm kiếm tốt hơn.
1.5 Phương pháp thực hiện
Đề hoàn thành nội dung được tìm hiểu luận văn, trước tiên cần tim kiếm, nghiên
cứu hiểu biết về:
© Hiểu biết về dữ liệu lớn Giải pháp xử lý dữ liệu lớn.
e Hé6 sinh thái Hadoop Mô hình xử lý phân tán MapReduce.
e Thuật toán xử lý phân cụm dữ liệu K-mean Áp dụng thuật toán K-mean với MapReduce trên nền Hadoop.
e Áp dụng mô hình không gian vector tínhỉ ộ tương đồng giữa các tập tài liệu, với biểu thức tìm kiếm.
e Đánh giá kết quả thực nghiệm, đề xuất cải tiến.
Sau khi nắm được cơ sở lý thuyết, sẽ phân tích thiết kế giải thuật cho từng thành phần của hệ thống, lựa chọn ngôn ngữ lập trình, tiến hành cài đặt các giải thuật, và tiếp tục nghiên cứu các vấn đề phát sinh.
Thực hiện cai đặt xong và xây dựng các bài toán nhỏ dé kiểm tra, phân tích kết quả xử lý, thời gian xử lý, kết quả trả về để đánh giá được áp dụng mô hình MapReduce vào việc xử lý dữ liệu lớn Từ đó ta có thế áp dụng rộng rãi việc sử dụng xứ lý dữ liệu lớn với Hadoop MapReduce, kết hợp với các giải thuật lập trình xây dung công cụ tìm kiếm đủ
Trang 7mạnh, đủ nhanh dé đáp ứng được nhu cầu tìm kiếm thông tin.
1.6 Giải pháp xử lý dữ liệu lớn
Dữ liệu ngày càng bùng né trong trong đời sống, xu hướng tăng dữ liệu lưu trữ đã chuyền sang giai đoạn mới Chính vì vậy, cùng với các giải pháp xử lý cơ sở dữ liệu phân tán như Hadoop, MapReduce, cơ sở dữ liệu phân tán NoSQL đã có nhiều giải pháp mới
như hệ thống lại các tập tin, cấu trúc lại cách sắp xếp dit liệu mới, cùng các kĩ thuật phân
cụm dir liệu.
1.7 Kết luận chương 1
Từ thực tiễn đó cho ta ý thức được tầm quan trọng cần thiết phải có những giải pháp cụ thê đối với việc xử lý dữ liệu lớn Cần phải có những mô hình xử lý, những giải
thuật dé có thé áp dụng trong việc xử lý những dữ liệu lớn đó thành những dữ liệu có ích
trong các lĩnh vực trong đời sống.
Trang 8CHUONG 2: MÔ HÌNH XỬ LÝ PHAN TAN CHO BÀI
TOÁN PHAN CUM DU LIEU LỚN
Hiện nay có rất nhiều các mô hình xử lý phân tán khác nhau cho bài toán phân cum đữ liệu lớn Trong khuôn khổ của luận văn, tôi sẽ tập trung nghiên cứu các Kĩ thuật
xử lý phân cụm đữ liệu lớn với Hadoop và tìm hiểu mô hình xử lý phân tán MapReduce trên nên Hadoop Việc áp dụng giải thuật lập trình xử lý phân cụm K-means và mô hình
lập trình phân tán song song MapReduce giúp ta giải quyết nhiều van dé lớn khác nhau với các tập đữ liệu lon [8] Chúng ta sé lần lượt di sâu vào im hi éu giải thuật K-means và mô hình MapReduce sẽ thấy cụ thé hơn mô lình ho ạt động như thé nào và việc áp dụng mô hình này vào hoạt động thực tiễn.
2.1 Tìm hiểu mô hình MapReduce 2.1.1 Giới thiệu chung
MapReduce là một mô hình xử lý phân tán được Google giới thiệu vào năm 2004.
MapReduce là một mô hình lập trình, hay một giải thuật lập trình dé giải quyết van đề về
xử lý dữ liệu lớn Trong mô hình này có hai thao tác chính là Map và Reduce, với ý
tưởng là chia công việc lớn ra thành nhiều công việc nhỏ, giao cho nhiều máy tính cùng thực hiện được gọi là thao tác Map, sau đó tổng hợp kết quả lại tương ứng thao tác
Quá trình Split phân chia nhỏ khối dit liệu đầu vào cần xử lý ra thành nhiều phan, rồi sau đó phân công cho mỗi máy xử lý một phan trong số đó Quá tình phân chia dữ
Trang 9liệu này sẽ dựa vào các tiêu chí được đặt ra trước để chia nhỏ dữ liệu, mỗi mảnh dữ liệu
được chia nhỏ như vậy gọi là một input split.
2.1.3 Quá trình Map và Shuffle
Việc đầu tiên thực hiện của mô hình lập trình MapReduce là quá trình Map Trong
quá trình Map sau khi các input split được tạo ra, hệ thống sẽ phân bố các input split về
các máy xử lý, các máy được phân công sẽ tiếp nhận và xử ly input split được giao, ta gọi
quá trình diễn ra trên nội bộ mỗi máy trong quá trình Map là Mapper Kết thúc quá trình Mapper trên mỗi máy, dữ liệu đầu ra cũng có dạng các cặp <key, value>.
2.1.4 Quá trình Reduce
Tiếp theo sau khi Map tạo các split chia nhỏ gói dữ liệu theo một tiêu chí chung giai đoạn tiếp theo trong mô hình này là Reduce Trong quá trình Reduce việc đầu tiên thực hiện là Shuffle, quá trình này diễn ra trên nhiều máy nhưng do sử dụng chung một tiêu chí đã đư ợc định trước, nên việc phân nhóm dữ liệu trên các máy có sự thống nhất Tập hợp dữ liệu tương ứng với nhau trên tất cả các máy chạy Shuffle sẽ được gom lại chuyên về cho cùng một máy xử lý, cho ra kết quả cuối cùng.
2.2 Tìm hiểu hệ sinh thái Hadoop 2.2.1 Giới thiệu chung
Hadoop được tạo ra bởi Dough Cutting, người sáng tạo ra Apache Lucene — bộ thư
viện tạo chỉ mục tìm kiếm trên text được sử dụng rộng rãi Hadoop thực thi các ứng dụng
tính toán phân tán theo mô hình MapReduce.
Hadoop được viết bằng Java, dùng hỗ trợ xây dựng, thực thi các ứng dụng tính toán phân tán theo mô hình MapReduce Hiện nay Hadoop được viết trên các ngôn ngữ khác nhau Hadoop cluster là hệ thống máy tính đã được triển khai nền tảng Hadoop Mỗi một Hadoop cluster bao gồm hai thành phần cơ bản là kiến trúc MapReduce và hệ thống
tập tin phân tán HDES:
e©_ Kiến trúc MapReduce gồm hai phần: TaskTracker - trực tiếp thực thi các tác vụ
xử lý dữ liệu, JobTracker - quản lý va phân chia công việc cho các TaskTracker.
e Hệ thống HDFS gồm hai phần: DataNode - nơi trực tiếp lưu trữ dit liệu, mỗi DataNode chịu trách nhiệm lưu trữ một phần dữ liệu của hệ thống, NameNode - quản lý
các DataNode, dân đường cho các yêu câu truy xuât dữ liệu
Trang 102.2.2 Hệ sinh thái Hadoop
Tìm hiểu hệ sinh thái của Hadoop sẽ giúp chúng ta hiểu rõ hơn và ứng dụng mô hình MapReduce vào nhiều các bài toán khác nhau Nó gần như cung cấp đến người
dùng các giải pháp cho nhiều vấn đề mà chúng ta phải đối mặt hàng ngày Dé hiểu được
hệ sinh thái này chúng ta xem qua sơ đồ sau:
Hệ sinh thái Hadoop
Mahout Pig Hive
MapReduce Hcatlog
Hinh 2.2.2.a: Hé sinh thai cia Hadoop [11]
Trong đó các thành phân chính của hệ sinh thái
e Core Hadoop framework: HDFS và MapReducee Quản lý các metadata: HCatalog
e Lưu trữ dữ liệu và truy van: HBase, Hive, Pig
e Nhập/Xuất dữ liệu: Flume, Sqoop
e Phan tich va hoc may: Mahout
e Phân tán kết hop: Zookeepr
e Quản lý phân cụm: Ambari
e Lưu trữ dữ liệu và đồng bộ: Avro
2.2.3 Mô hình MapReduce trong Hadoop
2.2.3.1 Giới thiệu chung
Trong Hadoop, mỗi quá trình xử ly MapReduce dr gc gọi là một job Việc thực
hiện job sẽ được quản lý bởi hai đối tượng là JobTracker và TaksTracker JobTracker hoạt động tại máy master có nhiệm vụ quản lý toàn bộ hệ thống gồm việc tạo và quản lý job,
phân bô dữ liệu và phân công công việc cho các TaskTracker, xử lý lỗi, v.v Tại mỗi máy
Trang 11slave có một TaskTracker hoạt động để tạo các task xử lý theo yêu cầu của JobTracker Ngoài ra, định kỳ mỗi khoảng thời gian, TaskTracker phải gửi tín hiệu HeartBeat về
JobTracker dé thông báo rằng nó vẫn đang còn hoạt động Điều này đảm bảo JobTracker
lập lịch công việc chính xác và hiệu quả cho cả hệ thông.
2.2.3.2 Cơ chế hoạt động mô hình MapReduce trong Hadoop
Mỗi khi có yêu cầu thực thi một ứng dụng MapReduce, JobTracker sẽ tạo ra một JobClient và chép toàn bộ code thực thi cần thiết của job đó lên hệ thống tập tin phân tán HDES, mỗi JobClient sẽ được gán một jobID duy nhất Tiếp theo JobClient sẽ gửi một
yêu cầu thực thi job lên JobTracker, JobTracker dựa theo yêu cầu của JobClient, sẽ gửi
yêu cầu khởi tạo task kèm theo các thông tin phân công công việc đến các TaskTracker.
Mỗi TaskTracker sẽ dựa vào thông tin phân công lần lượt thực hiện: Khởi tạo map task
hoặc reduce task, chép toàn bộ code thực thi trên HDFS về, thực hiện công việc được
phan công Sau khi thực hiện xong, TaskTracker sẽ thông báo cho JobTracker và tự giảiphóng
2.2.4 Hệ thống tập tin phân tán HDFS
2.2.4.1 Giới thiệu chung
Hadoop Distributed File System (HDFS) là một hệ thong tập tin phan tan, được thiết kế dé chạy trên hệ thống nhiều máy tinh được nối mang với nhau, có khả năng chịu lỗi cao và có thê triển khai trên hệ thống phần cứng không đòi hỏi cấu hình đắt tiền.
2.2.4.2 Những đặc điểm của HDFS
Khả năng lưu trữ dữ liệu lớn: khả năng làm việc với dữ liệu lớn, khả năng chịu lỗi
cao, một hệ thống có thé gồm hang nghìn máy tinh(node), có cơ chế quan lý các node tốt, quản lý dữ liệu tốt, có thê chạy trên nhiều nên tảng.
2.2.4.3 Các khái niện trên HDFS
Block: Mỗi đĩa cứng có một kích thước block nhất định Đó là kích thước đữ liệu nhỏ nhất có thé được ghi và đọc trên đó HDFS ding có quy đ inh về kích thước block.
Mặc định mỗi block trên HDFS có kích thước là 64MB [7, tr.45], [16] [22].
NameNode và DataNode: HDFS là một kiến trúc Master/Slave HDES cluster là
hệ thống máy tính đ đư ợc triển khai HDES Trong một cluster HDFS có duy nhất một NameNode đóng vai tò gi ống như một master Ngoài ra, còn có các DataNodeđóng vai
Trang 12trò như các slave Mỗi DataNode chịu trách nhiệm quản lý thông tin iru tr ữ của các dữ
liệu trên máy mà nó đang chạy.
Tổ chức tập tin (File system Namespace): HDFS tổ chức tập tin phân cấp theo
mô hình truyền thống Với HDFS người dùng cũng có thé tạo, xóa, di chuyền, đổi tên tập tin thư mục như các hệ thống tập tin truyền thông thông thường.
Lưu trữ dữ liệu (Data Replication): HDFS được thiết kế để lưu trữ các tập tin
cực lớn Trên một Hadoop cluster mỗi tập tin được chia thành nhiều block có thứ tự và
lưu trữ trên nhiều máy Việc nhân bản các block nhằm tăng khả năng chịu lỗi cho hệ thống.
Lỗi đĩa, thông điệp HeartBeat và nhân bản lại các block
Định kỳ, mỗi DataNode sẽ gởi đến NameNode một thông điệp gọi là HeartBeats để xác định tình trạng hoạt động của DataNode.
Truy xuất dữ liệu trên HDFS:
+ Đọc dữ liệu trên HDFS: G một yêu cầu đến NameNode dé hỏi về vi trí các block có liên quan đến dit liện cần đọc.
+ Ghi dữ liệu trên HDES: Dữ liệu phải được ghi vào bộ nhớ cục bộ của máy tínhchạy chương tình client Khi tập tin cục bộ đã tích fy đủ dung lượng của một block,
chương trình client sẽ nhận về một danh sách những DataNode được NameNode chỉ định
sẽ chứa tập tin dữ liệu này Các NameNode ghi dit liệu cho khi hết dữ liệu thì dừng lại.
SecondaryNameNode: Secondary NameNode như là bản sao đề phòng của NameNode, dùng cho việc khôi phục lại NameNode nếu NameNode bị lỗi.
2.2.5 Các lớp cơ bản trong một chương trình Hadoop
Lớp Mapper
Đây là lớp hỗ trợ thực hiện quá trình Map trong hệ thống, có hai phương thức qua trọng cần phải quan tâm là:
e Phương thức run(): Kiểm soát việc doc và phân phát dữ liệu từ input split.
e Phương thức map(): Phương thức này được thiết kế dé mỗi lần nhận vào và xử
lý một cặp <key, value>.Lớp Reducer
Lớp Reducer hỗ trợ thực hiện quá trình Reduce, có hai phương thức thường được
định nghĩa lại là:
Trang 13e Phương thức run(): Kiểm soát việc đọc va phân phat dữ liệu từ quá trình Map
gửi toi.
e Phuong thức reduce(): Phương thức này được thiết kế dé mỗi lần nhận vào và
xử lý một loạt các cặp <key, value> có cùng chung thuộc tính key.
2.2.6 Quy trình hoạt động
Hadoop hỗ trợ cho việc nạp và xóa đữ liệu vào bên trong HDES Quá trình dữ liệu được nạp vào bên trong hệ thong và ngược lai Tuy theo số lượng input split, JobTracker
sẽ yêu cầu các TaskTracker khởi tao đủ số lượng Map Task cần thiết cho việc xử lý.
Thực thi tại Map Task
Mỗi map task sẽ đọc vào một input split và phân nó thành những record trong hàm
run(), mỗi record là một cặp <key, value> Sau đó, phương thức map() được gọi dé thực hiện việc tính toán xử lý trên từng cặp <key, value> Kết quả sau khi được xử lý sẽ không được chuyển ngay đến reduce task mà được lưu trữ tại bộ nhớ cục bộ của map task Kết
quả sau khi thực hiện sẽ được ghi vào một tập tin và đăng ký với TaskTracker Khi kích
thước tập tin đủ lớn sẽ thực hiện việc chuyên dữ liệu sang reduce task.
Thực thi tại Reduce Task
Đầu tiên Reduce Task sẽ chép dữ liệu từ các Map Task về bộ nhớ cục bộ của nó.
Mỗi Reduce Task chỉ thực hiện việc chép những dữ liệu thuộc một nhóm nhất định Tiếp theo, dữ liệu sẽ được gom nhóm theo key, mỗi nhóm có dạng <key, list(values)>, nếu được yêu cầu sắp xếp, dữ liệu trong mỗi nhóm sẽ được sắp xếp trước khi gửi qua phương
thức reduce() dé xử lý và ghi dữ liệu ra HDFS.
2.3 Áp dụng thuật toán cho bài toán xứ lý phân cụm dữ liệu lớn
2.3.1 Tìm hiểu thuật toán Kmean
Thuật toán phân hoạch K-means do MacQuean đề xuất trong ĩnh vực thống kê năm 1967 Ý trởng của phương pháp này là từ tập ban đầu ta tìm một phép phân hoạch nó vào trong k tập con Trong mỗi nhóm có một phần tử đặc biệt đại diện cho nhóm, gọi
là trọng tậm của nhóm.