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

Đề tài tìm hiểu thuật toán k means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh

70 51 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Tìm hiểu thuật toán k-means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh
Tác giả Vũ Thị Hường
Người hướng dẫn TS. Nguyễn Tu Trung
Trường học Trường Đại Học Thủy Lợi
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2019
Thành phố Hà Nội
Định dạng
Số trang 70
Dung lượng 2,17 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Năm 2004, Google giới thiệu thiệu mô hình tính toán MapReduce tính toánphân tán nhanh trên một tập dữ liệu lớn và dữ liệu được đặt trên nhiều cụm máytính.. Phân cụm ảnh được ứng dụng rất

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

-

🙡🕮🙣 -ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Ngành Công nghệ thông tin

Đề tài:

TÌM HIỂU THUẬT TOÁN K-MEANS DỰA TRÊN

MÔ HÌNH MAPREDUCE VÀ ỨNG DỤNG TRONG

Trang 2

LỜI CẢM ƠN

Sau hơn 4 năm học tập và nghiên cứu tại Khoa Công nghệ thông tin - TrườngĐại học Thủy Lợi, em đã được trải nghiệm trong môi trường đào tạo tốt và nhậnđược sự chỉ dạy nhiệt tình của các thầy, các cô trong khoa

Trước hết, em xin được bày tỏ lòng biết ơn và gửi lời cảm ơn chân thành đến

TS Nguyễn Tu Trung đã dạy cho em có được những kiến thức vững chắc, tận tình

chỉ bảo, nhắc nhở và hướng dẫn em trong suốt quá trình làm đồ án tốt nghiệp

Em cũng xin chân thành cảm ơn các thầy cô giáo trong khoa Công nghệthông tin nói riêng và trường Đại học Thủy Lợi nói chung đã trang bị cho tôi nhữngkiến thức quý báu làm hành trang trong những năm học vừa qua

Em cũng xin bày tỏ lòng biết ơn sâu sắc đến: Cha mẹ và những người thântrong gia đình đã chăm sóc, nuôi dạy, hỗ trợ, động viên và tạo mọi điều kiện thuậnlợi nhất cho em trong suốt thời gian qua và đặc biệt trong thời gian em làm đồ án tốtnghiệp

Ngoài ra, em cũng chân thành cảm ơn các bạn, các anh, các chị đã ủng hộ,giúp đỡ, trao đổi kiến thức, kinh nghiệm và động viên tôi trong thời gian học tập vànghiên cứu

Trong quá trình nghiên cứu của mình, mặc dù được sự hướng dẫn rất nhiệt

tình, nghiêm túc của TS Nguyễn Tu Trung cùng với sự nỗ lực của cá nhân nhưng

cũng không thể tránh được những thiếu sót Em rất mong nhận được sự cảm thông

và những góp ý từ quý Thầy, Cô và các bạn để đề tài được hoàn thiện hơn

Em xin chân thành cảm ơn!

Hà Nội, ngày … tháng … năm 2019 Sinh viên thực hiện

Vũ Thị Hường

Trang 3

MỤC LỤC

LỜI CẢM ƠN 1

DANH MỤC BẢNG BIỂU 5

DANH MỤC HÌNH ẢNH 6

MỞ ĐẦU 8

CHƯƠNG 1: TỔNG QUAN VỀ BIGDATA VÀ PHÂN CỤM DỮ LIỆU 11

1.1 Tổng quan về dữ liệu lớn (Big Data) 11

1.1.1 Tổng quan 11

1.1.2 Tổng quan về phân tích dữ liệu lớn 14

1.2 Tổng quan về phân cụm dữ liệu 16

1.2.1 Tổng quan 16

1.2.2 Tổng quan về phân cụm ảnh 19

CHƯƠNG 2: MÔ HÌNH MAPREDUCE TRONG PHÂN TÍCH DỮ LIỆU LỚN 22

2.1 Mô hình MapReduce 22

2.1.1 Tổng quan về mô hình MapReduce 22

2.1.2 Kiến trúc của MapReduce 23

2.1.3 Nguyên tắc hoạt động của mô hình MapReduce 23

2.2.4 Ưu và nhược điểm của mô hình MapReduce 26

2.2.5 Ứng dụng của MapReduce 27

2.2 Apache Hadoop 27

2.2.1 Tổng quan về Apache Hadoop 27

2.2.2 Kiến trúc của Apache Hadoop 29

2.2.3 Các trình nền của Hadoop 32

2.1.4 Nguyên tắc hoạt động của Hadoop MapReduce 34

2.1.5 Ứng dụng của hadoop 34

Trang 4

CHƯƠNG 3: PHÂN CỤM DỮ LIỆU VỚI THUẬT TOÁN KMEANS 35

3.1 Thuật toán KMeans 35

3.1.1 Tổng quan về thuật toán KMeans 35

3.1.2 Giải thuật của thuật toán KMeans 37

3.1.3 Ví dụ tính toán bằng tay 38

3.1.4 Ưu điểm và nhược điểm của KMeans 41

3.2 Ý tưởng và giải pháp MapReduce hoá thuật toán KMeans 42

3.2.1 Đặc trưng của KMeans để MapReduce 42

3.2.2 Ý tưởng MapReduce hóa KMeans 42

3.4 Thuật toán IPKMeans – cải tiến của PKMeans cho phân cụm ảnh 44

3.4.1 Chuyển đổi dữ liệu 45

3.4.2 Phân cụm ảnh với thuật toán IPKMeans 45

3.4.3 Khôi phục kết quả phân cụm ảnh 48

CHƯƠNG 4: CƠ SỞ CÔNG NGHỆ 49

4.1 Hệ điều hành Linux 49

4.2 Công nghệ docker 50

4.2.1 Tổng quan về docker 50

4.2.2 Docker ứng dụng trong multi-node 53

4.3 Ngôn ngữ lập trình Java 54

4.3.1 Tổng quan về Java 54

4.3.2 Java swing 56

4.4 Môi trường lập trình Intellij IDEA Ultimate 56

CHƯƠNG 5: XÂY DỰNG CHƯƠNG TRÌNH VÀ THỰC NGHIỆM ĐÁNH GIÁ .58

5.1 Yêu cầu hệ thống 58

Trang 5

5.1.1 Yêu cầu chung 58

5.1.2 Yêu cầu chức năng 58

5.2 Xây dựng chương trình 58

5.2.1 Môi trường thực nghiệm 59

5.2.2 Dữ liệu thực nghiệm 59

5.2.3 Cài đặt chương trình 59

5.3 Thực nghiệm và đánh giá 60

5.3.1 Kết quả cài đặt 60

3.3.2 Kết quả thực nghiệm và đánh giá 61

KẾT LUẬN 67

TÀI LIỆU THAM KHẢO 69

Trang 6

DANH MỤC BẢNG BIỂU

Bảng 1 Công nghệ phân tích dữ liệu lớn 15

Bảng 2 Giải thuật thuật toán KMeans 37

Bảng 3 Mô tả bài toán phân cụm KMeans 38

Bảng 4 Lần lặp 1 tâm cụm và điểm thuộc tâm cụm 38

Bảng 5 Lặp lần 2 tâm cụm và điểm thuộc tâm cụm 40

Bảng 6 Lặp lần 3 tâm cụm và điểm thuộc tâm cụm 40

Bảng 7 Thuật toán cho hàm map(key,value) 43

Bảng 8 Thuật toán cho hàm reduce(key,V) 44

Bảng 9 Mã giả thuật toán IPKMeans cho hàm mapImage(key, value) 46

Bảng 10 Thuật toán IPKMeans cho hàm reduceImage(key, value) 47

Bảng 11 Ảnh dữ liệu đầu vào 62

Bảng 12 Kết quả ảnh sau khi phân cụm kích thước 128x128 và 300x300 62

Bảng 13 Kết quả ảnh sau khi phân cụm kích thước 500x500 và 700x700 62

Bảng 14 Kết quả tâm cụm sinh ra sau khi hội tụ 1 64

Bảng 15 Kết quả tâm cụm sinh ra sau khi hội tụ 2 64

Bảng 16 Kết quả thống kê thời gian thực thi 128x128 65

Bảng 17 Kết quả thống kê thời gian thực thi 300x300 65

Bảng 18 Kết quả thống kê thời gian thực thi 500x500 65

Bảng 19 Kết quả thống kê thời gian thực thi 700x700 65

Bảng 20 Kết quả đánh giá hiệu suất theo kích thước dữ liệu 66

Bảng 21 Biểu đồ đánh giá hiệu suất thực thi 67

Trang 7

DANH MỤC HÌNH ẢNH

Hình 1 Tốc độ gia tăng nguồn dữ liệu 11

Hình 2 Xu hướng doanh thu từ phân tích dữ liệu lớn đem lại 12

Hình 3 Đặc trưng của dữ liệu lớn 13

Hình 4 Công cụ quản lý dữ liệu lớn 14

Hình 5 Minh họa quá trình phân cụm 16

Hình 6 Quá trình phân cụm dữ liệu 17

Hình 7 Minh hoạ một số ví dụ phân cụm 18

Hình 8 Ví dụ phân cụm ảnh 20

Hình 9 Quy trình cơ bản trong phân cụm ảnh 20

Hình 10 Logo mô hình MapReduce 22

Hình 11 Kiến trúc của MapReduce 23

Hình 12 Mô hình hoạt động của MapReduce 24

Hình 13 Một số lĩnh vực áp dụng MapReduce 27

Hình 14 Logo Apache Hadoop 28

Hình 15 Lợi ích hadoop 29

Hình 16 Thành phần của hadoop 29

Hình 17 Cấu trúc cây phân cấp file của Hadoop 30

Hình 18 Kiến trúc tổng quát của HDFS 30

Hình 19 Hoạt động đọc trên HDFS 31

Hình 20 Hoạt động ghi trên HDFS 31

Hình 21 Mô tả hoạt động của JobTracker 33

Hình 22 Mô hình phân cụm đơn giản 35

Hình 23 Minh họa quá trình phân cụm 36

Hình 24 Lưu đồ thuật toán IPKMeans 46

Hình 25 Tổng quan hệ điều hành linux 49

Hình 26 Kiến trúc của hệ điều hành linux 49

Hình 27 Logo công nghệ docker 51

Hình 28 Kiến trúc của docker 51

Trang 8

Hình 29 Quy trình thực thi hệ thống trên docker 52

Hình 30 Cài đặt nhiều node bên trong một mạng docker 54

Hình 31 Logo ngôn ngữ lập trình Java 55

Hình 32 Minh hoạ ứng dụng của Java 56

Hình 33 Các chức năng của ứng dụng 58

Hình 34 Giao diện ứng dụng phân cụm 61

Trang 9

MỞ ĐẦU

1 Tổng quan về vấn đề nghiên cứu

Những năm gần đây, sự phát triển mạnh của công nghệ thông tin đã làm chokhả năng thu thập và lượng thông tin tăng nhanh một cách chóng mặt Sự ra đời củacác kênh truyền thông mới như mạng xã hội và các thiết bị tiên tiến hơn đã đặt rathách thức cho các nền công nghiệp phải tìm những cách để xử lý dữ liệu

Các phương pháp song song hóa đã được đề cập từ lâu, khi mà J.VonNeumann giới thiệu mô hình tính toán song song có tên Otomat tế bào Từ đó đếnnay, lý thuyết về xử lý song song trở thành lĩnh vực nghiên cứu quan trọng và ngàycàng đem lại tính năng vượt trội so với mô hình lập trình tuần tự truyền thống

Năm 2004, Google giới thiệu thiệu mô hình tính toán MapReduce tính toánphân tán nhanh trên một tập dữ liệu lớn và dữ liệu được đặt trên nhiều cụm máytính Cho đến nay MapReduce đã có tầm ảnh hưởng lớn nhất [9]

2 Lý do chọn đề tài.

Ngày nay, mọi doanh nghiệp lớn và vừa đều bị bao vây bởi hàng tấn dữ liệuphi cấu trúc từ nhiều nguồn khác nhau và không ngừng gia tăng từng ngày.Vì vậy,chúng ta luôn phải đối mặt với việc xử lý một lượng dữ liệu khổng lồ được gọi là

Big Data Hầu hết dữ liệu lớn được tạo ra là ảnh.

Thị giác máy tính là một lĩnh vực nghiên cứu mới mẻ đầy tiềm năng và rất

được quan tâm Tầm quan trọng và những khó khăn của việc gom cụm các đốitượng mang tính tri giác của con người từ lâu đã được nghiên cứu nhiều trong cáclĩnh vực của thị giác máy tính đặc biệt trong lĩnh vực xử lý ảnh

Phân cụm ảnh được ứng dụng rất mạnh mẽ trong các bài toán phân tích vàhiểu ảnh tự động, một trong những bước quan trọng của việc khai thác các hình ảnh,nhưng đó cũng là một bài toán khó mà tới bây giờ các nhà khoa học cũng chưa tìm

ra cách giải hoàn toàn thấu đáo Vậy: Làm thế nào để phân chia một ảnh thành các tập con? Những cách khả thi để có thể làm được điều đó là gì?

Trong khoảng 30 trở lại đây đã có rất nhiều thuật toán được đề xuất để giảiquyết vấn đề phân cụm ảnh Các thuật toán này hầu hết đều tiếp cận theo 2 hướngchủ yếu là: dựa trên pixel và dựa trên trên đồi tượng [10] Tuy nhiên việc xử lý ảnh

Trang 10

còn tồn tại nhiều vấn đề như: Độ phức tạp của thời gian tính toán theo cấp số nhân; khối lượng dữ liệu được xử lý giới hạn, vấn đề về lỗi, … [11]

Xuất phát từ thực tế và để giải quyết vấn đề đặt ra, em đã chọn thuật toánIPKMeans - phương pháp phân cụm ảnh song song hoá dựa trên mô hình

MapReduce để giải quyết bài toán phân cụm ảnh lớn với đề tài "Tìm hiểu thuật toán K-Means dựa trên mô hình MapReduce và ứng dụng trong phân cụm ảnh." thực hiện làm học phần tốt nghiệp của mình.

3 Đối tượng nghiên cứu.

- Nghiên cứu kỹ thuật chuyển đổi điểm ảnh sang không gian màu RGB

- Nghiên cứu mô hình lập trình MapReduce và Hadoop

- Nghiên cứu phân cụm ảnh với thuật toán K-Means, PKMeans và IPKMeans

- Nghiên cứu nền tảng mở docker, docker-compose tạo lập môi trường nhiềumáy ảo xử lý tính toán song song

4 Phạm vi nghiên cứu.

- Mô hình MapReduce và Apache Hadoop.

- Thuật toán KMeans, PKMeans, IPKMeans.

- Ứng dụng phân cụm ảnh với Kmeans và IPKMeans.

- Xử lý phân cụm ảnh tính toán song song.

- Nền tảng mở docker, docker-compose.

5 Mục tiêu đề tài.

- Tìm hiểu về kỹ thuật xử lý ảnh, bài toán phân cụm ảnh xám, ảnh màu.

- Hiểu về cơ chế hoạt động của Hadoop bao gồm HDFS (Hadoop Distributed

File System) và MapReduce

- Hiểu về thuật toán KMeans và IPKMeans.

- Xây dựng ứng dụng demo phân cụm ảnh với thuật toán KMeans và

IPKMeans

- Chạy thử nghiệm ứng dụng song song nhiều node sử dụng docker.

- Thử nghiệm, phân tích đánh giá giải pháp KMeans và IPKMeans.

Trang 11

6 Cấu trúc của đồ án tốt nghiệp.

Cấu trúc đồ án tốt nghiệp

Nội dung của đồ án tốt nghiệp được trình bày trong ba phần chính như sau:

1 Phần mở đầu

2 Phần nội dung: bao gồm năm chương:

BigData và phân cụm dữ liệu.

Chương này, trình bày tổng quan về dữ liệu lớn, phân tích dữ liệu lớn, phâncụm dữ liệu, phân cụm ảnh, phân tích quy trình phân cụm ảnh, đưa ra vấn đề bàitoán phân cụm, quy trình hoạt động và một số ứng dụng của phân cụm

e trong phân tích dữ liệu lớn.

Chương này, trình bày về mô hình MapReduce, kiến trúc, nguyên tắc hoạtđộng, ưu nhược điểm và ứng dụng của MapReduce; tổng quan về apache hadoop

Phân cụm dữ liệu với thuật toán KMeans.

Chương này, trình bày về tổng quan, các bước xử lý, tính toán của thuật toánKMeans Trình bày thuật toán cải tiến của KMeans là PKMeans và IPKMeans, phântích từng giải thuật hàm map, hàm reduce, lưu đồ biểu diễn thuật toán IPKMeans và

áp dụng phân cụm ảnh

Chương này, trình các công nghệ cần thiết xây dựng ứng dụng xử lý phâncụm ảnh dữ liệu lớn song song Đưa ra lý do dùng công nghệ đó vào vai trò nào củaứng dụng và giải thích rõ ưu và nhược điểm

Phân tích ứng dụng và thực nghiệm đánh giá.

Chương này, trình bày các phân tích, các tính năng của ứng dụng; mô tả dữliệu thực nghiệm, đưa ra kết quả và phân tích đánh giá kết quả thực nghiệm

Trang 12

CHƯƠNG 1: TỔNG QUAN VỀ BIGDATA VÀ PHÂN CỤM DỮ LIỆU 1.1 Tổng quan về dữ liệu lớn (Big Data).

1.1.1 Tổng quan.

Định nghĩa:

Theo wikipedia: Dữ liệu lớn(Big data) là một thuật ngữ chỉ bộ dữ liệu lớn

hoặc phức tạp mà các phương pháp truyền thống không đủ các ứng dụng để xử lý

dữ liệu này

Theo Gartner : Dữ liệu lớn là những nguồn thông tin có đặc điểm chung khối

lượng lớn, tốc độ nhanh và dữ liệu định dạng dưới nhiều hình thức khác nhau, do đómuốn khai thác được phải đòi hỏi phải có hình thức mới để đưa ra quyết định khámphá và tối ưu hóa quy trình

Nguồn dữ liệu lớn: Dữ liệu đến từ rất nhiều nguồn khác nhau:

Hình 1 Tốc độ gia tăng nguồn dữ liệu.

- Dữ liệu lớn được hình thành chủ yếu từ 9 nguồn: [3]

(1) Dữ liệu hành chính (phát sinh từ chương trình của một tổ chức, có thể là chính

phủ hay phi chính phủ) Ví dụ: hồ sơ y tế điện tử ở bệnh viện, hồ sơ bảo hiểm,

(2) Dữ liệu từ hoạt động thương mại (phát sinh từ các giao dịch giữa các thực thể).

Ví dụ: các giao dịch thẻ tín dụng, giao dịch trên mạng, …

Trang 13

(3) Dữ liệu từ các thiết bị cảm biến như thiết bị chụp hình ảnh vệ tinh, cảm biến

đường, cảm biến khí hậu

(4) Dữ liệu từ các thiết bị theo dõi Ví dụ theo dõi dữ liệu từ điện thoại di động (5) Dữ liệu từ các hành vi Ví dụ như tìm kiếm trực tuyến (tìm kiếm sản phẩm, dịch

vụ hay thông tin khác), đọc các trang mạng trực tuyến,

(6) Dữ liệu từ các thông tin về ý kiến, quan điểm của các cá nhân, tổ chức, trên các

phương tiện thông tin xã hội

(7) Dữ liệu điện lực bao gồm các thông tin cụ thể từ các điểm giao nhau của các nút

thông tin sử dụng

(8) Dữ liệu các thiết bị tìm kiếm, công cụ tìm kiếm có cơ sở dữ liệu cực kỳ rộng lớn,

nơi họ có thể tìm thấy dữ liệu họ cần

(9) Dữ liệu từ các kênh truyền thông xã hội, được tạo ra và phát triển bởi các trang

truyền thông xã hội như Facebook, Instagram,…

- Dự báo quy mô thị trường dữ liệu lớn: Dựa trên doanh thu, từ năm 2011 đến

năm 2027 (tính bằng tỷ USD)

Hình 2 Xu hướng doanh thu từ phân tích dữ liệu lớn đem lại.

Thị trường dữ liệu lớn toàn cầu được dự báo sẽ tăng lên 103 tỷ USD vào năm

2027, gấp đôi quy mô thị trường dự kiến vào năm 2018

Đặc trưng cơ bản của dữ liệu lớn [3]

Trang 14

Hình 3 Đặc trưng của dữ liệu lớn.

(1) Khối lượng lớn (Volume):

- Khối lượng dữ liệu rất lớn là đặc điểm tiêu biểu nhất của dữ liệu lớn và dữ liệuđang ngày càng tăng lên

- Kích cỡ tính đến 2014 thì có thể trong khoảng vài trăm terabyte (1 petabyte =

1024 terabyte) chỉ cho 1 tập hơn dữ liệu

- Sử dụng công nghệ “đám mây” mới có khả năng lưu trữ được dữ liệu lớn

- Dữ liệu truyền thống chúng ta hay nói đến dữ liệu có cấu trúc

- Ngày nay hơn 80% dữ liệu được sinh ra là phi cấu trúc( tài liệu, blog, hình ảnh, )

- Big data cho phép liên kết và phân tích nhiều dạng dữ liệu khác nhau

(4) Độ tin cậy/chính xác (Veracity):

- Một trong những tính chất phúc tạp nhất của BigData là độ tin cậy/chính xác của

dữ liệu

Trang 15

- Xu hướng phương tiện truyền thông xã hội và mạng xã hội ngày nay và sự giatăng mạng mẽ tính tương tác và chia sẻ của người dùng mobile làm cho bức trangxác định về độ tin cậy và chính xác của dữ liệu ngày một khó khăn hơn.

- Bài toán phân tích và loại bỏ dữ liệu thiếu chính xác và nhiễu đang là tính chấtquan trọng của bigdata

(5) Giá trị(Value):

- Là đặc điểm quan trọng nhất của dữ liệu lớn Trước khi làm phân tích dữ liệu lớnthì việc đầu tiên là lảm rõ, xác định rõ được giá trị của thông tin mang lại ra sao

- Kết quả dự báo chính xác thể hiện rõ nét nhất về giá trị của dữ liệu lớn mang lại

1.1.2 Tổng quan về phân tích dữ liệu lớn.

Nhiệm vụ khoa học công nghệ dữ liệu lớn:

- Quản trị dữ liệu (Data management): Lưu trữ, bảo trì và truy nhập các nguồn dữliệu lớn

- Mô hình hoá và phân tích dữ liệu (Big Modeling and analytics): Tìm cách hiểuđược dữ liệu và tìm ra các thông tin hoặc tri thức quý báu từ dữ liệu

- Trao đổi, hiển thị dữ liệu và kết quả phân tích dữ liệu (Visualization Decisions andValues) để tạo ra sản phẩm giá trị

Quản lý dữ liệu lớn:

Hình 4 Công cụ quản lý dữ liệu lớn.

Trang 16

Yêu cầu khi phân tích dữ liệu lớn.

- Khả năng mở rộng: Hệ thống có khả năng đối phó với sự tăng trưởng của dữ liệu,

tính toán và độ phức tạp

- Hiệu suất vào ra dữ liệu: Tốc độ truyền dữ liệu giữa hệ thống và thiết bị ngoại vi.

- Khả năng chấp nhận lỗi: Khả năng tiếp tục hoạt động đúng trong trường hợp thất

bại của một hay nhiều thành phần

- Xử lý thời gian thực: Khả năng xử lý dữ liệu và đưa ra kết quả chính xác trong

những ràng buộc thời gian nhất định

- Hỗ trợ kích thước dữ liệu: Kích thước của dữ liệu mà hệ thống có thể xử lý tốt.

- Hỗ trợ tác vụ lặp: Hệ thống hỗ trợ hiệu quả tác vụ lặp.

Công nghệ chính trong phân tích dữ liệu lớn: Tính toán phân tán, tính toán

song song, song song hóa bằng CPU đa nhân, xử lý phân tán với hệ thống cluster,

xử lý phân tán trên cloud

Công cụ hỗ trợ phân tích dữ liệu lớn.

Big Data là một tập hợp dữ liệu mà không thể phân tích/khai thác theo cácphương pháp truyền thống Do đó việc kiểm thử trên các tập dữ liệu lớn cũng cần sửdụng nhiều công cụ, kỹ thuật và nền tảng đặc thù khác nhau

Bảng 1 Công nghệ phân tích dữ liệu lớn.

Big Data Big Data Tools

NoSQL Databases MongoDB, Cassandra, Redis, ZooKeeper, Hbase

MapReduce Hadoop, Hive, Pig, Cascading, Kafka, S4, MapR, Flume

Trang 17

Storage S3, HDFS ( Hadoop Distributed File System)

Servers Elastic, Heroku, Elastic, Google App Engine, EC2

Processing R, Yahoo! Pipes, Mechanical Turk, BigSheets, Datamee

Lợi ích của khai thác dữ liệu lớn:

- Tiết kiệm chi phí

- Tiết kiệm thời gian và giúp tối ưu hoá sản phẩm

- Hỗ trợ con người đưa ra những quyết định đúng và hợp lý hơn

1.2 Tổng quan về phân cụm dữ liệu.

1.2.1 Tổng quan.

• Khái niệm: Ở một mức cơ bản nhất, người ta đã đưa ra định nghĩa phân cụm dữ

liệu (PCDL) như sau: [3]

"Phân cụm dữ liệu là một kỹ thuật trong khai phá dữ liệu (Data mining), nhằm tìm kiếm, phát hiện các cụm, các mẫu dữ liệu tự nhiên tiềm ẩn, quan tâm trong tập dữ liệu lớn, từ đó cung cấp thông tin, tri thức hữu ích cho ra quyết định.”

• Mục đích: Quá trình PCDL là quá trình phân chia một tập dữ liệu ban đầu thành

các cụm dữ liệu sao các phần tử trong cùng một cụm thì “tương tự” nhau và cácphần tử khác cụm nhau thì “phi tương tự nhau”

Hình 5 Minh họa quá trình phân cụm.

• Giải quyết vấn đề: Một số bài toán học máy không giám sát như tìm kiếm, phát

hiện các cụm, các mẫu dữ liệu trong một tập hợp dữ liệu ban đầu, các dữ liệu không

Trang 18

có nhãn.

• Quá trình phân cụm dữ liệu:

Hình 6 Quá trình phân cụm dữ liệu.

(1) Lựa chọn đặc trưng: Các đặc trưng được chọn một cách hợp lý để có thể "mã

hóa" nhiều nhất thông tin liên quan đến công việc quan tâm

=> Mục tiêu chính là: Giảm thiểu độ dư thừa thông tin giữa các đặc trưng

+ Chọn độ đo tương tự: Đưa ra mức độ tương tự hay không tương tự giữa haivector đặc trưng góp phần như nhau trong việc tính toán

+ Tiêu chuẩn phân cụm: Có thể diễn đạt bởi kinh nghiệm của chuyên gia,cũng có thể được diễn đạt bởi hàm chi phí hay loại quy tắc khác

(2) Thuật toán phân cụm: Lựa chọn 1 thuật toán phân cụm riêng biệt nhằm làm

sáng tỏ cấu trúc cụm của tập dữ liệu

(3) Đánh giá cụm: Khi đã có kết quả phân cụm thì tiến hành kiểm tra tính đúng đắn

của nó Bằng việc dùng các kiểm định phù hợp

(4) Giải thích kết quả: Trong nhiều trường hợp, phải kết hợp giữa kết quả phân loại

với bằng chứng thực nghiệm và phân tích để đưa ra các kết luận đúng đắn

• Thế nào là phân cụm tốt?

Trang 19

- Một phương pháp phân cụm tốt sẽ sinh ra các cụm có chất lượng cao [3], trong đó:

+ Mức độ tương tự giữa các đối tượng trong cùng một cụm là cao

+ Mức độ tương tự giữa các đối tượng nằm trong các cụm khác nhau là thấp

- Chất lượng của kết quả phân cụm phụ thuộc vào cả độ đo tương tự được sử dụng

và cách thức thực hiện

- Chất lượng của phương pháp phân cụm cũng được đánh giá bởi khả năng pháthiện các mẫu tiềm ẩn

Một số ví dụ về phân cụm dữ liệu.

Phân cụm được ứng dụng trong nhiều lĩnh vực Ví dụ như:

Hình 7 Minh hoạ một số ví dụ phân cụm.

(1) Xử lý dữ liệu lớn: Việc khám phá tri thức trong các cơ sở dữ liệu thường phải xử

lý khối lượng dữ liệu rất lớn, nhiều khi ngay cả các thuật toán với độ phức tạp tínhtoán là đa thức cũng không dùng được Do đó, việc phân và xử lý theo các cụm làmột giải pháp hữu hiệu

Trang 20

(2) Phân cụm dữ liệu trong hoạt động phân đoạn ảnh: Phân đoạn ảnh là việc phân

tích mức xám hay màu của ảnh thành lát đồng nhất

(3) Tạo giả thuyết: Phân tích cụm được sử dụng để suy ra một số giả thuyết liên

quan đến dữ liệu

(4) Thương mại: Tìm kiếm nhóm các khách hàng quan trọng có đặc trưng tương

đồng và những đặc tả họ từ các bản ghi mua bán trong cơ sở dữ liệu khách hàng

(5) Phân cụm dữ liệu trong hoạt động nghiên cứu thị trường: Sử dụng để phân đoạn

thị trường và xác định mục tiêu thị trường

1.2.2 Tổng quan về phân cụm ảnh.

Bài toán phân cụm ảnh:

Ngày nay, thời kỷ nguyên của dữ liệu lớn, hầu hết những dữ liệu lớn đượctạo ra là hình ảnh Phân tích dữ liệu lớn đòi hỏi sức mạnh tốc độ tính toán có thể mởrộng, khai thác dữ liệu, thống kê tinh vi và kỹ thuật học máy Vì thế, vấn đề ở đâyquan tâm là phân cụm ảnh lớn - giai đoạn quan trọng đầu tiên trong quá trình xử lýảnh với ảnh dữ liệu lớn

• Khái niệm: Phân cụm ảnh (hay phân đoạn ảnh) là chia ảnh thành các vùng không

trùng lặp Mỗi vùng gồm một nhóm pixel liên thông và đồng nhất theo một tiêu chínào đó như về màu sắc, mức xám ,

- Sau khi phân cụm mỗi pixel chỉ thuộc về một vùng duy nhất Để đánh giá chất

lượng của quá trình phân cụm là rất khó Vì vậy trước khi phân cụm ảnh cần xác định rõ mục tiêu của quá trình phân cụm là gì?

• Bài toán đặt ra: Giả sử ta có một tập dữ liệu điểm ảnh và ta cần phải nhóm các

dữ liệu có tính chất tương tự nhau vào các cụm khác nhau chưa biết trước

- Một cách đơn giản để mô phỏng bài toán này là biểu diễn qua hình học.Các dữ liệu có thể coi là các điểm trong không gian và khoảng cách giữa các điểm

có thể được coi là thông số mức độ giống nhau của chúng Những điểm càng gầnnhau thì chúng càng giống nhau

- Bài toán dưới dạng hình thức như sau:

(nd) gồm n điểm dữ liệu có d chiều

+ Nhiệm vụ: Phân tập dữ liệu ra làm k cụm các dữ liệu tương tự nhau

+ D liu: tp d liu X R

Trang 21

+ Đặc điểm: - Phân cụm các điểm dữ liệu không cần giám sát.

- Không quan tâm tới thông tin trong không gian ảnh

- Tồn tại các phương pháp heuristic và hữu hạn

• Ví dụ:

Hình 8 Ví dụ phân cụm ảnh.

(a) Hình ảnh gốc; (b) Hình ảnh kết quả của phân đoạn.

Quy trình cơ bản trong phân cụm ảnh:

Hình 9 Quy trình cơ bản trong phân cụm ảnh.

(1) Thu nhận ảnh: Ảnh có thể thu nhận được qua các thiết bị chụp ảnh.

(2) Tiền xử lý ảnh: Sau khi thu nhận ảnh có thể bị nhiễu hoặc độ tương phản thấp

nên cần đưa vào bộ tiền xử lý để nâng cao chất lượng ảnh như lọc nhiễu, nâng cao

độ tương phản để làm ảnh rõ nét hơn,

(3) Phân cụm: Tách ảnh đầu vào thành các vùng thành phần để biểu diễn, phân tích,

nhận dạng ảnh Đây là phần phức tạp, khó khăn nhất trong xử lý ảnh và cũng dễ gây

Trang 22

lỗi, làm mất độ chính xác của ảnh Kết quả của nhận dạng ảnh phụ thuộc rất nhiềuvào công đoạn này.

(4) Biểu diễn và mô tả ảnh: Đầu ra của ảnh sau phân đoạn chứa các điểm ảnh của

vùng ảnh và mã liên kết với các vùng lân cận Đưa ra kết quả ảnh

(5) Nhận dạng và giải thích: Quá trình xác định ảnh thu được bằng cách so sánh với

ảnh gốc ban đầu

(6) Cơ sở tri thức: Ảnh sau khi được phân tích, sẽ rút ra tri thức cần dùng.

Ứng dụng của phân cụm ảnh.

- Bộ phận cấu thành cơ bản trong nhiều ứng dụng về xử lý ảnh

- Hình ảnh cấu hình và bộ chuyển đổi dùng để chuyển đổi ra ảnh kỹ thuật số, vàcuối cùng là đầu ra của hệ thống

Trang 23

CHƯƠNG 2: MÔ HÌNH MAPREDUCE TRONG PHÂN TÍCH DỮ LIỆU

LỚN 2.1 Mô hình MapReduce.

2.1.1 Tổng quan về mô hình MapReduce.

Tại sao cần MapReduce ?

- Xử lý dữ liệu với quy mô lớn: Muốn sử dụng 1000 CPU, mong muốn một mô

hình quản lý đơn giản

- Kiến trúc: Quản lý tiến trình song song và phân tán, quản lý sắp xếp truy

xuất lịch trình I/O, theo dõi trạng thái dữ liệu, quản lý số lượng lớn dữ liệu

có quan hệ phụ thuộc nhau, xử lý lỗi, …

- Cách tiếp cận: Chia để trị (chia nhỏ các vấn đề lớn thành các vấn đề nhỏ, xử

lý song song từng việc nhỏ và tổng hợp kết quả)

Định nghĩa:

“MapReduce là mô hình lập trình dùng cho xử lý tính toán song song và phân tán trên hệ thống phân tán, là công nghệ chính của việc sử dụng điện toán đám mây để xử lý một lượng lớn dữ liệu” do google đề xuất Nó bao gồm hai chức

năng cơ bản: "Map" và "Reduce" được xác định bởi người dùng [5]

Hình 10 Logo mô hình MapReduce.

Ý tưởng chính: Trải qua 2 bước.

Bước 1: Phân rã từ nghiệp vụ chính (do người dùng muốn thể hiện) thành các công

việc nhỏ sau đó chia từng công việc con này về các máy tính trong hệ thống thựchiện xử lý một cách song song

Bước 2: Thu thập lại các kết quả.

Trang 24

2.1.2 Kiến trúc của MapReduce.

Kiến trúc MapReduce:

Hình 11 Kiến trúc của MapReduce.

- Client Program: Chương trình MapReduce mà phía người dùng đang sử dụng và

tiến hành chạy một MapReduce Job

- JobTracker: Tiếp nhận job và đảm nhận vai trò điều phối job này, nó có vai trò

như bộ não của MapReduce Sau đó, nó chia nhỏ job thành các task, tiếp theo sẽ lênlịch phân công các task (map task, reduce task) này đến các tasktracker để thựchiện Kèm theo vai trò của mình, JobTracker cũng có cấu trúc dữ liệu riêng củamình để sử dụng cho mục đích lưu trữ, như nó sẽ lưu lại tiến độ tổng thể của từngjob, lưu lại trang thái của các TaskTracker để thuận tiện cho thao tác lên lịch phâncông task, lưu lại địa chỉ lưu trữ của các output của các TaskTracker thực hiệnmaptask trả về

- TaskTracker: Đơn giản nó chỉ tiếp nhận maptask hay reducetask từ JobTracker

để sau đó thực hiện Và để giữ liên lạc với JobTracker, Mapreduce cung cấp cơ chếgửi heartbeat từ TaskTracker đến JobTracker cho các nhu cầu như thông báo tiến độcủa task do TaskTracker đó thực hiện, thông báo trạng thái hiện hành của nó [4]

2.1.3 Nguyên tắc hoạt động của mô hình MapReduce.

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ý dữ liệu là mục đích quan trọng nhất của MAPREDUCE

Mô hình:

Trang 25

Theo google's mô hình lập trình MapReduce thực thi như sau [13].

Hình 12 Mô hình hoạt động của MapReduce.

Quy trình này gồm 2 phần:

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

đoạn nhỏ hơn Gọi là các split 0, split 1, split 2 đầu ra tạo giá trị trung gian

- Reduce: Từ các đầu ra trung gian sẽ tổng hợp lại để đưa ra các kết quả cuối

cùng cho master

Cụ thể:

(1): Thư viện MapReduce mà ứng dụng người dùng (User Program) sử dụng chia

các tập dữ liệu đầu vào (dữ liệu cần xử lý) thành các mảng dữ liệu dung lượng mỗiphần từ 16 megabytes đến 64 megabytes (MB) Sau đó sao chép ứng dụng thành cáctiến trình song song chạy trên các máy tính phân tán chứa dữ liệu

(2): Chương trình điều khiển Master sẽ gán mỗi hàm Map và Reduce để xử lý, đọc

dữ liệu, phân tích cặp key/value ở đầu vào và phân tích thành các cặp trung giankhác được lưu tại vùng nhớ đệm

(3) - (4): Worker là phần được gán một hàm Map và Reduce để xử lý, đọc dữ liệu,

phân tích cặp key/value ở đầu vào và phân tích thành các cặp trung gian khác đượclưu tại vùng đệm

Hàm Map:

Trang 26

(5): Định kỳ, các cặp dữ liệu trung gian sẽ được đẩy đến các worker tương ứng do

master điều khiển để hàm reducer xử lý Các thuật toán sắp xếp, so sánh phân vùng

dữ liệu sẽ được sử dụng tại giai đoạn này Các cặp dữ liệu trung gian có cùng key sẽđược sắp xếp cùng một nhóm

Hàm Reduce:

(6): Khi tất cả các tác vụ Map và Reduce đã hoàn tất thì sẽ cho ra kết quả cuối cùng

của quy trình MapReduce

Ví dụ: Cho bài toán đếm từ, công việc là đếm số lần xuất hiện của các từ trong

văn bản Công việc như vậy thì có thể phân chia thành hai phần như sau:

• Đầu vào : Một dòng của văn bản

• Đầu ra : key : từ, value : 1

• Đầu vào : key : từ, values : tập hợp các giá trị đếm được của mỗi từ

• Đầu ra : key : từ, value : tổng của từng từ khoá xuất hiện

- Phân tích:

+ Dữ liệu là văn bản, được chia thành nhiều dòng khác nhau

+ Hàm map chạy song song tạo ra các giá trị trung gian khác nhau từ tập dữ liệu + Hàm reduce cũng chạy song song, mỗi reducer xử lý một tập khóa khác nhau Tất

cả các giá trị được xử lý một cách độc lập Và giai đoạn reduce chỉ bắt đầu khi giaiđoạn map kết thúc

Mã giả:

Reduce:

Map:

Trang 27

void map (String name, String line):

// name: document name // document: line contents for each word w in line:

EmitIntermediate (w, "1");

void reduces (String word, Iterator partialCounts):

// word: a word // partialCounts: a list of aggregated partial counts int result = 0;

for each pc in partialCounts:

result += ParseInt (pc);

Emit (AsString (result));

2.2.4 Ưu và nhược điểm của mô hình MapReduce.

+ Quản lý tiến trình song song và phân tán

+ Quản lý, sắp xếp lịch trình truy xuất I/O

+ Theo dõi trạng thái dữ liệu

+ Xử lý lỗi …

- Các ứng dụng viết bằng MapReduce có tính linh hoạt, khả năng mở rộng tốt

- Dữ liệu được xử lý là locally (Các thao tác được thực hiện ngay trên node chứcnăng các block cần xử lý), vì vậy các TaskTracker sẽ không phải đi nạp dữ liệu từcác máy tính khác => Gia tăng hiệu suất về mặt thời gian và băng thông

Nhược điểm:

- Không reduce() nào được bắt đầu cho đến khi map() kết thúc

Reduce:

Trang 28

2.2.5 Ứng dụng của MapReduce

Phát triển ứng dụng với MapReduce: Trên thực tế, để triển khai mô hình ứng

dụng mô hình MapReduce với các ngôn ngữ (C/C++, Java).

Hình 13 Một số lĩnh vực áp dụng MapReduce.

- Amazon: Có thể xử lý được file log phát sinh trong quá trình bán hàng trên mạng,

phục vụ cho việc dự đoán xu hướng mua hàng của khách hàng, …

- Facebook: Có thể xử lý được khối lượng hơn 10 tỷ hình ảnh mà họ đang lưu trữ

để trích xuất thông tin về kích thước hình ảnh, phát hiện các hình ảnh xấu, …

- Một số ứng dụng khác như:

Last.fm: Là một trang web hàng đầu về nghe nhạc sử dụng MapReduce để thống kê Tại VN: Mwork sử dụng MapReduce để lưu trữ và xử lý Log.

2.2 Apache Hadoop.

2.2.1 Tổng quan về Apache Hadoop.

Khái niệm Apache Hadoop (hay Hadoop):

Theo Apache Hadoop: “Apache Hadoop là một framework dùng để chạy những ứng dụng trên một cluster lớn được xây dựng trên những phần cứng thông

thường một Hadoop hiện thực mô hình MapReduce, đây là mô hình mà ứng dụng sẽđược chia nhỏ ra thành nhiều phân đoạn khác nhau, và các phần này sẽ được chạysong song trên nhiều node khác nhau Thêm vào đó, Hadoop cung cấp 1 hệ thốngfile phân tán (HDFS) cho phép lưu trữ dữ liệu lên trên nhiều node Cả MapReduce

và HDFS đều được thiết kế sao cho framework sẽ tự động quản lý được các lỗi, các

hư hỏng về phần cứng của các node."

Trang 29

Hình 14 Logo Apache Hadoop.

Sức mạnh của nền tảng Hadoop dựa trên hai thành phần phụ chính: Hệ thống tệp phân tán Hadoop (HDFS) và khung làm việc MapReduce.

Để lưu trữ dữ liệu, Hadoop dựa trên cả hệ thống tệp HDFS và cơ sở dữ liệuphi cấu trúc có tên là Apache HBase

Lợi ích của Hadoop:

+ Là một công nghệ dữ liệu lớn nổi tiếng có một cộng đồng hỗ trợ quan trọng Nóđược thiết để mở rộng quy mô từ các máy chủ đơn lẻ đến hàng ngàn máy, mỗi máycung cấp tính toán và lưu trữ cục bộ, để tránh hiệu năng thấp và sự phức tạp gặp

phải khi xử lý và phân tích dữ liệu lớn bằng các công nghệ truyền thống.

+ Khả năng xử lý nhanh các tập dữ liệu lớn , nhờ các cụm song song và hệ thống

tệp phân tán

Chẳng hạn, chỉ mất vài giây trên Hadoop để truy vấn terabyte dữ liệu thay vì 20phút trở lên trên SIEM cổ điển

+ Khả năng chạy các chương trình trong khi vẫn đảm bảo khả năng chịu lỗi ,

thường gặp trong môi trường phân tán Để đảm bảo điều đó, nó ngăn ngừa mất dữliệu bằng cách sao chép dữ liệu trên máy chủ

+ Viết bằng Java Tuy nhiên, nhờ cơ chế streaming, Hadoop cho phép phát triển cácứng dụng phân tán bằng cả java lẫn một số ngôn ngữ khác như C++, Python

+ 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 lượng mạng.

Trang 30

Hình 15 Lợi ích hadoop.

2.2.2 Kiến trúc của Apache Hadoop.

Thành phần: Hiện tại, Hadoop gồm 4 module:

Hình 16 Thành phần của hadoop.

- Core: Là kiến trúc trung tâm của hadoop, cung cấp cơ chế quản lý tài nguyên hiệu

quả, linh hoạt và bảo mật thống nhất các công cụ trên toàn hadoop cluster Đồngthời cung cấp cho các lập trình viên mọt framework duy nhất để viết các ứng dụng

sử dụng dữ liệu trên hadoop

- HDFS – Sức mạnh của Hadoop: 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ăng tối ưu hoá việc sử dụng băng thông giữa các

node Có thể được sử dụng để chạy trên một cluster lớn với hàng chục ngàn node

- 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 vaitrò là các node

- Mỗi file được chia thành 1 hay nhiều block, mỗi block sẽ có 1 block ID đểnhận diện Các block cùng 1 file sẽ có cùng kích thước Mỗi block của file sẽđược lưu trữ thành ra nhiều bản sao khác nhau vì mục đích an toàn dữ liệu

Trang 31

Hình 17 Cấu trúc cây phân cấp file của Hadoop.

Kiến trúc tổng quát:

Hình 18 Kiến trúc tổng quát của HDFS.

Hoạt động đọc trên HDFS:

Trang 32

Hình 19 Hoạt động đọc trên HDFS.

Hoạt động ghi trên HDFS:

Hình 20 Hoạt động ghi trên HDFS.

- MapReduce – Sức mạnh của Hadoop : Là một mô hình lập trình cho phép bạn xử

lý dữ liệu khổng lồ được lưu trữ trong Hadoop.

HBase: Một cơ sở dữ liệu phân tán, sử dụng HDFS làm hạ tầng cho việc lưu trữ dữ

Trang 33

liệu bên dưới và cung cấp khả năng tính toán song song dựa trên MapReduce.

- HBase: một cơ sở dữ liệu phân tán, theo hướng cột (column-oriented) HBase sử

dụng HDFS làm hạ tầng cho việc lưu trữ dữ liệu bên dưới và cung cấp khả năngtính toán song song dựa trên MapReduce

- Hive: một data warehouse phân tán Hive quản lý dữ liệu được lưu trữ trên HDFS

và cung cấp một ngôn ngữ truy vấn dựa trên SQL

- Chukwa: một hệ thống tập hợp và phân tích dữ liệu Chukwa chạy các collector

(các chương trình tập hợp dữ liệu), các collector này lưu trữ dữ liệu trên HDFS và

sử dụng MapReduce để phát sinh các báo cáo

2.2.3 Các trình nền của Hadoop.

Khi “chạy Hadoop” có nghĩa là chạy một tập các trình nền - daemon, hoặccác chương trình thường trú, trên các máy chủ khác nhau trên mạng của bạn Nhữngtrình nền có vai trò cụ thể, một số chỉ tồn tại trên một máy chủ, một số có thể tồn tạitrên nhiều máy chủ Các daemon bao gồm: [14]

NameNode: Là một trình nền quan trọng nhất của Hadoop.

+ NameNode là master của HDFS để chỉ đạo các trình nền, duy trì thông tin về

cấu trúc cây phân cấp, các file thư mục và các metadata khác của hệ thống.+ Quản lý các meta-data của hệ thống HDFS như file system space, danh sáchcác file trên hệ thống và các block id tương ứng của từng file

+ Quản lý danh sách slave và tình trạng hoạt động của các DataNode

+ Điều hướng quá trình đọc/ghi dữ liệu từ client lên các DataNode

+ Đáp ứng các yêu cầu tạo/xoá các block dữ liệu từ NameNode

+ Client liên lạc trực tiếp với các trình nền DataNode để xử lý các file cục bộtương ứng với các block

Trang 34

Secondary NameNode:

+ Là một trình nền hỗ trợ giám sát trạng thái của các cụm HDFS Giống nhưNameNode, mỗi cụm có một SNN và nó thường trú trên một máy của mình.+ Nhiệm vụ: Duy trì một bản sao của meta-data trên NameNode và bản saonày sẽ được dùng để phục hồi lại NameNode nếu NameNode bị hư hỏng

JobTracker: Master MapReduce.

+ Tiếp nhận các yêu cầu thực thi MapReduce job

+ Phân chia job thành các task và phân công cho các Task Tracker thực hiện.+ Quản lý tình trạng thực hiện của Task Tracker

TaskTracker:

+ Tiếp nhận các task được Job Tracker phân công và thực hiện nó

Client gọi JobTracker bắt đầu công việc xử lý dữ liệu, JobTracker làm việc và giao các nhiệm vụ cho mỗi TaskTracker trong cluster.

Hình 21 Mô tả hoạt động của JobTracker.

Trong mỗi cluster, kiến trúc của Hadoop là master-slave (chủ-tớ): NameNode và JobTracker là Master và DataNode & TaskTracker là slave.

2.1.4 Nguyên tắc hoạt động của Hadoop MapReduce.

- Hadoop chia đầu vào cho mỗi công việc MapReduce vào các mảnh có kích thước

Trang 35

cố định gọi là các split.

- Hadoop tạo ra một task map cho mỗi split, thời gian xử lý mối split nhỏ hơn so vớithời gian xử lý toàn bộ đầu vào

=> Vì vậy xử lý các split một cách song song, thì quá trình xử lý sẽ cân bằng tải tốt

hơn Khi “chạy Hadoop” có nghĩa là chạy một tập các trình nền - daemon, hoặc cácchương trình thường trú, trên các máy chủ khác nhau trên mạng của bạn Nhữngtrình nền có vai trò cụ thể, một số chỉ tồn tại trên một máy chủ, một số có thể tồn tạitrên nhiều máy chủ

2.1.5 Ứng dụng của hadoop.

Công nghệ này đã được sử dụng rộng rãi bởi một số trang web lớn nhất thếgiới, chẳng hạn như Facebook, eBay, Amazon, Baidu, và Yahoo

- Facebook: Sử dụng Hadoop để lưu trữ các log nội bộ và kích thước của nguồn dữ

liệu Các dữ liệu này được dùng làm nguồn cho các báo cáo phân tích và máy học

Ngày đăng: 10/10/2023, 15:53

HÌNH ẢNH LIÊN QUAN

Hình  6. Quá trình phân cụm dữ liệu. - Đề tài tìm hiểu thuật toán k means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh
nh 6. Quá trình phân cụm dữ liệu (Trang 18)
Hình  9. Quy trình cơ bản trong phân cụm ảnh. - Đề tài tìm hiểu thuật toán k means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh
nh 9. Quy trình cơ bản trong phân cụm ảnh (Trang 21)
Hình  11. Kiến trúc của MapReduce. - Đề tài tìm hiểu thuật toán k means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh
nh 11. Kiến trúc của MapReduce (Trang 24)
Hình  12. Mô hình hoạt động của MapReduce. - Đề tài tìm hiểu thuật toán k means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh
nh 12. Mô hình hoạt động của MapReduce (Trang 25)
Hình  18. Kiến trúc tổng quát của HDFS. - Đề tài tìm hiểu thuật toán k means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh
nh 18. Kiến trúc tổng quát của HDFS (Trang 31)
Hình  20. Hoạt động ghi trên HDFS. - Đề tài tìm hiểu thuật toán k means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh
nh 20. Hoạt động ghi trên HDFS (Trang 32)
Hình  21. Mô tả hoạt động của JobTracker. - Đề tài tìm hiểu thuật toán k means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh
nh 21. Mô tả hoạt động của JobTracker (Trang 34)
Hình  23. Minh họa quá trình phân cụm. - Đề tài tìm hiểu thuật toán k means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh
nh 23. Minh họa quá trình phân cụm (Trang 37)
Hình  24. Lưu đồ thuật toán KMeans. - Đề tài tìm hiểu thuật toán k means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh
nh 24. Lưu đồ thuật toán KMeans (Trang 37)
Hình  24. Lưu đồ thuật toán IPKMeans. - Đề tài tìm hiểu thuật toán k means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh
nh 24. Lưu đồ thuật toán IPKMeans (Trang 47)
Hình  28. Kiến trúc của docker. - Đề tài tìm hiểu thuật toán k means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh
nh 28. Kiến trúc của docker (Trang 52)
Hình  27. Logo công nghệ docker. - Đề tài tìm hiểu thuật toán k means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh
nh 27. Logo công nghệ docker (Trang 52)
Hình  30. Cài đặt nhiều node bên trong một mạng docker. - Đề tài tìm hiểu thuật toán k means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh
nh 30. Cài đặt nhiều node bên trong một mạng docker (Trang 55)
Hình  34. Giao diện ứng dụng phân cụm. - Đề tài tìm hiểu thuật toán k means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh
nh 34. Giao diện ứng dụng phân cụm (Trang 62)
Bảng 12. Kết quả ảnh sau khi phân cụm kích thước 128x128 và 300x300. - Đề tài tìm hiểu thuật toán k means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh
Bảng 12. Kết quả ảnh sau khi phân cụm kích thước 128x128 và 300x300 (Trang 63)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w