Luận văn thạc sĩ khoa học máy tính thuật toán đánh chỉ mục ngược với mapreduce và ứng dung trong việc ̣ đánh giá ý kiến của học sinh hòa bình trên mạng xã hội

20 3 0
Luận văn thạc sĩ khoa học máy tính thuật toán đánh chỉ mục ngược với mapreduce và ứng dung trong việc ̣ đánh giá ý kiến của học sinh hòa bình trên mạng xã hội

Đ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

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG Lê Đinh Hợp Thuâ ̣t toán đánh mục ngược với MapReduce ứng du ̣ng việc đánh giá ý kiến học sinh Hòa Bình mạng xã hội Chuyên ngành: Khoa học máy tính Mã số 60 48 01 01 : Người hướng dẫn khoa học: PGS TS Đỗ Trung Tuấn Thái Nguyên, 12 - 2016 i Lời cam đoan Tôi xin cam đoan: Những kết nghiên cứu trình bày luận văn hồn tồn trung thực, tơi, khơng vi phạm điều luật sở hữu trí tuệ pháp luật Việt Nam Nếu sai, tơi hoàn toàn chịu trách nhiệm trước pháp luật TÁC GIẢ LUẬN VĂN Lê Đinh Hợp ii Lời cám ơn Tôi xin chân thành cảm ơn Trường Đại học Công nghệ thông tin Truyền thông - Đại học Thái Nguyên tạo điều kiện thuận lợi cho tơi hồn thành khóa học Tơi xin chân thành cảm ơn Thầy Cô giáo – Các nhà khoa học trực tiếp giảng dạy truyền đạt kiến thức chuyên ngành Khoa học máy tính cho tơi tháng năm học tập trường Đặc biệt xin bày tỏ lòng biết ơn chân thành sâu sắc tới PGS TS Đỗ Trung Tuấn tận tình hướng dẫn, dìu dắt bảo cho kiến thức chuyên môn thiết thực dẫn khoa học q báu để tơi hồn thành luận văn Luận văn cịn nhiều thiếu sót, mong thầy cô giáo hội đồng chấm luận văn xem xét, góp ý kiến để luận văn hồn thiện Tôi xin chân thành cảm ơn! Thái Nguyên, tháng 12 năm 2016 iii Mục lục Lời cam đoan i Lời cám ơn iii Mục lục iv Danh sách từ viết tắt vi Danh mục hình vẽ, bảng biểu vii Chương mở đầu Đặt vấn đề .9 Đối tượng phạm vi nghiên cứu 11 Hướng thực đề tài .11 Những nội dung nghiên cứu 11 CHƯƠNG MƠ HÌNH MapReduce 12 1.1 Tổng quan MapReduce 12 1.1.1 Sự quan trọng MapReduce 12 1.1.2 Các ý tưởng MapReduce 13 1.1.3 Cấu trúc liệu MapReduce 15 1.1.4 Mapper Reducer 15 1.1.5 Partitioner Combiner 17 1.2 Bộ khung thực thi 19 1.2.1 Lập lịch 19 1.2.2 Di chuyển liệu mã lệnh 19 1.2.3 Đồng hóa .20 1.2.4 Xử lý lỗi 20 1.3 Hệ thống file phân tán 20 1.3.1 Kiến trúc HDFS 21 1.3.2 Nhiệm vụ NameNode 21 1.3.3 Nhiệm vụ DataNode 22 1.3.4 Nhiệm vụ Secondary NameNode 23 CHƯƠNG 2THUẬT TOÁN XỬ LÝ DỮ LIỆU VĂN BẢN VỚI MapReduce 25 2.1 Thiết kế thuật toán MapReduce .25 iv 2.1.1 Gộp lớn cục 26 2.1.2 Bộ hai ba 30 2.1.3 Tính tốn tần số tương đối 33 2.1.4 Sắp xếp thứ cấp 36 2.2 Thuật tốn tính mục ngược để tìm kiếm liệu văn .36 2.2.1 Dị tìm Web 37 2.2.2 Thuật toán mục ngược 39 2.2.3 Cài đặt theo 41 2.2.4 Cài đặt thuật toán cải tiến 43 2.2.5 Nén mục 45 2.3 Về tìm kiếm 52 CHƯƠNG THỬ NGHIỆM THUẬT TOÁN ĐÁNH GIÁ Ý KIẾN TRÊN MẠNG XÃ HỘI 56 3.1 Mã nguồn mở Solr 56 3.1.1 Giới thiệu 56 3.1.2 Các tính Solr: 56 3.2 Mã nguồn mở Nutch .56 3.2.1 Các lý để tự xây dựng Search Engine 56 3.2.2 Các tính Nutch 57 3.3 API biểu đồ Facebook 58 3.4 Solr Hadoop tìm kiếm thử nghiệm 60 3.4.1 Sơ đồ 60 3.4.1 Cài đặt cụm máy Hadoop 62 3.4.2 Cài đặt Nutch tích hợp với Solr 67 3.4.3 Thu thập liệu .69 3.5 Thực tìm kiếm thử nghiệm tập mục thu thập 72 Kết luận 75 v Danh sách từ viết tắt CNTT Công nghệ Thông tin HDFS Hadoop Distributed File System URL Uniform Resource Locator HTML HyperText Markup Language LISP LISt Processing ML Markup Language HPC High-Performance Computing NAS Network-Attach Storage SAN Storage Area Network GFS Google File System SPOF Single Point Of Failure SNN Secondary NameNode APW Associated Press Wordstream REST Representational State Transfer PRAM Parallel Random Access Machine BSP Bulk Synchronous Parallel vi Danh mục hình vẽ, bảng biểu Hình 1.1 Mơ hình chia để trị .14 Hình 1.2 Hàm Map Fold Functional Programming 15 Hình 1.3 Hai pha Map Reduce MapReduce job 16 Hình 1.4 Mơ hình MapReduce đầy đủ thành phần .19 Hình 1.5 Kiến trúc HDFS 21 Hình 1.6 Vai trò NameNode DataNode HDFS 23 Hình 1.7 Kiến trúc HDFS đầy đủ 23 Hình 2.1 Bảo toàn trạng thái Hadoop 26 Hình 2.2 Tiến trình hoạt động chương trình WordCount 27 Hình 2.3 Thời gian chạy thuật toán "pairs" "stripes" 32 Hình 2.4 Ví dụ minh họa cặp giá trị 35 Hình 2.5 Minh họa đơn giản mục ngược 40 Hình 2.6: Minh họa đơn giản sở thuật tốn lập mục ngược MapReduce với ba mapper hai reducer 43 Hình 2.7 Mười số nguyên dương nguyên phân, γ, mã Golomb (b = 5, 10) 49 Hình 2.8 Ma trận Term-document .53 Hình 3.1 Sơ đồ hoạt động Nutch sử dụng Crawler 57 Hình 3.2 Sơ đồ đầy đủ Nutch sử dụng Search Engine 58 Hình 3.3 Facebook 58 Hình 3.4 Trao đổi qua API 59 Hình 3.5: Mơ hình tổng quan hệ thống khảo sát 60 Hình 3.6: Sơ đồ giai đoạn đánh mục 61 Hình 3.7: đánh mục với MapRedece Solr .61 Hình 3.8: Giao diện làm việc Solr 68 Hình 3.9: Giao diện làm việc Facebook Graph API 69 Hình 3.10: Access Token trình Facebook Graph API 70 vii Hình 3.11: Thu thập liệu từ trang mạng trường THPT Hồng Văn Thụ 70 Hình 3.12:Giao diên theo dõi trình làm việc MapReduce 71 Bảng 3.2: Kết thu thập liệu chế độ 72 Hình 3.13: Giao diện trang web tìm kiếm Solr 73 Bảng 3.3: Một số kết truy vấn theo chủ đề 73 viii Chương mở đầu Đặt vấn đề Trong thời đại nay, công nghệ thông tin ứng dụng lĩnh vực sống, với hệ thống máy tính người ta làm nhiều công việc, tiết kiệm thời gian, công sức tiền bạc Với phát triển vượt bậc Internet nay, lượng thông tin ngày nhiều, tăng trưởng nói tính cấp số nhân, theo nghiên cứu khoảng năm lượng tri thức nhân loại tăng gấp đôi, với lượng thông tin đồ sộ mạng việc tìm kiếm khai thác thông tin công việc quan trọng, mang lại nhiều lợi ích khoa học kinh tế Cùng với đời Internet, xuất phát triển không ngừng lĩnh vực thương mại điện tử, lĩnh vực nghiên cứu xã hội khiến cho việc xúc tiến hoạt động kinh doanh nghiên cứu, quảng bá sản phẩm dịch vụ diễn khắp kênh thông tin xã hội, đặc biêt Internet Như biết ngày thông tin đưa lên trang mạng xã hội dạng Posts nhiều người dùng để lại nhận xét (comments) thơng tin đưa lên, ta thấy kho thơng tin vơ hưu ích, ta tìm kiếm phân loại liệu ấy, thu kết khảo sát cần thiết phục vụ cho hoạt động nghiên cứu hoạt động sản xuất kinh doanh Kết khảo sát tỉ lệ "thích" (like) khơng có ý kiến vấn đề đưa Việc tìm kiếm xử lý tổng hợp thơng tin hưu ích cần phải có mơ hình đáp ứng nhu cầu việc làm việc lượng liệu lớn tốc độ cao Mơ hình MapReduce mơ hình lập trình giúp ứng dụng xử lý nhanh lượng liệu lớn liệu trện máy phần tán song song, độc lập với từ giúp rút ngắn thời gian xử lý tồn liệu MapReduce chạy phần cứng thơng thường (commodity hardware), khơng địi hỏi server chạy MapReduce phải máy tính có cấu hình đặc biết mạnh mẽ Do chi phí triển khai Mapreduce rẻ MapReduce làm đơn giản hóa giải thuật tính tốn phân tán Với MapReduce, 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, nhà phát triển ứng dụng phần tán tập trung nhiều cho phần logic úng dụng, bỏ qua chi tiết phức tạp việc phân tán xử lý Sự đời MapReduce mở cho doanh nghiện trung tâm nhiên cứu hội xử lý nguồn liệu đồ sộ với chi phí thấp thời gian nhanh Hiện nay, có nhiều cơng ty lớn triển khai sử dụng mơ hình MapReduce việc kinh doanh khảo sát Công ty Amazon sử dụng MapReduce để xử lý file log trình mua hàng khách hàng để dự đoán xu hướng mua hàng Facebook xử lý khối lượng 10 tỷ hình ảnh mà hộ lưu trữ để thu thập thơng tin hình ảnh, thu thập 15 terabyte liệu ngày vào kho liệu quy mô Petabyte để thực việc khảo sát đánh giá xu hướng người dùng Việc nghiên cứu xu hướng, đánh giá khảo sát vấn đề quy mô lớn vấn đề gặp nhiều khó khăn Trước nhà khảo sát, đánh giá ý kiến đối tượng nghiên cứu thường sử dụng phương pháp thủ công tốn nhiều thời gian để tổng hợp tin tức, chẳng hạn muốn khảo sát ý kiến học sinh số thay đổi chương trình học, người ta khơng thể lựa chọn hỏi ý kiến tất học sinh mà lựa chọn số địa điểm đặc trưng để thực khảo sát, đôi khi, kết khảo sát khơng mang tính khách quan tâm lý e ngại em học sinh Và khảo sát này, phải thực vịng vài năm có kết tổng hợp Như nhiều công sức, cải thời gian Với việc thực trạng hầu hết em lứa tuổi học sinh, sinh viên biết sử dụng thích tham gia mạng xã hội Internet ( đặc biết Facebook) việc tìm kiếm từ khóa có tần suất xuất cao phản ánh xu hướng, ý kiến người dùng việc khảo sát thủ công nhiều việc nhận kết khảo sát ý kiến Tổng hợp thông tin máy tính với hỗ trợ mơ hình MapReduce giúp thực q trình đánh giá, khảo sát ý kiến nhanh chóng mang lại hiệu quả, tiết kiệm nhiều thời gian tiền bạc Với nhu cầu cấp thiết trên, học viên thực nghiên cứu kỹ thuật mục ngược (Inverted Indexing) phương pháp thực quét lần văn sau lập danh sách thuật ngữ (từ, cụm từ) file bao gồm thơng tin kèm với thuật ngữ (term) ( vị trí, tần suất, độ quan trọng ) Các thông tin tổ chức theo cấu trúc liệu riêng gọi mục Với phương pháp đánh mục ngược kết hợp với mơ hình MapReduce giải hạn chế trước phương pháp thông kê, đánh giá ý kiến quy mơ lớn, lý học viên lựa chọn 10 đề tài "Thuật toán đánh mục ngược với MapReduce ứng dụng việc đánh giá ý kiến học sinh Hịa Bình mạng xã hội" Đối tượng phạm vi nghiên cứu Luận văn tập trung nghiên cứu vào mơ hình MapReduce, cấu trúc cách thức hoạt động Từ kết hợp với thuật toán đánh mục mục ngược để thực việc tìm kiếm thống kê kết Hướng thực đề tài  Nghiên cứu mơ hình MapReduce  Nghiên cứu thuật toán đánh mục mục ngược  Thực thử nghiệm cài đặt Những nội dung nghiên cứu Luận văn trình bày chương Các nội dung luận văn trình bày theo cấu trúc sau: Chương 1: Tổng quan MapReduce; Giới thiệu khái niệm MapReduce, số thành phần, mơ hình lập trình MapReduce hệ thống phân phối tập tin nó; Trình bày nhu cầu đánh giá ý kiến mạng xã hội khả áp dụng Chương 2: Thuật toán xử lý liệu văn với MapReduce; Trình bày thiết kế thuật toán MapReduce thuật toán mục ngược để tìm kiếm văn bản; Chương 3: Thử nghiệm ứng dụng MapReduce thuật toán đánh mục ngược để đánh giá ý kiến mạng xã hội; Trình bày mơ hình hoạt động ứng dụng đánh giá ý kiến mạng xã hội Các kết thử nghiệm hệ thống tìm kiếm đánh giá ý kiến liệu văn có sử dụng MapReduce thuật tốn tính mục ngược 11 CHƯƠNG MƠ HÌNH MapReduce 1.1 Tổng quan MapReduce 1.1.1 Sự quan trọng MapReduce Về tính thiết thực, MapReduce cung cấp công cụ hiệu để giải tốn liệu lớn Ngồi ra, MapReduce cịn quan trọng cách thay đổi việc xếp tính tốn quy mơ lớn Nói cách cơng MapReduce khơng phải mơ hình tính tốn song song đưa Mơ hình phổ biến lý thuyết khoa học máy tính có từ thập kỷ trước PRAM1 (Parallel Random Access Machine) Trong mơ hình này, lượng lớn vi xử lý chia sẻ nhớ lớn không giới hạn, hoạt động đồng thời lượng liệu chia sẻ để tạo kết Các mơ hình khác LogP2 BSP3 (Bulk Synchronous Parallel), nhiên khơng có mơ hình có thành công MapReduce MapReduce mức trừu tượng thành cơng tài ngun tính tốn mở rộng Tuy nhiên, mức trừu tượng giải phức tạp cách che dấu chi tiết đưa hành vi thiết kế tốt cho ngƣời sử dụng ứng với mức trừu tượng Chính thế, mức trừu tượng khơng thể hồn hảo, làm cho số cơng việc dễ hơn, làm số cơng việc khác khó có khơng thể thực Vấn đề làm cho việc ứng dụng MapReduce số tốn có mặt hạn chế Điều có nghĩa MapReduce khơng phải mơ hình cuối lớp mơ hình lập trình cho phép xử lý tính tốn quy mơ lớn cách hiệu http://en.wikipedia.org/wiki/Parallel_Random_Access_Machine http://en.wikipedia.org/wiki/LogP_machine http://en.wikipedia.org/wiki/Bulk_Synchronous_Parallel 12 1.1.2 Các ý tưởng MapReduce Giải toán liệu lớn đòi hỏi cách tiếp cận riêng biệt mà nhiều đối lập với mơ hình tính tốn truyền thống Dưới ý tƣởng MapReduce: Scale “out” not “up” (mở rộng không nâng cấp): Để tăng sức mạnh xử lý thay nâng cấp vi xử lý khả lưu trữ máy tính (mua server có khả xử lý cao – high-end server) giải pháp đưa tăng số lượng server thông dụng (low-end server) Giải pháp kinh tế nhiều so bổ sung số máy tính tận dụng server sẵn có giải pháp nâng cấp dẫn đến việc mua sắm lại tồn server Hơn giá thành server chuyên dụng đắt nhiều so với cụm máy tính thơng thường với khả xử lý tương đương Assume failures are common (chấp nhận việc xảy lỗi thường xuyên): Với gia tăng số lượng server cluster, lỗi xảy điều bình thường Do dịch vụ phân tán nhiều server phải tính tốn đến lỗi phần cứng phần mềm thường xuyên xảy Mơ hình lập trình MapReduce có khả xử lý lỗi thông qua số chế tự động khởi động lại task cluster node khác Move processing to the data (đưa xử lý đến liệu): Trong ứng dụng tính tốn hiệu cao truyền thống (High – Prefomance Computing HPC) Thông thường, siêu máy tính có nút xử lý (processing node) nút lưu trữ (storage node) kết nối với qua kết nối tốc độ cao Nhiều công việc nặng nề liệu địi hỏi xử lý cao Do việc tách rời việc lưu trữ liệu tính tốn tạo thắt cổ chai mạng Do hiệu chuyển thực thi xử lý đến liệu thay chuyển liệu đến nơi xử lý chúng MapReduce sử dụng kiến trúc xử lý đĩa lưu trữ đặt với Trong thiết lập vậy, tận dụng lợi liệu cục cách chạy đoạn mã xử lý cách trực tiếp khối liệu cần xử lý Hệ thống tập tin phân tán có nhiệm vụ quản lý liệu mà MapReduce xử lý Process data sequentially and avoid random access (xử lý liệu tránh truy cập ngẫu nhiên): Trong trường hợp xử lý lượng lớn liệu, dung lượng nhớ thường khơng đủ cho tồn liệu xử lý Do liệu phải lưu trữ đĩa Thời gian cho việc truy cập ngẫu nhiên thường hạn chế di chuyển đầu đọc tốc độ đĩa làm chậm công việc xử lý Để tránh hạn chế này, MapReduce thiết kế để xử lý 13 khối liệu tập liệu lớn Hide system-level details from the application developer (che giấu mức chi tiết hệ thống nhà phát triển): Để dễ dàng cho lập trình viên viết ứng dụng xử lý phân tán, MapReduce che giấu thực thi phức tạp bên Thay vào đó, MapReduce cung cấp mơ hình lập trình trừu tượng với interface đơn giản định nghĩa sẵn Phương pháp thường sử dụng để giải toán liệu lớn chia để trị Ý tưởng phân mảnh toán lớn thành toán nhỏ Các toán nhỏ độc lập với để giải song song workers khác – workers tiến trình vi xử lý vi xử lý trong vi xử lý đa nhân, xử lý máy, máy cụm máy tính Các kết trung gian từ worker cụ thể gộp lại để tạo thành kết cuối Hình 1.1 Mơ hình chia để trị MapReduce có nguồn gốc từ lập trình hàm (Functional Programming) Ví dụ điển ngơn ngữ lập trình Lisp ML Tính lập trình hàm khái niệm hàm bậc cao (higher-order functions), hàm chấp nhận tham số hàm Hai hàm bậc cao thường xây dựng sẵn Map Fold Như hình dưới, cho danh sách, Map lấy tham số hàm f (có tham số) áp dụng cho tồn phần tử danh sách Cho danh sách, Fold lấy tham số hàm g (có tham số) giá trị khởi tạo: g áp dụng cho giá trị khởi tạo phần tử danh sách, kết 14 lưu biến trung gian, tiếp tục dùng biến trung gian để phần tử thứ danh sách để làm tham số cho hàm g, công việc tiếp lặp lặp lại đến hết toàn danh sách Fold trả kết cuối giá trị cuối biến trung gian Hình 1.2 Hàm Map Fold Functional Programming Hàm Map MapReduce tương ứng với hàm Map, hàm Reduce tương ứng với hàm Fold lập trình hàm 1.1.3 Cấu trúc liệu MapReduce Các cặp key-value cấu trúc liệu MapReduce Key value nhận giá trị có kiểu số nguyên, số thực, chuỗi hay nhận kiểu giá trị có cấu trúc người dùng định nghĩa Một phần quan trọng giải thuật MapReduce việc xác định cấu trúc key-value tập liệu cần xử lý Ví dụ, tập trang web, key URL value nội dung trang HTML, đồ thị, key node id value danh sách kề node Trong số thuật tốn key sử dụng để phân biệt liệu (giống khái niệm khóa sở liệu), số thuật toán, input key không quan trọng thường bỏ qua 1.1.4 Mapper Reducer Trong MapReduce, lập trình viên định nghĩa lớp Mapper lớp Reducer với hai hàm sau:  map (k1, v1) → [ (k2, v2)]  reduce (k2, [v2]) → [ (k3, v3)] Ký hiệu […] để danh sách giá trị Đầu vào công việc MapReduce (MapReduce job) liệu lưu trữ hệ thống file phân tán (Distributed File System) Hàm map reduce cài đặt hai lớp 15 Mapper Reducer Mapper áp dụng cho cặp key-value để tạo cặp key-value trung gian Reducer áp dụng cho tất giá trị (value) ứng với key trung gian để tạo cặp key-value đầu Giữa pha map reduce phép xử lý nhóm phân tán cặp key-value trung gian dựa key Dữ liệu trung gian gởi đến reducer theo thứ tự xếp key Tuy nhiên khơng có quan hệ thứ thự thiết lập cho key reducer với Các cặp key-value đầu reducer ghi vào hệ thống file phân tán (các cặp key-value trung gian bỏ qua) Đầu cuối r file hệ thống file phân tán, r số reducer Trong phần lớn trường hợp, việc tổng hợp đầu reducer khơng cần thiết r files thường lại đầu vào cho MapReduce job khác Hình mơ tả giai đoạn MapReduce job Hình 1.3 Hai pha Map Reduce MapReduce job Ví dụ minh họa MapReduce: Ứng dụng đếm từ (Word count) tập văn  Input: Tập văn  Outut: Danh sách từ số lần xuất chúng tập văn class Mapper method Map (docId a, doc d) 16 for all term t ϵ doc d Emit (term t, count 1) class Reducer method Reduce (term t, counts[c1, c2,…]) sum ← for all count c ϵ counts[c1, c2,…] sum ← sum + c Emit (term t, count sum) Hàm Map duyệt qua từ tập văn ứng với từ tạo cặp key-value với key từ vừa gặp value = Hàm Reduce nhận đầu vào từ (term) và danh sách tần số ci bắt gặp term (các giá trị thực số 1), Reduce đơn giản cộng tất giá trị ci danh sách counts 1.1.5 Partitioner Combiner Phần làm đơn giản nhìn MapReduce, ngồi hai thành phần Mapper Reducer, thường lập trình viên phải thêm thành phần phụ nữa: 1.1.5.1 Thành phần Partitioner Nó có nhiệm vụ chia khơng gian khóa (key) trung gian sau bƣớc Map gán cặp key-value trung gian tới Reduce Hay nói cách khác, partitioner định tác vụ (task) mà cặp key-value trung gian phải chuyển đến Trong Reducer, khóa xử lý theo thứ tự xếp Partitioner đơn giản bao gồm việc tính tốn giá trị băm key sau thực phép chia lấy phần dƣ giá trị với số lượng reducer Do partitioner gán key danh sách value tới reducer có số hiệu giá trị băm vừa tính Thơng thường hàm băm phải tính tốn cho số lượng key gửi đến reducer xấp xỉ Tuy nhiên partitioner không ý đến giá trị value cặp key-value, xảy tình trạng phân bố liệu không đồng reducer 1.1.5.2 Thành phần Combiner Thành phần MapReduce đóng vai trò thành phần tối ưu giúp giảm tải việc chuyển liệu từ Mapper đến Reducer Có thể 17 xem combiner reducer nhỏ (mini-reducer) đặt đầu mapper, trước pha trộn xếp (shuffle and sort phase) gởi cặp key-value tới reducer Mỗi combiner hoạt động cô lập khơng truy xuất đến cặp key-value mapper khác Đầu vào combiner cặp key-value từ đầu mapper xử lý tất cặp key-value có key giống để chuyển thành cặp key-value (cùng định dạng đầu vào combiner có key khơng thay đổi value bị biến đổi) đầu Tuy nhiên, Reducer Combiner khơng thể hốn đổi vai trị cho 18 Hình 1.4 Mơ hình MapReduce đầy đủ thành phần 1.2 Bộ khung thực thi Một ý tưởng quan trọng MapReduce tách biệt việc xử lý phân tán (what) khỏi việc xử lý phân tán (how) Một chương trình MapReduce (Mapreduce Job), bao gồm đoạn mã cho Mapper, Reducer thêm Partioner Combiner đóng gói lại với với tham số cấu hình (ví dụ vị trí tập tin đầu vào nơi lưu trữ đầu ra) Nhà phát triển đưa chương trình lên cho node quản lý tác vụ cluster (trong Hadoop gọi JobTracker) execution framework xử lý tất thứ khác: xử lý suốt vấn đề việc thực thi mã lệnh phân tán Các chức Execution framework bao gồm: 1.2.1 Lập lịch Mỗi chương trình MapReduce chia nhỏ thành đơn vị nhỏ gọi tasks Ví dụ, map task chịu trách nhiệm xử lý khối cặp key-value (trong Hadoop gọi input split), tương tự, reduce task xử lý phần khơng gian khóa 1.2.2 Di chuyển liệu mã lệnh Ý tưởng MapReduce di chuyển mã lệnh, di chuyển liệu 19 Tuy nhiên, số trường hợp – việc tính tốn thực phải đưa liệu đến mã lệnh Trong MapReduce, việc phụ thuộc phần lớn vào hệ thống file phân tán Để có việc cục liệu, scheduler phải khởi động task node có chứa khối liệu cần thiết cho task Nếu (do chạy nhiều task), task khởi tạo node khác liệu truyền qua mạng đến node để xử lý 1.2.3 Đồng hóa Việc đồng hóa đến cách thức để tiến trình xử lý đồng thời hợp lại (“join up”), ví dụ chia sẻ kết trung gian trao đổi thông tin trạng thái Trong MapReduce, việc đồng hóa xảy pha map reduce Các cặp key-value trung gian phải gộp theo khóa, điều đạt phép toán xếp phân tán lớn tất node chạy map tasks tất node chạy reduce tasks Dữ liệu trung gian copy qua mạng, tiến trình thường gọi “shuffle and sort” Một chương trình MapReduce với m mapper r reducer có tới m x r phép tốn copy mapper có đầu đến tất reducer 1.2.4 Xử lý lỗi MapReduce framework phải hoàn thành tất tasks môi trường xảy lỗi thường xuyên Vì MapReduce thiết kế dành cho cụm máy giá rẻ (low-end) nên việc thực thi dễ xảy lỗi, đặc biệt cụm lớn, lỗi đĩa cứng RAM xảy thường xuyên MapReduce frame work phải xử lý việc 1.3 Hệ thống file phân tán Chúng ta tập trung nhiều vào việc xử lý liệu lớn Nhưng điều không phần quan trọng là: khơng có liệu khơng có để xử lý Trong tính tốn hiệu cao (HPC – High-Performance Computing) kiến trúc cụm truyền thống, việc lưu trữ xem thành phần tách biệt với việc tính tốn Có nhiều cách cài đặt khác nhau, có Network-Attach Storage (NAS) Storage Area Network (SAN) sử dụng thường xuyên Tuy nhiên với cách cài đặt chu trình xử lý khơng thay đổi: node tính tốn lấy đầu vào từ nơi lưu trữ, nạp liệu vào nhớ, xử lý liệu ghi kết ngược trở lại Khi kích thước liệu tăng lên khả xử lý phải tăng lên Nhưng khả xử lý tăng liên kết node lưu trữ node xử lý lại trở thành trở ngại Lúc để có hiệu cao cần phải có đường truyền mạng tốc độ cao (vd: 10 gigabit Ethernet, InfiniBand) Đây giải pháp hiệu kinh tế Một cách khác bỏ qua tách biệt lưu trữ tính tốn Đây ý tưởng hệ thống file phân tán bên MapReduce Google File System (GFS) cài đặt hệ thống file phân tán riêng Google Hadoop Distributed File System (HDFS) 20 ... dụng MapReduce thuật toán đánh mục ngược để đánh giá ý kiến mạng xã hội; Trình bày mơ hình hoạt động ứng dụng đánh giá ý kiến mạng xã hội Các kết thử nghiệm hệ thống tìm kiếm đánh giá ý kiến. .. Trình bày nhu cầu đánh giá ý kiến mạng xã hội khả áp dụng Chương 2: Thuật toán xử lý liệu văn với MapReduce; Trình bày thiết kế thuật tốn MapReduce thuật tốn mục ngược để tìm kiếm văn bản; Chương... toán đánh mục ngược với MapReduce ứng dụng việc đánh giá ý kiến học sinh Hịa Bình mạng xã hội" Đối tượng phạm vi nghiên cứu Luận văn tập trung nghiên cứu vào mơ hình MapReduce, cấu trúc cách

Ngày đăng: 28/02/2023, 20:12

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

Tài liệu liên quan