Nghiên cứu mô hình xử lý phân tán trong bài toán phân cụm dữ liệu lớn

26 0 0
Nghiên cứu mô hình xử lý phân tán trong bài toán phân cụm dữ liệu lớn

Đ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

Trang 1

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 2

Ngườ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 3

LỜ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 4

CHƯƠ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 5

hộ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 6

Chươ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 7

mạ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 8

CHUONG 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 9

liệ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 10

2.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 11

slave có một TaskTracker hoạt động để tạo các task xử lý theo yêu cầu của JobTracker Ngoài ra, định kỳ mỗi khoảng thời gian, TaskTracker phải gửi tín hiệu HeartBeat về

JobTracker 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 12

trò 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 13

e 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.

Ngày đăng: 07/04/2024, 12:29

Tài liệu cùng người dùng

Tài liệu liên quan