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

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

Đ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

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 TỔNG QUAN VỀ MAP-REDUCE 1.1 Giới thiệu chung 1.2 Map-Reduce là gì ? .5 CHƯƠNG KIẾN TRÚC MAP-REDUCE ENGINE 2.1 Các thành phần .7 2.2 Cơ chế hoạt động CHƯƠNG NGUYÊN LÝ HOẠT ĐỘNG CỦA MAP-REDUCE 12 3.1 Quá trình Split 12 3.2 Quá trình Map và Shuffle 12 3.3 Quá trình Reduce 13 3.4 Ví dụ bài tốn WordCount 14 CHƯƠNG ƯU NHƯỢC ĐIỂM CỦA MAP-REDUCE 16 4.1 Ưu điểm .16 4.1.1 Khả mở rộng 16 4.1.2 Giải pháp hiệu quảa.a 16 4.1.3 Nhanh .16 4.2 Nhược điểm 16 CHƯƠNG ỨNG DỤNG CỦA MAP-REDUCE .17 5.1 Thiết kế hệ thống phân tích và xử lý mã độc 17 5.1.1 Phát biểu toán 17 5.1.2 Phân tích mã đợc dựa 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 TỔNG KẾT 23 Tài liệu tham khảo 24 DANH MỤC MINH HỌ Hình 1.1: Mô hình tổng quát của Map-Reduce Hình 2.1: Kiến trúc map-reduce Hình 2.2: Cơ chế hoạt động của MapReduce .8 Hình 2.3: Mối quan hệ JobTracker Task Tracker .9 Hình 2.4: Mô hình Task Tracker Hình 2.5: Mô hình JobTracker 10 Hình 2.6: Cơ chế hoạt động của JobTracker 11 Hình 3.1: Quá trình Split 12 Hình 3.2: Quá trình Mapper Shuffle máy 13 Hình 3.3: Quá trình Reducer 13 Hình 3.4: Sơ đồ hoạt động 14 Hình 3.4: Ví dụ toán đếm từ 14 Hình 5.1: Mô hình tổng quan hệ thống 18 Hình 5.2: Mơ hình hệ thống phân tích mã độc 18 Hình 5.3: Xử lý kết phân tích 20 Hình 5.4: Sơ đồ hoạt động phân tích tĩnh 21 Hình 5.5: Sơ đồ hoạt động phân tích động 22 CHƯƠNG TỔNG QUAN VỀ MAP-REDUCE 1.1 Giới thiệu chung Năm 2004, Google công bố mô hình xử lý liệu phân tán MapReduce, Mô hình sáng kiến của nhóm các kỹ sư Google, nghiên cứu tìm kiếm giải pháp mở rộng cỗ máy tìm kiếm của họ Có thể coi MapReduce mơ hình lập trình, hay giải thuật lập trình, chuyên dùng để giải vấn đề xử lý liệu lớn Mô hình gồm hai thao tác Map Reduce, với ý tưởng chia công việc lớn thành nhiều công việc nhỏ, giao cho nhiều máy tính thực - thao tác Map, sau tởng hợp kết lại - thao tác Reduce Hình 1.1: Mơ hình tởng quát của Map-Reduce Trong mơ hình trên, ngồi hai quá trình Map Reduce trình bày, cịn có thêm hai quá trình Split Shuffle, hai quá trình giữ vai trò: phân chia liệu đầu vào, tạo tiền đề cho quá trình Map gom nhóm liệu đầu của quá trình Map, tạo tiền đề cho quá trình Reduce MapReduce định nghĩa liệu dạng các cặp - ; ví dụ, key tên của tập tin value nội dung của tập tin, key địa URL value nội dung URL, v.v Dữ liệu định nghĩa theo dạng linh hoạt các bảng liệu quan hệ hai chiều truyền thống (quan hệ cha - hay cịn gọi khóa - khóa phụ) 1.2 Map-Reduce là gì ? Mô hình Map-Reduce mơ hình lập trình giúp các ứng dụng xử lý nhanh lượng lớn liêụ các máy phân tán hoạt động song song, độc lập với từ giúp rút ngắn thời gian xử lý tồn liệu lớn MapReduce chạy các phần cứng thơng thường (commodity hardware), khơng địi hỏi các server chạy MapReduce phải các máy tính có khả tính toán, lưu trữ truy xuất mạnh mẽ Do vậy, chi phí triển khai MapReduce rẻ Map-Reduce làm đơn giản hoá các giải thuật tính toán phân tán Với Map-Reduce, bạn cần cung cấp hai hàm Map Reduce với số thành phần xử lý liệu đầu vào Do vậy, các nhà phát triển ứng dụng phân tán tập trung nhiều cho phần logic của ứng dụng, bỏ qua các chi tiết phức tạp của việc phân tán xử lý Sự đời của Map-Reduce mở cho các doanh nghiệp hội xử lý các nguồn liệu đồ sộ với chi phí thấp thời gian nhanh Với việc áp dụng MapReduce, Amazon xử lý các file log phát sinh quá trình bán hàng mạng, phục vụ cho việc dự đoán xu hướng mua hàng của khách hàng, các sản phẩm mua nhiều… Facebook xử lý khối lượng 10 tỷ hình ảnh mà họ lưu trữ để rút trích các thơng tin kích thước hình ảnh, phát các hình ảnh xấu Map-Reduce gồm task :  Map : Lọc, phân loại liệu chuyển sang tập hợp liệu khác, các phần tử riêng lẻ chia thành các liệu gồm (key/value)  Reduce : Lấy đầu từ Map làm đầu vào kết hợp các liệu (key/ value) thành liệu nhỏ CHƯƠNG KIẾN TRÚC MAP-REDUCE ENGINE 2.1 Các thành phần Client Program: Chương trình HadoopMapReduce mà client sử dụng tiến hành chạy MapReduce Job JobTracker: Tiếp nhận job đảm nhận vai trị điều phối job này, có vai trị não của Hadoop MapReduce Sau đó, chia nhỏ job thành các task, lên lịch phân công các task (map task, reduce task) đến các tasktracker để thực Kèm theo vai trò của mình, JobTracker có cấu trúc liệu riêng của mình để sử dụng cho mục đích lưu trữ, ví dụ lưu lại tiến độ tởng thể của job, 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ân công task, lưu lại địa lưu trữ của các output của các TaskTracker thực maptask trả TaskTracker: Đơn giản tiếp nhận maptask hay reducetask từ JobTracker để sau thực Và để giữ liên lạc với JobTracker, Hadoop Mapreduce cung cấp chế gửi heartbeat từ TaskTracker đến JobTracker cho các nhu cầu thông báo tiến độ của task TaskTracker thực hiện, thơng báo trạng thái hành của (idle, in-progress, completed) HDFS: hệ thống file phân tán dùng cho việc chia sẻ các file dùng quá trình xử lý job các thành phần với 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 của MapReduce Đầu tiên chương trình client yêu cầu thực job kèm theo liệu đầu vào tới JobTracker JobTracker sau tiếp nhận job này, thông báo ngược chương trình client tình trạng tiếp nhận job Khi chương trình client nhận thông báo tình trạng tiếp nhận hợp lệ thì tiến hành phân rã liệu đầu vào thành các split (khi dùng HDFS thì kích thước split thường với kích thước của đơn vị Block HDFS) các split ghi xuống HDFS Sau chương trình client gửi thơng báo sẵn sàng để JobTracker biết việc chuẩn bị liệu thành công tiến hành thực job Khi nhận thông báo từ chương trình client, JobTracker đưa job vào stack mà lưu các job mà các chương trình client yêu cầu thực Tại thời điểm JobTracker thực job Sau job hoàn thành, block hay fail, JobTracker lấy job khác stack (First in first out) thực Trong cấu trúc liệu của mình, JobTrack có job scheduler với nhiệm vụ lấy vị trí các split (từ HDFS chương trình client tạo), sau tạo danh sách các task để thực thi Với split thì tạo maptask để thực thi, số lượng maptask với số lượng split Còn reduce task, số lượng reduce task xác định chương trình client Bên cạnh đó, JobTracker cịn lưu trữ thơng tin trạng thái tiến độ của tất các task Hình 2.3: Mối quan hệ JobTracker Task Tracker Ngay JobTracker khởi tạo các thông tin cần thiết để chạy job, thì bên cạnh các TaskTracker hệ thống gửi các heartbeat đến JobTracker Hadoop cung cấp cho các TaskTracker chế gửi heartbeat đến JobTracker theo chu kỳ thời gian đó, thơng tin bên heartbeat cho phép JobTrack biết TaskTracker thực thi task hay Nếu TaskTracker thực thi thì JobTracker cấp task vị trí split tương ứng đến TaskTracker để thực Hình 2.4: Mơ hình Task Tracker Khi TaskTracker nhận thực thi maptask, kèm theo vị trí của input split HDFS Sau đó, nạp liệu của split từ HDFS vào nhớ, dựa vào kiểu format của liệu input chương trình client chọn thì parse split để phát sinh tập các record, record có trường: key value Cho ví dụ, với kiểu input format text, thì tasktracker cho phát sinh tập các record với key offset của dịng (offset tồn cục), value các ký tự của dòng Với tập các record này, tasktracker chạy vòng lặp để lấy record làm input cho hàm map để trả out liệu gồm intermediate key value Dữ liệu output của hàm map ghi xuống nhớ chính, chúng sắp xếp trước bên nhớ Hình 2.5: Mơ hình JobTracker Trước ghi xuống local disk, các liệu output phân chia vào các partition (region) dựa vào hàm partition, partition ứng với liệu input của reduce task sau Và bên partition, liệu sắp xếp (sort) tăng dần theo intermediate key, chương trình client có sử dụng hàm combine thì hàm xử lý liệu partition sắp xếp Sau thực thành công maptask thì liệu output các partition ghi local, lúc TaskTracker gửi trạng thái completed của maptask danh sách các vị trí của các partition output localdisk của đến JobTracker Hình 2.6: Cơ chế hoạt động của JobTracker Sau nạp thành công tất các region thì TaskTracker tiến hành merge liệu của các region theo nhiều đợt mà các đợt thực cách đồng thời để làm gia tăng hiệu suất của thao tác merge Sau các đợt merge hoàn thành tạo các file liệu trung gian sắp xếp Cuối các file liệu trung gian merge lần để tạo thành file cuối TaskTracker chạy vòng lặp để lấy record làm input cho hàm reduce, hàm reduce dựa vào kiểu format của output để thực trả kết output thích hợp Tất các liệu output lưu vào file file sau ghi xuống HDFS Trang 11 CHƯƠNG NGUYÊN LÝ HOẠT ĐỘNG CỦA MAP-REDUCE Ý tưởng:  Chia vấn đề cần xử lý thành các phần nhỏ để xử lý  Xử lý các phần nhỏ cách song song độc lập các máy tính phân tán  Tổng hợp các kết thu để dưa kết cuối 3.1 Quá trình Split Để phân tán cơng việc hệ thống máy tính, trước tiên cần phải phân nhỏ khối liệu đầu vào cần xử lý thành nhiều phần, sau phân cơng cho máy xử lý phần số Quá trình phân chia liệu gọi Split, Split dựa vào tiêu chí đặt trước để chia nhỏ liệu, mảnh liệu chia nhỏ gọi input split Hình 3.1: Quá trình Split 3.2 Quá trình Map và Shuffle Sau các input split tạo ra, Quá trình Map thực - hệ thống phân bố các input split các máy xử lý, các máy phân công tiếp nhận xử lý input split giao, ta gọi quá trình diễn nội máy quá trình Map Mapper Trước xử lý, input split định dạng lại thành liệu chuẩn của MapReduce - liệu có dạng các cặp Kết thúc quá trình Mapper máy, liệu đầu có dạng các cặp , chúng chuyển sang cho quá trình Shuffle để phân nhóm theo tiêu chí định trước, chuẩn bị cho bước xử lý phân tán Như vậy, quá trình Shuffle thực cách nội máy chạy Mapper Trang 12 Hình 2.2: Quá trình Mapper Shuffle máy 3.3 Quá trình Reduce Quá trình Shuffle diễn nhiều máy sử dụng chung tiêu chí định trước, nên việc phân nhóm liệu các máy có thống Các nhóm liệu tương ứng với tất các máy chạy Shuffle gom lại chuyển cho máy xử lý, cho kết cuối Toàn quá trình gọi Reduce, quá trình xử lý máy quá trình Reduce quá trình Reducer Hình 3.3: Quá trình Reducer Hoạt động MapReduce được tóm tắt sau:  Đọc liệu đầu vào  Xử lý liệu đầu vào (thực hàm map)  Sắp xếp trộn các kết thu từ các máy tính phân tán thích hợp  Tổng hợp các kết trung gian thu ( thực hàm reduce) Trang 13  Đưa kết cuối Hình 3.4: Sơ đồ hoạt đợng 3.4 Ví dụ bài WordCount tốn Hình 3.4: Ví dụ toán đếm từ Bài toán word-count (đếm từ) toán dễ hiểu minh hoạ cho MapReduce (MR) Bài toán có đặc điểm sau: Trang 14  File cần đếm lớn (quá lớn để tải lên nhớ của máy)  Mỗi cặp quá lớn cho nhớ Về mặt định nghĩa thuật toán, ta mô tả MapReduce sau:  Input: liệu dạng Key → Value  Lập trình viên viết thủ tục:  Map(k, v) → *  Reduce(k', * Với:  Map biến key k thu thành cặp  Reduce nhận đầu vào khoá k' danh sách cách giá trị v' trả kết cặp

Ngày đăng: 13/01/2019, 15:03

Từ khóa liên quan

Mục lục

  • CHƯƠNG 1. TỔNG QUAN VỀ MAP-REDUCE

    • 1.1. Giới thiệu chung

    • 1.2. Map-Reduce là gì ?

    • CHƯƠNG 2. KIẾN TRÚC MAP-REDUCE ENGINE

      • 2.1. Các thành phần

      • 2.2. Cơ chế hoạt động

      • CHƯƠNG 3. NGUYÊN LÝ HOẠT ĐỘNG CỦA MAP-REDUCE

        • 3.1. Quá trình Split.

        • 3.2. Quá trình Map và Shuffle

        • 3.3. Quá trình Reduce

        • 3.4. Ví dụ bài toán WordCount

        • CHƯƠNG 4. ƯU NHƯỢC ĐIỂM CỦA MAP-REDUCE

          • 4.1. Ưu điểm

            • 4.1.1. Khả năng mở rộng

            • 4.1.2. Giải pháp hiệu quả̉̉̉̉̉

            • 4.1.3. Nhanh

            • 4.2. Nhược điểm

            • CHƯƠNG 5. ỨNG DỤNG CỦA MAP-REDUCE

              • 5.1. Thiết kế hệ thống phân tích và xử lý mã độc

                • 5.1.1. Phát biểu bài toán

                • 5.1.2. Phân tích mã độc dựa trên mô hình MapReduce

                • 5.1.3. Cơ chế Map mã độc

                • 5.1.4. Cơ chế Reduce mã độc

                • 5.1.5. Thiết kế xây dựng hệ thống

                • CHƯƠNG 6. TỔNG KẾT

                • Tài liệu tham khảo

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

Tài liệu liên quan