# Nghiên cứu mô hình lập trình mapreduce

BỘ GIÁO DỤC ĐÀO TẠO
TRƯỜNG ĐẠI HỌC THĂNG LONG
---o0o---

MAP-REDUCE

CHUYÊN NGÀNH

: TOÁN TIN

GVHD

: ĐINH TRỌNG HIẾU

SVTH

:

HÀ NỘI-2018

MỤC LỤC
CHƯƠNG 1.

TỔNG QUAN VỀ MAP-REDUCE..................................................5

1.1. Giới thiệu chung..............................................................................................5
1.2. Map-Reduce là gì ?.........................................................................................5
CHƯƠNG 2.

KIẾN TRÚC MAP-REDUCE ENGINE..........................................7

2.1. Các thành phần...............................................................................................7
2.2. Cơ chế hoạt động.............................................................................................8
CHƯƠNG 3.

NGUYÊN LÝ HOẠT ĐỘNG CỦA MAP-REDUCE....................12

3.1. Quá trình Split..............................................................................................12
3.2. Quá trình Map và Shuffle............................................................................12
3.3. Quá trình Reduce..........................................................................................13
3.4. Ví dụ bài toán WordCount...........................................................................14
CHƯƠNG 4.

ƯU NHƯỢC ĐIỂM CỦA MAP-REDUCE...................................16

4.1. Ưu điểm.........................................................................................................16
4.1.1. Khả năng mở rộng...................................................................................16
4.1.2. Giải pháp hiệu quảa.a ..................................................................................16
4.1.3. Nhanh.......................................................................................................16
4.2. Nhược điểm...................................................................................................16
CHƯƠNG 5.

ỨNG DỤNG CỦA MAP-REDUCE...............................................17

5.1. Thiết kế hệ thống phân tích và xử lý mã độc..............................................17
5.1.1. Phát biểu bài toán....................................................................................17
5.1.2. Phân tích mã độc dựa trên mô hình MapReduce......................................18
5.1.3. Cơ chế Map mã độc.................................................................................19
5.1.4. Cơ chế Reduce mã độc.............................................................................20
5.1.5. Thiết kế xây dựng hệ thống......................................................................21

CHƯƠNG 6.

TỔNG KẾT.....................................................................................23

Tài liệu tham khảo.....................................................................................................24

DANH MỤC MINH HỌ

Hình 1.1: Mô hình tổng quát của Map-Reduce..............................................................5
Hình 2.1: Kiến trúc map-reduce.....................................................................................7
Hình 2.2: Cơ chế hoạt động của MapReduce.................................................................8
Hình 2.3: Mối quan hệ giữa JobTracker và Task Tracker...............................................9
Hình 2.4: Mô hình Task Tracker....................................................................................9
Hình 2.5: Mô hình JobTracker.....................................................................................10
Hình 2.6: Cơ chế hoạt động của JobTracker................................................................11
Hình 3.1: Quá trình Split..............................................................................................12
Hình 3.2: Quá trình Mapper và Shuffle trên 1 máy......................................................13
Hình 3.3: Quá trình Reducer........................................................................................13
Hình 3.4: Sơ đồ hoạt động...........................................................................................14
Hình 3.4: Ví dụ về bài toán đếm từ..............................................................................14
Hình 5.1: Mô hình tổng quan hệ thống........................................................................18
Hình 5.2: Mô hình hệ thống phân tích mã độc.............................................................18
Hình 5.3: Xử lý kết quả phân tích................................................................................20
Hình 5.4: Sơ đồ hoạt động phân tích tĩnh.....................................................................21
Hình 5.5: Sơ đồ hoạt động phân tích động...................................................................22

CHƯƠNG 1. TỔNG QUAN VỀ MAP-REDUCE
1.1. Giới thiệu chung
Năm 2004, Google công bố mô hình xử lý dữ liệu phân tán MapReduce, Mô hình này là
sáng kiến của một nhóm các kỹ sư Google, khi nghiên cứu tìm kiếm giải pháp mở rộng cỗ máy
tìm kiếm của họ. Có thể coi MapReduce là một mô hình lập trình, hay một giải thuật lập trình,
chuyên dùng để giải quyết vấn đề về xử lý dữ liệu lớn. Mô hình này cơ bản gồm hai thao tá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 máy tính cùng thực hiện - thao tác Map, sau đó tổng hợp kết quả lại - thao tác
Reduce.

Hình 1.1: Mô hình tổng quát của Map-Reduce
Trong mô hình trên, ngoài hai quá trình cơ bản là Map và Reduce đã được trình bày, còn
có thêm hai quá trình nữa là Split và Shuffle, hai quá trình này lần lượt giữ vai trò: phân chia dữ
liệu đầu vào, tạo tiền đề cho quá trình Map và gom nhóm dữ liệu đầu ra của quá trình Map, tạo
tiền đề cho quá trình Reduce.
MapReduce định nghĩa dữ liệu dưới dạng các cặp - ; ví dụ,
key có thể là tên của tập tin và value nội dung của tập tin, hoặc key là địa chỉ URL và value là
nội dung tại URL, v.v. Dữ liệu được định nghĩa theo dạng này linh hoạt hơn các bảng dữ liệu
quan hệ hai chiều truyền thống (quan hệ cha - con hay còn gọi là khóa chính - khóa phụ).
1.2. Map-Reduce là gì ?
Mô hình Map-Reduce là một mô hình lập trình giúp các ứng dụng có thể xử lý nhanh một
lượng lớn dữ liêụ trên các máy phân tán hoạt động song song, độc lập với nhau từ đó giúp rút
ngắn thời gian xử lý toàn bộ dữ liệu lớn. MapReduce có thể chạy trên các phần cứng thông
thường (commodity hardware), không đòi hỏi các server chạy MapReduce phải là các máy tính
có khả năng tính toán, lưu trữ và truy xuất mạnh mẽ. Do vậy, chi phí triển khai MapReduce sẽ
rẻ hơn.
Map-Reduce làm đơn giản hoá các giải thuật tính toán phân tán. Với Map-Reduce, bạn chỉ
cần cung cấp hai hàm Map và Reduce cùng với một số thành phần xử lý dữ liệu đầu vào. Do

vậy, các nhà phát triển ứng dụng phân tán có thể tập trung nhiều hơn cho phần logic của ứng
dụng, bỏ qua các chi tiết phức tạp của việc phân tán xử lý.
Sự ra đời của Map-Reduce đã mở ra cho các doanh nghiệp cơ hội xử lý các nguồn dữ liệu
đồ sộ với chi phí thấp và thời gian nhanh hơn. Với việc áp dụng MapReduce, Amazon có thể xử
lý được các file log phát sinh trong quá trình bán hàng trên mạng, phục vụ cho việc dự đoán xu
hướng mua hàng của khách hàng, các sản phẩm đang được mua nhiều… Facebook có thể xử lý
được khối lượng hơn 10 tỷ hình ảnh mà họ đang lưu trữ để rút trích các thông tin về kích thước
hình ảnh, phát hiện các hình ảnh xấu.
 Map : Lọc, phân loại dữ liệu và chuyển nó sang một tập hợp dữ liệu khác, trong đó các
phần tử riêng lẻ được chia thành các dữ liệu gồm (key/value).
 Reduce : Lấy đầu ra từ Map làm đầu vào và kết hợp các bộ dữ liệu (key/ value) thành
bộ dữ liệu nhỏ hơn.

CHƯƠNG 2. KIẾN TRÚC MAP-REDUCE ENGINE
2.1. Các thành phần
Client Program: Chương trình HadoopMapReduce mà client đ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 của Hadoop MapReduce. Sau đó, nó chia nhỏ job thành các task, tiếp theo sẽ lên lịch phân
của mình, JobTracker cũng có cấu trúc dữ liệu riêng của mình để sử dụng cho mục đích lưu trữ,
ví dụ như nó sẽ lưu lại tiến độ tổng thể của từng job, lưu lại trang thái của các TaskTracker để
thuận tiện cho thao tác lên lịch phân công task, lưu lại địa chỉ lưu trữ của các output của các
thực hiện. Và để giữ liên lạc với JobTracker, Hadoop Mapreduce cung cấp cơ chế gửi heartbeat
từ TaskTracker đến JobTracker cho các nhu cầu như thông báo tiến độ của task do TaskTracker
đó thực hiện, thông báo trạng thái hiện hành của nó (idle, in-progress, completed).
HDFS: là hệ thống file phân tán được dùng cho việc chia sẻ các file dùng trong cả quá
trình xử lý một job giữa các thành phần trên với nhau.

Hình 2.1: Kiến trúc map-reduce
2.2. Cơ chế hoạt động

Hình 2.2: Cơ chế hoạt động của MapReduce
Đầu tiên chương trình client sẽ yêu cầu thực hiện job và kèm theo là dữ liệu đầu vào tới
JobTracker. JobTracker sau khi tiếp nhận job này, nó sẽ thông báo ngược về chương trình client
tình trạng tiếp nhận job. Khi chương trình client nhận được thông báo nếu tình trạng tiếp nhận
hợp lệ thì nó sẽ tiến hành phân rã dữ liệu đầu vào này thành các split (khi dùng HDFS thì kích
thước một split thường bằng với kích thước của một đơn vị Block trên HDFS) và các split này
sẽ được ghi xuống HDFS. Sau đó chương trình client sẽ gửi thông báo đã sẵn sàng để
JobTracker biết rằng việc chuẩn bị dữ liệu đã thành công và hãy tiến hành thực hiện job.
Khi nhận được thông báo từ chương trình client, JobTracker sẽ đưa job này vào một stack
mà ở đó lưu các job mà các chương trình client yêu cầu thực hiện. Tại một thời điểm
JobTracker chỉ được thực hiện một job.

Sau khi một job hoàn thành, block hay fail, JobTracker sẽ lấy job khác trong stack này
(First in first out) ra thực hiện. Trong cấu trúc dữ liệu của mình, JobTrack có một job scheduler
với nhiệm vụ lấy vị trí các split (từ HDFS do chương trình client tạo), sau đó nó sẽ tạo một
danh sách các task để thực thi. Với từng split thì nó sẽ tạo một maptask để thực thi, mặc nhiên
số lượng maptask bằng với số lượng split. Còn đối với reduce task, số lượng reduce task được
xác định bởi chương trình client. Bên cạnh đó, JobTracker còn lưu trữ thông tin trạng thái và
tiến độ của tất cả các task.

Hình 2.3: Mối quan hệ giữa JobTracker và Task Tracker
Ngay khi JobTracker khởi tạo các thông tin cần thiết để chạy job, thì bên cạnh đó các
TaskTracker trong hệ thống sẽ gửi các heartbeat đến JobTracker. Hadoop cung cấp cho các
TaskTracker cơ chế gửi heartbeat đến JobTracker theo chu kỳ thời gian nào đó, thông tin bên
trong heartbeat này cho phép JobTrack biết được TaskTracker này có thể thực thi task hay. Nếu
TaskTracker còn thực thi được thì JobTracker sẽ cấp task và vị trí split tương ứng đến

Hình 2.4: Mô hình Task Tracker
Khi một TaskTracker nhận thực thi maptask, kèm theo đó là vị trí của input split
trên HDFS. Sau đó, nó sẽ nạp dữ liệu của split từ HDFS vào bộ nhớ, rồi dựa vào kiểu
format của dữ liệu input do chương trình client chọn thì nó sẽ parse split này để phát

sinh ra tập các record, và record này có 2 trường: key và value. Cho ví dụ, với kiểu input format
là text, thì tasktracker sẽ cho phát sinh ra tập các record với key là offset đầu tiên của dòng
(offset toàn cục), và value là các ký tự của một dòng. Với tập các record này, tasktracker sẽ
chạy vòng lặp để lấy từng record làm input cho hàm map để trả ra out là dữ liệu gồm
intermediate key và value. Dữ liệu output của hàm map sẽ ghi xuống bộ nhớ chính, và chúng sẽ
được sắp xếp trước ngay bên trong bộ nhớ chính.
Hình 2.5: Mô hình JobTracker
Trước khi ghi xuống local disk, các dữ liệu output này sẽ được phân chia vào các partition

(region) dựa vào hàm partition, từng partition này sẽ ứng với dữ liệu input của reduce task sau
này. Và ngay bên trong từng partition, dữ liệu sẽ được sắp xếp (sort) tăng dần theo intermediate
key, và nếu chương trình client có sử dụng hàm combine thì hàm này sẽ xử lý dữ liệu trên từng
partition đã sắp xếp rồi. Sau khi thực hiện thành công maptask thì dữ liệu output sẽ là các
partition được ghi trên local, ngay lúc đó TaskTracker sẽ gửi trạng thái completed của maptask
và danh sách các vị trí của các partition output trên localdisk của nó đến JobTracker.

Hình 2.6: Cơ chế hoạt động của JobTracker
Sau khi nạp thành công tất cả các region thì TaskTracker sẽ tiến hành merge dữ
liệu của các region theo nhiều đợt mà các đợt này được thực hiện một cách đồng thời
để làm gia tăng hiệu suất của thao tác merge. Sau khi các đợt merge hoàn thành sẽ tạo
ra các file dữ liệu trung gian được sắp xếp. Cuối cùng các file dữ liệu trung gian này sẽ
được merge lần nữa để tạo thành một file cuối cùng. TaskTracker sẽ chạy vòng lặp để
lấy từng record ra làm input cho hàm reduce, hàm reduce sẽ dựa vào kiểu format của
output để thực hiện và trả ra kết quả output thích hợp. Tất cả các dữ liệu output này sẽ
được lưu vào một file và file này sau đó sẽ được ghi xuống HDFS.

Trang 11

CHƯƠNG 3. NGUYÊN LÝ HOẠT ĐỘNG CỦA MAP-REDUCE
Ý tưởng:
 Chia vấn đề cần xử lý thành các phần nhỏ để xử lý.
 Xử lý các phần nhỏ đó một cách song song và độc lập trên các máy tính phân
tán.
 Tổng hợp các kết quả thu được để dưa ra kết quả cuối cùng.
3.1. Quá trình Split.
Để có thể phân tán công việc trên hệ thống máy tính, trước tiên cần phải phân
nhỏ khối dữ liệu đầu vào cần xử lý ra thành nhiều phần, rồi sau đó mới có thể phân
công cho mỗi máy xử lý một phần trong số đó. Quá trình phân chia dữ liệu này được
gọi là Split, Split sẽ dựa vào một bộ 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.

Hình 3.1: Quá trình Split.
3.2. Quá trình Map và Shuffle
Sau khi các input split được tạo ra, Quá trình Map được thực hiện - hệ thống sẽ
phân bố các input split về các máy xử lý, các máy được phân công sẽ tiếp nhận và xử
lý input split được giao, ta gọi quá trình diễn ra trên nội bộ mỗi máy trong quá trình
Map là Mapper. Trước khi được xử lý, input split được định dạng lại thành dữ liệu
chuẩn của MapReduce - dữ liệu có dạng các cặp . Kết thúc quá trình Mapper trên mỗi
máy, dữ liệu đầu ra cũng có dạng các cặp , chúng sẽ được chuyển sang cho quá trình
Shuffle để phân nhóm theo tiêu chí đã được định trước, chuẩn bị cho bước xử lý phân
tán tiếp theo. Như vậy, quá trình Shuffle sẽ được thực hiện một cách nội bộ trên mỗi
máy chạy Mapper.

Trang 12

Hình 2.2: Quá trình Mapper và Shuffle trên 1 máy.
3.3. Quá trình Reduce
Quá trình Shuffle diễn ra trên nhiều má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 các máy có sự thống nhất. Các
nhóm dữ liệu tương ứng với nhau trên tất cả các máy chạy Shuffle sẽ được gom lại
chuyển về cho cùng một máy xử lý, cho ra kết quả cuối cùng. Toàn bộ quá trình này
được gọi là Reduce, quá trình xử lý trên từng máy trong quá trình Reduce là quá trình
Reducer.

Hình 3.3: Quá trình Reducer
Hoạt động của MapReduce có thể được tóm tắt như sau:
 Đọc dữ liệu đầu vào
 Xử lý dữ liệu đầu vào (thực hiện hàm map)
 Sắp xếp và trộn các kết quả thu được từ các máy tính phân tán thích hợp nhất.
 Tổng hợp các kết quả trung gian thu được ( thực hiện hàm reduce)
Trang 13

 Đưa ra kết quả cuối cùng.

Hình 3.4: Sơ đồ hoạt động
3.4. Ví
dụ
bài
WordCount

toán

Hình 3.4: Ví dụ về bài toán đếm từ
Bài toán word-count (đếm từ) là bài toán dễ hiểu nhất minh hoạ cho MapReduce
(MR). Bài toán có những đặc điểm sau:
Trang 14

 File cần đếm rất lớn (quá lớn để có thể được tải lên bộ nhớ chính của 1 máy)
 Mỗi cặp quá lớn cho bộ nhớ.
Về mặt định nghĩa thuật toán, ta có thể mô tả MapReduce như sau:
 Input: dữ liệu dưới dạng Key → Value
 Lập trình viên viết 2 thủ tục:
 Map(k, v) → *
 Reduce(k', *) → *
Với:
 Map biến mỗi key k thu được bằng thành cặp .
 Reduce nhận đầu vào là khoá k' và danh sách cách giá trị v' và trả về kết quả là
cặp .
Ví dụ với hình mô tả ở trên thì Map trả về danh sách: , còn
Reduce nhận kết quả trên và trả về .

Trang 15

CHƯƠNG 4. ƯU NHƯỢC ĐIỂM CỦA MAP-REDUCE
4.1. Ưu điểm
4.1.1. Khả năng mở rộng
 Hadoop là một nền tảng có khả năng mở rộng cao. Điều này phần lớn là do
khả năng lưu trữ cũng như phân phối các tập dữ liệu lớn trên nhiều máy chủ.
Các máy chủ này có thể không tốn kém và có thể hoạt động song song. Và với
mỗi bổ sung của một máy chủ cung cấp thêm sức mạnh xử lý.
 Trái ngược với các hệ thống quản lý cơ sở dữ liệu quan hệ truyền thống
(RDMS) không thể quy mô để xử lý số lượng lớn dữ liệu, lập trình Hadoop
MapReduce cho phép các tổ chức kinh doanh chạy các ứng dụng từ một số
lượng lớn các nút có thể liên quan đến việc sử dụng hàng ngàn terabytes dữ
liệu.
4.1.2. Giải pháp hiệu quảaa
 Cấu trúc có thể mở rộng của Hadoop cũng hàm ý rằng nó là một giải pháp rất
hiệu quả về chi phí cho các doanh nghiệp cần lưu trữ dữ liệu ngày càng tăng
theo yêu cầu hiện nay.
 Trong trường hợp các hệ thống quản lý cơ sở dữ liệu quan hệ truyền thống, nó
trở nên tốn kém để đạt mức độ nhất định với Hadoop, chỉ để xử lí dữ liệu.
4.1.3. Nhanh
 Hadoop sử dụng một phương pháp lưu trữ được gọi là hệ thống tệp phân phối,
về cơ bản thực hiện một hệ thống lập bản đồ để định vị dữ liệu trong một cụm.
 Các công cụ được sử dụng để xử lý dữ liệu, chẳng hạn như lập trình
MapReduce, cũng thường nằm trong các máy chủ rất giống nhau, cho phép xử
lý dữ liệu nhanh hơn.
4.2. Nhược điểm
 Hadoop không có mô hình bảo mật và tính phức tạp cao.
 Hadoop không cung cấp lưu trữ hoặc mã hóa dữ liệu mức mạng, trong khi đây
là mối quan tâm rất lớn đối với dữ liệu ứng dụng đối tượng khách hàng cần độ
bảo mật thông tin như chính phủ, ngân hàng…
 HDFS không hiệu quả để xử lý các tập tin nhỏ.
 MapReduce không thích hợp để sử dụng các trường hợp có nhu cầu truy cập
dữ liệu thời gian thực.
 MapReduce khó biểu diễn dữ liệu đầu ra theo nhu cầu cần sử dụng.
Trang 16

CHƯƠNG 5. ỨNG DỤNG CỦA MAP-REDUCE
Các job dễ dàng sử dụng Mapreduce:
 Thống kê số từ khóa xuất hiện trong các documents.
 Thống kê số documents có chứa từ khóa.
 Thống kê số câu match với pattern trong các documents.
 Thống kê số URLs xuất hiện trong các web pages.
 Thống kê số lượt truy cập các URLs.
 Thống kê số từ khóa trên các hostnames.
 Distributed Sort.
Một số bài toán ứng dụng mô hình Map-Reduce
Khi áp dụng mô hình MapReduce, trong quá trình Map, mỗi Mapper sẽ làm việc
với một tập con của tập dữ liệu văn bản, công việc của mỗi Mapper là tìm kiếm và
đánh dấu những dòng khớp với biểu thức tìm kiếm trong tập dữ liệu văn bản mà mình
phụ trách. Kết quả của các Mapper sẽ được quá trình Reduce gom lại tạo thành kết quả
cuối cùng.
Mô hình MapReduce rất phù hợp với bài toán sắp xếp dữ liệu. Trong quá trình
Map, mỗi Mapper sẽ chỉ giữ nhiệm vụ đọc dữ liệu lên, Shuffle sẽ phân nhóm dữ liệu
theo từng khoảng giá trị, Quá trình Reduce sẽ chịu trách nhiệm sắp xếp dữ liệu, mỗi
Reducer sẽ sắp xếp dữ liệu trên khoảng giá trị được phân công.
5.1. Thiết kế hệ thống phân
tích và xử lý mã độc
5.1.1. Phát biểu bài toán
Với nhu cầu xử lý dữ liệu lớn, các mã độc trên mạng ngày càng nhiều, quá trình
phát hiện và xử lý mã độc rất phức tạp, mã độc cần thời gian xử lý ngắn hơn, do đó
hướng ứng dụng mô hình xử lý phân tán MapReduce để phân tích và xử lý mã độc
đang được quan tâm hiện nay.
Yêu cầu của hệ thống phân tích và xử lý mã độc: Tính phân tán, Tính an toàn,
Tính tự động, Tính hiệu năng

Trang 17

5.1.2. Phân tích mã độc dựa trên mô hình MapReduce
Mô hình phân tích mã độc:

Hình 5.1: Mô hình tổng quan hệ thống

Hình 5.2: Mô hình hệ thống phân tích mã độc
Hệ thống phân tích mã độc bao gồm một máy master (máy chủ) và nhiều máy
slave (máy trạm). Hệ thống tập tin phân tán HDFS sẽ lưu trữ các mã độc cần phân tích.
Trang 18

Với hệ thống này cho phép ta có thể chọn nhiều kiểu tập tin khác nhau và có thể đặt
phân tán để phân tích. Máy client sẽ gởi danh sách tập tin các mã độc đến và yêu cầu
thực hiện phân tích. Máy master sẽ xem xét những máy slave nào sẵn sàng và phân
phối, gởi địa chỉ mã độc đến để làm nhiệm vụ Map. Các máy slave làm nhiệm vụ Map
sẽ tải mã độc từ HDFS và tiến hành phân tích. Kết quả của quá trình Map sẽ được gởi
đến các máy slave để làm nhiệm vụ Reduce. Kết quả phân tích cũng chính là kết quả
của quá trình Reduce. Như vậy, ở các máy slave vừa làm nhiệm vụ Map, vừa làm
nhiệm vụ Reduce.
Ở các máy slave đều được cài thêm một hoặc nhiều máy ảo. Tùy vào cấu hình
máy chủ, việc cài đặt nhiều máy ảo sẽ giúp giảm thời gian phân tích, tăng hiệu quả xử
lý. Mục đích của việc cài đặt máy ảo là tạo ra môi trường an toàn để thực thi mã độc
sau khi mã độc được tải về từ HDFS. Các máy ảo này được lập trình để có thể chạy tự
động (tự khởi động, tự động khôi phục lại môi trường sạch, tự sao chép tập tin về phân
tích, trả kết quả cho máy slave, tự động tắt máy ảo) mà không cần sự can thiệp của con
người. Với chức năng Snapshot, sẽ giúp cho việc khôi phục lại môi trường, cấu hình
phân tích trong máy ảo trở nên nhanh chóng hoặc có thể chọn lựa các môi trường phân
tích khác nhau để phù hợp với các tập tin phân tích mã độc.
Quy trình thực hiện:
 Đầu vào
 Danh sách tập tin nghi ngờ có mã độc
 Địa chỉ mã độc
 Đầu ra
 Kết luận tập tin có nhiễm mã độc hay không
 Kết quả báo cáo chi tiết về các hành vi của mã độc
 Thống kê các mã độc được phân tích
 Kết quả xử lý, ngăn chặn, gỡ bỏ mã độc
 Sơ đồ thuật toán
 Các bước thực hiện
5.1.3. Cơ chế Map mã độc
Các máy slave làm nhiệm vụ Map sẽ nhận đầu vào là một cặp với
key là tên các mã độc, value là địa chỉ của mã độc. Dựa vào địa chỉ này, các máy cục
bộ sẽ tải các mã độc về phân tích.

Trang 19

Như vậy, quá trình hoạt động của máy slave làm nhiệm vụ Map có ba giai đoạn
chính:
 Tải mã độc về máy slave để làm nhiệm vụ Map từ HDFS
 Thực hiện chạy hoạt động phân tích tĩnh
 Chép mã độc vào máy ảo, thực hiện chạy hoạt động phân tích động
Công việc xử lý kết quả phân tích được mô tả như sau:

Hình 5.3: Xử lý kết quả phân tích
Kết quả của quá trình phân tích được xuất ra tập tin. Kết quả phân tích sẽ được
phân chia, một phần là đầu ra cho quá trình Map, một phần được lưu xuống HDFS để
phục vụ cho việc thống kê.
Việc phân tích tĩnh gồm có các thông tin cơ bản như: tên mã độc, giá trị MD5,
trạng thái mã độc, khả năng phát hiện mã độc này của các Antivirus. Trạng thái mã độc
là NOT OK nếu như mã độc đó được phát hiện, OK nếu mã độc đó không được phát
hiện, N/A nếu như có lỗi xảy ra trong quá trình phân tích. Trạng thái mã độc chính là
đầu ra của quá trình Map và sẽ là đầu vào của quá trình Reduce.
5.1.4. Cơ chế Reduce mã độc
Sau khi thực hiện xong nhiệm vụ Map, các máy slave sẽ thực hiện nhiệm vụ
Reduce. Đầu vào của các máy Reduce sẽ là cặp các
, với key là trạng thái mã độc (NOT OK, OK, N/A) và value là tên
của các mã độc. Các máy Reduce sẽ nhóm các mã độc có cùng trạng thái thành từng
nhóm.

Trang 20

5.1.5. Thiết kế xây dựng hệ thống
Chức năng phân tích tĩnh:

Hình 5.4: Sơ đồ hoạt động phân tích tĩnh

Trang 21

Chức năng phân tích động:

Hình 5.5: Sơ đồ hoạt động phân tích động

Trang 22

CHƯƠNG 6. TỔNG KẾT
Sau một thời gian tìm hiêu, nghiên cứu đến nay đề tài đã được hoàn thành. Về cơ
bản đề tài đáp ứng được các nội dung. Cụ thể đề tài đã đạt được một số kết quả chính
sau:
Tìm hiểu, nghiên cứu được một số dữ liệu phân tán. Phân tích, đánh giá các ưu
nhược điêm của thuật toán từ đó đưa ra các đề xuất cải tiến nhằm tăng hiệu quả của
thuật toán.
Nghiên cứu một mô hình lâpp̣ trình MapReduce trong việc ứng dụng vào các bài
toán xử lý một lượng lớn dữ liệu. Sử dụng MapReduce cho việc phân tích dữ liệu.
Áp dụng cấu trúc, tham chiếu các đăcp̣ trưng của mô hình MapReduce vào bài
toán dữ liệu lớn

Trang 23

TÀI LIỆU THAM KHẢO
Ekram Hossain, Dusit Niyato & Zhu Han (2009). Dynamic Spectrum Access and
Management in Cognitive Radio Networks. Cambridge University Press.
Ian F. Akyildiz, Won-Yeol Lee, Mehmet C. Vuran, Shantidev Mohanty (2006).
NeXt generation/dynamic spectrum access/cognitive radio wireless networks: A
survey. www.elsevier.com/locate/comnet.
Yonghong Zeng and Ying-Chang Liang (2007). Covariance Based Signal
Zhi Quan, Shuguang Cui, H. Vincent Poor, and Ali H. Sayed (2008).
Collaborative Wideband Sensing for Cognitive Radios. IEEE.
Wireless Systems. Springer.
Anant Sahai and Danijela Cabric (DySPAN 2005). Cyclostationary Feature
Detection. Berkeley Wireless Research Center.

Trang 24

### Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×