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

Nghiên cứu ứng dụng mô hình mapreduce để giải quyết bài toán đồ thị

31 660 3
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

Định dạng
Số trang 31
Dung lượng 1,86 MB

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

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA PHAODAVANH HONGSOUVANH NGHIÊN CỨU ỨNG DỤNG MÔ HÌNH MAPREDUCE ĐỂ GIẢI QUYẾT BÀI TOÁN ĐỒ THỊ Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số: 60.48.01.01 TÓM TẮT LUẬN VĂN TH

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA

PHAODAVANH HONGSOUVANH

NGHIÊN CỨU ỨNG DỤNG MÔ HÌNH MAPREDUCE

ĐỂ GIẢI QUYẾT BÀI TOÁN ĐỒ THỊ

Chuyên ngành: KHOA HỌC MÁY TÍNH

Mã số: 60.48.01.01

TÓM TẮT LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Đà Nẵng - Năm 2017

Trang 2

Người hướng dẫn khoa học: PGS.TS Nguyễn Tấn Khôi

Phản biện 1: PGS.TSKH Trần Quốc Chiến

Phản biện 2: PGS.TS Lê Mạnh Thạnh

Luận văn được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ khoa học máy tính họp tại Trường Đại học Bách khoa vào ngày 06 tháng 01 năm 2018

Có thể tìm hiểu luận văn tại:

- Trung tâm Học liệu, Đại học Đà Nẵng tại Trường Đại học Bách khoa

- Thư viện Khoa Công nghệ thông tin Trường Đại học Bách khoa –ĐHĐN

Trang 3

NGHIÊN CỨƯ ỨNG DỤNG MAPREDUCE

ĐỂ GIẢI QUYẾT BÀI TOÁN ĐỒ THỊ Học viên: Phaodavanh Hongsouvanh

Chuyên ngành: Khoa học máy tính

Mã số:60.48.01.01 Khóa: 32.KMT

Trường Đại học Bách khoa – ĐHĐN

Tóm tắt - Với sự phát triển của công nghệ, lượng dữ liệu lưu trữ càng ngày càng lớn Điều này đặt ra nhiều thách thức Để xử lý lượng dữ liệu khổng lồ

đó, rất nhiều công nghệ đã ra đời Trong đó phải kể đến công nghệ tính toán phân tán Chúng ta có thể thấy sự thành công của các công ty như Google, Facebook trong thời đại bùng nổ về công nghệ hiện nay Mô hình MapReduce cho phép xử lý tốt bài toán với lượng dữ liệu lớn có các tác vụ phân tích và tính toán phức tạp không lường trước được; Có thể tiến hành chạy song song trên các máy phân tán một cách chính xác và hiệu quả Với nhu cầu xử lý dữ liệu lớn, thời gian xử lý ngắn hơn, do đó hướng ứng dụng MapReduce để giải các bài toán đồ thị

Từ khóa : Hadoop – MapReduce; Lý thuyết đồ thị; Cây khủng nhỏ nhất;

Dữ liệu lớn; Bài toán đồ thị

Trang 4

RESEARCH THE MODEL’S MAPREDUCE APPLICATION

TO SOLVE MATHEMATICAL GRAPHS

Abstract - With the development of technology, the amount of data storage

is growing This poses many challenges To handle the huge amount of data,

a lot of the technology was born Which are the distributed computing technology We can see the success of companies like Google, Facebook in the boom times of the current technology The model's MapReduce allows processing large data quantities to be analytical tasks and complex calculations not foreseen; Can proceed to run in parallel on distributed machines precisely and efficiently with the needs of large data handling, shorter processing time, so that's MapReduce applications oriented to solve mathematical graph

Key words : Hadoop – MapReduce; Mathematical graph ; Minimum spanning tree; Big data; Graph

Trang 5

LỜI CAM ĐOAN

Tôi xin cam đoan:

Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của PGS.TS Nguyễn Tấn Khôi

Mọi tham khảo dùng trong luận văn được trích dẫn rõ ràng và trung thực về tên tác giả, tên công trình, thời gian và địa điểm công bố

Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, tôi xin chịu hoàn toàn trách nhiệm

Tác giả luận văn

PHAODAVANH HONGSOUVANH

Trang 6

LỜI CẢM ƠN Trong quá trình thực hiện đề tài, tôi đã gặp rất nhiều khó khăn phát sinh mà nếu không có sự giúp đỡ, động viên của gia đình, các thầy cô giáo, bạn bè đồng nghiệp thì tôi khó có thể hoàn thành được luận văn này

Lời đầu tiên tôi xin gửi lời cảm ơn chân thành đến các quý thầy cô giáo, Khoa chuyên ngành Công nghệ thông tin, Trường Đại học Bách khoa đã tận tình giảng dạy, truyền đạt những kiến thức, kinh nghiệm quý báu trong suốt thời gian tôi theo học tại chương trình Các kiến thức, kinh nghiệm quý báu của các thầy cô giáo không chỉ giúp cá nhân tôi hoàn thiện hệ thống kiến thức trong học tập mà còn giúp tôi ứng dụng các kiến thức đó trong công việc hiện tại

Đặc biệt, tôi xin gởi lời cảm ơn chân thành và sâu sắc nhất đến thầy giáo PGS.TS Nguyễn Tấn Khôi, người Thầy đã tận tình hướng dẫn và tạo điều kiện tốt nhất để tôi hoàn thành luận văn này

Tôi cũng xin được bày tỏ tình cảm với gia đình, đồng nghiệp, bạn bè đã tạo điều kiện để tôi có thể dành thời gian cho khóa học Xin chân thành cảm ơn những người bạn lớp cao học K32, trong gần 2 năm qua đã luôn luôn động viên, khích lệ và hỗ trợ tôi trong quá trình học tập

Tuy có nhiều cố gắng, nhưng chắc chắn luận văn không tránh khỏi những thiếu sót nhất định Tôi rất mong nhận được ý kiến đóng góp quý báu của các thầy

cô giáo và các bạn để luận văn ngày càng được hoàn thiện hơn

Trân trọng cảm ơn!

Đà Nẵng, Ngày 16 Tháng 01 Năm 2018 Tác giả

PHAODAVANH Hongsouvanh

Trang 7

MỤC LỤC LỜI CAM ĐOAN I LỜI CẢM ƠN II MỤC LỤC III DANH MỤC CÁC TỪ VIẾT TẮT VI DANH MỤC CÁC BẢNG VI DANH MỤC CÁC HÌNH ẢNH VI

MỞ ĐẦU 1

1 LÝ DO CHỌN ĐỀ TÀI 1

2 MỤC TIÊU VÀ NHIỆM VỤ NGHIÊN CỨU 1

Mục tiêu 1

2.1 Nhiệm vụ 1

2.2 3 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 2

Đối tượng nghiên cứu của đề tài 2

3.1 Phạm vi nghiên cứu của đề tài 2

3.2 4 PHƯƠNG PHÁP NGHIÊN CỨU 2

Nghiên cứu lý thuyết 2

4.1 Nghiên cứu thực nghiệm 2

4.2 5 CẤU TRÚC LUẬN VĂN 2

6 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN CỦA ĐỀ TÀI 2

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 3

1.1 NỀN TẢNG TINH TOAN VỚI HADOOP 3

1.1.1 Hệ thống tập tin phân tán Hadoop 3

1.1.2 Các thành phần của Hadoop 3

1.1.3 Nguyên tắc hoạt động của một Hadoop MapReduce 4

1.1.4 Các tiến trình nền tảng của Hadoop 4

1.1.5 Tổng quan của một Hadoop cluster 4

1.1.6 Hadoop Distributed File System (HDFS) 4

1.2 MÔ HÌNH XỬ LÝ PHÂN TÁN MAPREDUCE 4

1.2.1 Tổng quan về mô hình xử lý phân tán Mapreduce 4

1.2.2 Cơ chế hoạt động của MapReduce 4

1.2.3 Quá trình xử lý MapReduce 5

1.2.4 Hadoop MapReduce 5

Trang 8

1.2.5 MapReduce không dùng vào việc 5

1.3 LÝ THUYẾT DỒ THỊ(LTĐT) 5

1.3.1 Giới thiệu 5

1.3.2 Các khái niệm cơ bản 6

1.3.3 Cách biểu diễn đồ thị 6

1.3.4 Duyệt đồ thị 6

1.3.5 Tính liên thông của đồ thị 6

1.4 KẾT LUẬN CHƯƠNG 6

CHƯƠNG 2 MÔ HÌNH XỬ LÝ PHÂN TÁN MAPREDUCE VÀ HADOOP7 2.1 XÂY DỰNG CHƯƠNG TRÌNH MAPREDUCE JOB 7

2.1.1 Các kiểu dữ liệu mà Hadoop hỗ trợ 7

2.1.2 Mapper 8

2.1.3 Reducer 8

2.2 DỮ LIỆU ĐẦU VÀO VÀ ĐẦU RA 9

2.2.1 Dữ liệu đầu vào 9

2.2.2 Dữ liệu đầu ra 9

2.3 TẬP TIN TUẦN TỰ 9

2.4 KẾT LUẬN CHƯƠNG 9

CHƯƠNG 3 PHÂN TÍCH THIẾT KẾ BÀI TOÁN ĐỒ THỊ DỰA TRÊN MÔ HÌNH PHÂN TÁN MAPREDUCE 10

3.1 ỨNG DỤNG MAPREDUCE GIẢI QUYẾT BÀI TOÁN TÌM CÂY KHUNG NHỎ NHẤT 10

3.1.1 Giới thiệu bài toán 10

3.1.2 Tổng quan 10

3.1.3 Giải thuật Cây khung nhỏ nhất 10

3.1.4 Thuật toán Kruskal 10

3.1.5 Giải quyết bài toán Cây khung nhỏ nhất với MapReduce 12

3.2 ỨNG DỤNG MAPREDUCE GIẢI QUYẾT BAI TOAN TIM DƯỜNG DI NGẮN NHẤT 13

3.2.1 Phát biểu bài toán 13

3.2.2 Thuật toán Dijkstra 13

3.2.3 Thời gian thực hiện thuật toán 13

3.2.4 Giải quyết bài toán Shortest Path với MapReduce 13

Trang 9

3.3 ỨNG DỤNG MAPREDUCE GIẢI QUYẾT BÀI TOÁN TIM LUỒNG

CỰC ĐẠI TRONG MẠNG 14

3.3.1 Mạng 14

3.3.2 Giới thiệu bài toán 14

3.3.3 Giới thiệu thuật toán Ford – Fulkerson 14

3.3.4 Giải quyết bài toán Luồng cực đại trên mạng với MapReduce 14

3.4 THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 14

3.4.1 Thử nghiệm hệ thống 14

3.4.2 Đánh giá kết quả thử nghiệm 16

3.5 KẾT LUẬN CHƯƠNG 18

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 19

1 KẾT LUẬN 19

2 HƯỚNG PHÁT TRIỂN 19

DANH MỤC TÀI LIỆU THAM KHẢO 20

PHỤ LỤC 21

Trang 10

DANH MỤC CÁC TỪ VIẾT TẮT

LTĐT Lý thuyết đồ thị

BFS Duyệt theo chiều rộng >> Viết tắt từ tiếng Anh

DFS Duyệt theo chiều sâu>> Viết tắt từ tiếng Anh

HDFS Hadoop Distributed File System

NDFS Nutch Distributed File System

OSDI Operating System Design and Implementation

RPC Remote Perceduce Call

DANH MỤC CÁC BẢNG

DANH MỤC CÁC HÌNH ẢNH

Trang 11

MỞ ĐẦU

1 Lý do chọn đề tài

Hiện nay, với sự phát triển của công nghệ, lượng dữ liệu lưu trữ càng ngày càng lớn Điều này đặt ra nhiều thách thức Để xử lý lượng dữ liệu khổng lồ đó, rất nhiều công nghệ đã ra đời Trong đó phải kể đến công nghệ tính toán phân tán Ý tưởng chính của việc tính toán phân tán là chia bài toán thành những bài toán con và giải quyết trên các máy riêng biệt nhau được kết nối trong một cluster Chúng ta có thể thấy sự thành công của các công ty như Google, Facebook trong thời đại bùng

nổ về công nghệ hiện nay Đằng sau sự thành công đó có sự đóng góp không nhỏ của một mô hình lập trình được đưa ra bởi Google – đó là mô hình lập trình phân tán MapReduce

MapReduce là một mô hình lập trình phân tán, bao gồm hai giai đoạn chính là Map và Reduce Mô hình lập trình MapReduce được dùng để xử lý dữ liệu lớn dựa trên lý thuyết của mô hình tính toán song song và mô hình xử lý dữ liệu phân tán trên những cụm máy tính

Mô hình xử lý MapReduce cho phép Xử lý tốt bài toán với lượng dữ liệu lớn có các tác vụ phân tích và tính toán phức tạp không lường trước được; Có thể tiến hành chạy song song trên các máy phân tán một cách chính xác và hiệu quả Không cần quan tâm đến sự trao đổi dữ liệu giữa các cluster với nhau vì chúng hoạt động một cách độc lập, không cần theo dõi xử lý các tác vụ, xử lý lỗi; Có thể thực hiện mô hình MapReduce trên nhiều ngôn ngữ (Java, C/ C++, Python, Perl, Ruby) với các thư viện tương ứng

Tuy nhiên hiện nay có một số bài toán khi ứng dụng lý thuyết đồ thị để giải theo phương pháp truyền thống thường thì có thời gian tính toán lớn Việc giải bài toán này với tính chất tuần tự của giải thuật tuần tự khi số đỉnh của đồ thị lên đến hàng chục ngàn đỉnh sẽ gặp phải những vấn đề như thời gian thực hiện chương trình, tốc độ xử lý, khả năng lưu trữ của bộ nhớ…

Với nhu cầu xử lý dữ liệu lớn, thời gian xử lý ngắn hơn, do đó hướng ứng dụng MapReduce để giải các bài toán đồ thị, tôi đề xuất chọn đề tài luận văn cao học:

“Nghiên cứu ứng dụng mô hình MapReduce để giải quyết bài toán đồ thị”

1 Mục tiêu và nhiệm vụ nghiên cứuMục tiêu

Nghiên cứu ứng dụng mô hình xử lý phân tán MapReduce trên nền tảng hadoop để giải quyết một số bài toán đồ thị có kích thước dữ liệu lớn

2 Nhiệm vụ

- Tìm hiểu về nền tảng tính toán phân tán với Hadoop

Trang 12

- Tìm hiểu về mô hình tính toán MapReduce

- Tìm hiểu về LTĐT

- Xây dựng giải thuật giải quyết một số bài toán đồ thị dựa theo mô hình MapReduce

3 Đối tượng và phạm vi nghiên cứu

Đối tượng nghiên cứu của đề tài

3.1

- Cấu trúc Framework, Hadoop, Kiến trúc HDFS

- Các bài toán đồ thị

- Tìm hiểu xây dựng các hàm Map, hàm Reduce

- Triển khai mô hình hệ thống

Phạm vi nghiên cứu của đề tài

3.2

- Mô hình xử lý phân tán MapReduce trên nền tảng hadoop

- Ứng dụng mô hình MapReduce để giải quyết một số bài toán đồ thị

4 Phương pháp nghiên cứu

Nghiên cứu lý thuyết

4.1

- Tìm hiểu các mô hình xử lý phân tán

- Các bài toán đồ thị

- Giải thuật xử lý phân tán

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

4.2

- Xây dựng sơ đồ, xây dựng thuật toán để giải một số bài toán đồ thị

- Lập trình ứng dụng bằng ngôn ngữ lập trình Java

- Xây dựng chương trình thử nghiệm

5 Cấu trúc luận văn

Ngoài phần mở đầu và phần kết luận, nội dung chính của luận văn được kiến trúc thành 3 chương

Chương 1 Cơ sở lý thuyết

Chương 2 Mô hình xử lý phân tán MapReduce và Hadoop

Chương 3 Xây dựng bài toán đồ thị trên nền tảng hệ thống MapReduce

6 Ý nghĩa khoa học và thực tiễn của đề tài

Luận văn này đã tìm hiểu và xây dựng được giải thuật giải bài toán đồ thị từ giải thuật tuần tự sang xử lý song song Ứng dụng xử lý dữ liệu lớn trên mô hình phân tán khi giải các bài toán về đồ thị

Trang 13

Chương 1 CƠ SỞ LÝ THUYẾT Chương này trình bày một cách tổng quan về nền tảng tính tán phân tán với Hadoop, giới thiệu kiến trúc HDFS cũng như cách đọc ghi dữ liệu trên HDFS Trình bày về mô hình tính toán MapReduce và những kiến thức về LTĐT cũng như các thuật toán cơ bản trên đồ thị

1.1 Nền tảng tính toán với Hadoop

1.1.1 Hệ thống tập tin phân tán Hadoop

MapReduce

Một framework giúp phát triển các ứng dụng phân tán theo mô hình MapReduce một cách dễ dàng và mạnh mẽ, ứng dụng phân tán MapReduce có thể chạy trên một cluster lớn với nhiều node

HDFS

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 hóa việc sử dụng băng thông giữa các node HDFS có thể sử dụng để chạy một cluster lớn với hàng chục ngàn node

HBase

Một cơ sở dữ liệu phân tán, theo hướng cột (colunm-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ăng tính toán song song dựa trên MapReduce

Hive

Một kho dữ liệu 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

Trang 14

1.1.3 Nguyên tắc hoạt động của một Hadoop MapReduce

1.1.4 Các tiến trình nền tảng của Hadoop

1.1.5 Tổng quan của một Hadoop cluster

HDFS và MapReduce là hai thành phần chính của một Hadoop cluster Nhìn chung, kiến trúc của Hadoop là kiến trúc master-slave, và cả hai thành phần HDFS và MapReduce đều tuân theo kiến trúc master-slave này Kiến trúc của một Hadoop cluster như sau:

Hình 1.2 Tổng quan một Hadoop cluster 1.1.6 Hadoop Distributed File System (HDFS)

1.1.6.1 Giới thiệu

1.1.6.2 Kiến trúc HDFS

1.1.6.3 Quá trình đọc file trên HDFS

1.1.6.4 Ghi file trên HDFS

1.2 Mô hình xử lý phân tán Mapreduce

1.2.1 Tổng quan về mô hình xử lý phân tán Mapreduce

1.2.2 Cơ chế hoạt động của MapReduce

MapReduce hoạt động gồm hai quá trình thực hiện hai hàm Map và Reduce

Ý tưởng chính của MapReduce chính là thực hiện việc chia để trị

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

Pig

Ngôn ngữ luồng dữ liệu cấp cao và framework thực thi dùng cho tính toán song song

Trang 15

- Xử lý các vấn đề nhỏ đó một cách song song trên các máy tính phân tán hoạt động độc lập

- Tổng hợp các kết quả thu được để đưa ra kết quả cuối cùng

1.2.3 Quá trình xử lý 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 Như vậy toàn bộ quá trình MapReduce có thể hiểu như sau:

Hình 1.5 Mô hình làm việc của một công việc MapReduce

1.2.4 Hadoop MapReduce

Hadoop đã giữ nguyên cơ chế của MapReduce của Google để cài đặt thành

bộ máy thực thi MapReduce Đây là một framework cho phép dễ dàng phát triển và triển khai các ứng dụng MapReduce

1.2.5 MapReduce không dùng vào việc

- MapReduce không thay thế chiến lược Database và DataWarehouse

- MapReduce không thiết kế cho xử lý sự kiện phức tạp theo thời gian thực

- MapReduce không tốt cho xử lý giao dịch (truy cập ngẫu nhiên)

- MapReduce không tốt cho bài toán tuần tự

- Mapreduce không tốt khi xử lý nhiều tệp nhỏ

- MapReduce không tốt cho tính toán hiệu năng cao với ít dữ liệu

Tóm lại:

- MapReduce giấu sự phức tạp của mô hình lập trình cho làm việc phân tán

và khả năng chịu lỗi

- Nguyên lý thiết kế:

+ Mở rộng khả năng, giảm lo ngại về phần cứng

+ Rẻ hơn, cấu hình phần cứng thấp, giá lập trình và quản trị thấp

- Điện toán đám mây sẽ giúp sử dụng Hadoop dễ dàng hơn

1.3 Lý thuyết đồ thị(LTĐT)

1.3.1 Giới thiệu

Đồ thị là một cấu trúc rời rạc gồm các đỉnh và các cạnh nối các đỉnh đó Được mô tả hình thức G = (V, E) Trong đó, V gọi là tập các đỉnh (Vertices) và E gọi là tập các cạnh (Edges) Có thể coi E là tập các cặp (u, v) với u và v là hai đỉnh

Ngày đăng: 01/04/2018, 12:33

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