KỸ THUẬT TÍNH TOÁN SONG SONG DÙNG MAP-REDUCE VỚI HADOOP FRAMEWORK

15 1.2K 7
KỸ THUẬT TÍNH TOÁN SONG SONG DÙNG   MAP-REDUCE VỚI HADOOP FRAMEWORK

Đ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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TP HỒ CHÍ MINH BÁO CÁO TIỂU LUẬN TÍNH TOÁN LƯỚI Đề tài: KỸ THUẬT TÍNH TOÁN SONG SONG DÙNG MAP-REDUCE VỚI HADOOP FRAMEWORK GVHD: PGS-TS Nguyễn Phi Khứ HVTH: Nguyễn Hồng Thái LỚP: CH-CNTTQM K6 Mã HV: CH1101040 Tp HCM, tháng 07 năm 2013 1 Nhận xét của giáo viên: ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… ………….…… LỜI NÓI ĐẦU Tính toán song song là một lĩnh vực đã được phát triển từ lâu của ngành khoa học máy tính, và hiện tại vẫn đang là một ngành rất phát triển. Mục đích của nó là giảm thiểu thời gian thực thi của những bài toán lớn. Thế giới đang bước vào kỷ nguyên của heavy process in big-data, do vậy, việc tìm hiểu nghiên cứu về những vấn đề song song hoá là rất quan trọng. Một trong những kỹ thuật song song hoá phổ biến hiện nay, đang được sử dụng trong các hệ thống lớn như Facebook, Google, … là Map-Reduce. Về cơ bản thì mô hìnhg này được thực hiện bằng 2 thao tác: Xử lí dữ liệu thô trong hàm Map và tính toán để cho ra kết quả cuối cùng trong hàm Reduce. Điều thú vị là các hàm này có thể thực hiện một cách song song. Apache đã xây dựng framework Hadoop để hiện thực Map-Reduce. Bên cạnh việc cung cấp các thư viện để người dùng viết các hàm Map và Reduce, Hadoop còn cung cấp cơ chế để quản lí các tiến trình đang được song song hoá. Ngoài ra Hadoop còn cung cấp hệ thống lưu trữ mới (HDFS: Hadoop Distributed file system), nhằm mục đích tối ưu hoá việc streaming dữ liệu từ hard disk lên memory cũng như streaming qua mạng (Đa phần các bài toán lớn thì cần phải tính tới việc memory không đủ đáp ứng, nên việc tối ưu cách dùng hard disk là rất quan trọng). Em xin chân thành cảm ơn thầy Nguyễn Phi Khứ, giảng viên bộ môn “Tính toán lưới”, trường đại học CNTT TPHCM, đã tận tình giảng dạy để em có thể hoàn thành đề tài này. Học viên thực hiện: Nguyễn Hồng Thái Mục lục: I. Tổng quan về tính toán song song 1 1.1. Khái niệm thuật toán song song 1 1.2. Các mức độ song song 2 1.3. Phân loại các kiến trúc song song 2 1.4. Đánh giá độ phức tạp của thuật toán song song 3 II. Kỹ thuật Map-Reduce (MR) 6 1. Định nghĩa Map-Reduce: 6 2. Quy trình xử lý 6 3. Ứng dụng thực tế 9 III. Demo ứng dụng: (Trong file đính kèm) 9 IV. Kết luận: 11 1. Ưu điểm: 11 2. Hạn chế 11 3. Hướng phát triển 11 4. Tài liệu tham khảo: 11 Đồ án tiểu luận: Tính toán lưới I. Tổng quan về tính toán song song 1.1. Khái niệm thuật toán song song Tính toán song song hay xử lý song song: là quá trình xử lý thông tin trong đó nhấn mạnh việc nhiều đơn vị dữ liệu được xử lý đồng thời bởi một hay nhiều bộ xử lý để giải quyết một bài toán. Siêu máy tính: là những máy tính đa năng thông thường có tốc độ tính toán vô cùng lớn. Chúng chia làm hai loại: - Máy tính song song dựa trên bộ vi xử lý : được thiết kế với rất nhiều bộ xử lý có tốc độ vừa phải. - Siêu máy tính truyền thống (supercomputer) : ít bộ xử lý hơn nhưng tốc độ của mỗi bộ xử lý đó lại cực cao. Song song về dữ liệu (data parallelism): Là cơ chế sử dụng nhiều đơn vị xử lý thực hiện cùng một thao tác trên nhiều đơn vị dữ liệu . Song song điều khiển (control parallelism) : là cơ chế trong đó nhiều thao tác khác nhau tác động lên nhiều đơn vị dữ liệu khác nhau một cách đồng thời. Dây chuyền (pipeline) : là cơ chế chia công việc thành nhiều chặng nối tiếp, mỗi chặng được thực hiện bởi một bộ phận khác nhau. Đầu ra của bộ phận này là đầu vào của bộ phận tiếp theo. Tăng tốc : tăng tốc của thuật toán song song là tỉ số giữa thời gian thực hiện trong tình huống xấu nhất của thuật toán tuần tự tốt nhất và thời gian thực hiện cũng công việc đó của thuật toán song song. - 1 - Tăng tốc = Thời gian thực hiện trong tình huống xấu nhất theo thuật toán tuần tự nhanh nhất Thời gian thực hiện trong tình huống xấu nhất của thuật toán song song đang xét Đồ án tiểu luận: PT&TK Hệ thống theo UML 1.2. Các mức độ song song Giả sử có 10 công việc từng đôi một khác nhau thì ta giao cho 10 máy làm, ta có mức song song cao nhất, và chúng ta gọi là mức chương trình song song. Mỗi công việc ta lại chia thành các công đoạn (Task) và có thể thực hiện song song, ta gọi mức độ song song này là mức song song chương trình con. Mỗi chương trình cũng như chương trình con lại có hàng loạt câu lệnh, ta có mức độ song song câu lệnh, trong câu lệnh lại có hành loạt thao tác (operation) => mức độ song song thao tác. 1.3. Phân loại các kiến trúc song song Một trong những phân loại hay được nhắc tới là của Flynn – 1972. Michael Flynn phân các kiến trúc máy tính thành bốn loại dựa trên tương tác giữa lệnh và dữ liệu : - SIMD(single instruction stream, single data stream) Đây chính là kiến trúc tuần tự Von Neuman, trong đó tại mỗi thời điểm chỉ một lệnh được thực hiện. - MISD (multiple instruction stream, single data stream) Kiến trúc này cho phép một vài lệnh cùng thao tác trên một dữ liệu - 2 - Đồ án tiểu luận: Tính toán lưới - SIMD (single instruction stream, multiple data stream) Cho phép một lệnh được thực hiện đồng thời trên các dữ liệu khác nhau. - MIMD (multiple instruction stream, multiple data stream). Cho phép nhiều lệnh khác nhau có thể đồng thời xử lý nhiều dữ liệu khác nhau trong cùng một thời điểm. 1.4. Đánh giá độ phức tạp của thuật toán song song Trong thuật toán tuần tự chúng ta chỉ quan tâm tới độ phức tạp về thời gian và không gian, nhưng trong thuật toán song song thường có thêm một số đại lượng đo lường khác. Hơn nữa, độ phức tạp thời gian của thuật toán song song không chỉ đơn giản là việc đếm số câu lệnh cơ bản như trong thuật toán tuần tự mà thay vào đó nó phụ thuộc vào các phép toán cơ bản này có thể được thực hiện trên P (P > 1) bộ xử lý như thế nào. Bên cạnh độ phức tạp thời gian độ phức tạp về số bộ xử lý cũng là một đại lượng quan trọng trong phân tích thuật toán song song. Thiết kế thuật toán song song hiệu quả bao gồm việc lựa chọn cấu trúc dữ liệu phù hợp, phân bố bộ xử lý và cuối cùng là thực hiện thuật toán. Ba đại lượng này tác động lẫn nhau như một tổ chức tính toán. 4.1 Song song giới hạn và song song không giới hạn Độ phức tạp thời gian của thuật toán song song cũng là một hàm của kích thước dữ liệu đầu vào – n . Độ phức tạp thời gian là đại lượng quan trọng nhất của thuật toán song song bởi vì động cơ chính của song song là nhằm tăng tốc thời gian tính toán. Độ phức tạp thời gian tồi nhất (hay đơn giản là độ phức tạp thời gian) của thuật toán song song giải quyết bài toán P n với kích thước đầu vào n là một hàm f(n) cho thời gian lớn nhất từ lúc bắt đầu thực hiện thuật toán trên một hay nhiều bộ xử lý đến lúc kết thúc thuật toán bởi một hay nhiều bộ xử lý với bất kỳ bộ dữ liệu nào. Các thuật toán song song được thực hiện trên một tập các bộ xử lý nên đòi hỏi việc truyền dữ liệu giữa chúng. Vì thế nó bao hàm hai hoạt động khác nhau. Một hoạt động là tính toán (như các phép toán số học hay logic) được thực hiện một cách cục bộ trên một bộ xử lý, hoạt động khác là gửi dữ liệu giữa các bộ xử lý. Trong thuật toán - 3 - Đồ án tiểu luận: PT&TK Hệ thống theo UML song song một bước cơ bản là một tập các hoạt động cơ bản có thể được thực hiện một cách đồng thời bởi một tập các bộ xử lý – độ phức tạp thời gian của một bước cơ bản là hằng số hay O(1). Độ phức tạp thời gian của thuật toán song song được xác định bởi việc đếm số bước cơ bản và số bước chuyển giao dữ liệu, trong đó thời gian chuyển giao dữ liệu tại mỗi bước phụ thuộc vào mô hình liên kết giữa các bộ xử lý. Một số tài liệu còn gọi độ phức tạp thời gian của thuật toán song song là độ sâu. Độ phức tạp thời gian của thuật toán song song phụ thuộc vào mô hình tính toán song song được sử dụng một cách tốt nhất trên số lượng bộ xử lý. Vì thế, khi đưa ra độ phức tạp thời gian của thuật toán song song cần thiết đưa ra số lượng lớn nhất bộ xử lý cần sử dụng như một hàm của kích thước dữ liệu đầu vào n, và gọi là độ phức tạp số bộ xử lý của thuật toán. Việc tổng hợp và phân tích một thuật toán song song dưới mô hình có P bộ xử lý (P là một số nguyên cố định và P > 1) được gọi là mô hình song song có giới hạn. Ngược lại, mô hình song song không giới hạn là khi mà chúng ta có và được phép tùy ý sử dụng một số lượng bộ xử lý không giới hạn . Thuật toán song song thực hiện trên mô hình P bộ xử lý được gọi là P-song song. Nếu thuật toán P-song song cho bài toán kích thước n đòi hỏi t(n) bước song song thì được gọi là P-có thể tính toán trong thời gian t. Chúng ta giả sử rằng một thuật toán song song A giải quyết bài toán kích thước n với P bộ xử lý.Nếu tồn tại đa thức F sao cho ∀n , P ≤ F(n) , thì số lượng bộ xử lý được gọi là cận đa thức, ngược lại thì không có cận đa thức. Thuật toán song song có giới hạn là thích hợp trong thực tế. Tuy nhiên, các thuật toán song song không giới hạn có một sự quan tâm lớn về mặt lý thuyết, vì chúng đưa ra các giới hạn cho tính toán song song. Bằng trực giác điều đó có nghĩa là chúng ta giả sử tồn tại một số lượng vô hạn bộ xử lý( nghĩa là thuật toán có thể sử dụng tùy ý số lượng bộ xử lý), và cũng không có giới hạn về truyền thông và truy cập bộ nhớ, thì thời gian tính toán không thể giảm dưới một giới hạn nào đó. Thực tế số lượng bộ xử lý là có giới hạn, nên thuật toán trên mô hình song song không giới hạn chỉ có thể sử dụng trong thực tế nếu chúng được chuyển thành thuật toán P-song song. Có hai phương pháp đưa ra các phép chuyển đổi này : phân tách bài - 4 - Đồ án tiểu luận: Tính toán lưới toán hoặc là phân tách thuật toán. Ta có thuật toán song song A giải bài toán P n kích thước đầu vào n trong thời gian t 1 (n) sử dụng p 1 (n) bộ xử lý. Giờ ta đi thiết kế thuật toán mới B giải bài toán P n trong thời gian t 2 (n) sử dụng p 2 (n) bộ xử lý, trong đó p 2 (n) < p 1 (n). Cách thứ nhất phân tách bài toán thành các bài toán nhỏ hơn với kích thước m (m < n), mỗi bài toán được giải bởi thuật toán ban đầu với số lượng bộ xử lý nhỏ hơn – p 2 (m). Cách thứ hai là phân tách một thuật toán, mỗi bước của nó được phân tách thành các bước nhỏ hơn theo một cách nào đó sao cho chúng được thực hiện với một số lượng bộ xử lý nhỏ hơn. 4.2. Cận trên và cận dưới Thuật toán song song nhanh nhất được biết để giải quyết bài toán cho ta cận trên của tính toán đó. Nếu một ai đó thiết kế ra một thuật toán nhanh hơn thuật toán nhanh nhất trước đó để giải quyết cùng một bài toán thì chúng ta nói rằng cận trên mới đã được thiết lập cho việc tính toán lời giải của bài toán đó. Cận dưới xác định độ phức tạp của bài toán, nghĩa là nó đưa ra lượng thời gian tối thiểu để giải quyết bài toán sử dụng một thuật toán song song tùy ý. 4.3. Chi phí, tăng tốc, và hiệu quả của thuật toán song song Tăng tốc và hiệu suất : xét bài toán với thuật toán tuần tự tốt nhất có thời gian T s , thuật toán song song T p ; số bộ xử lý là P. Khi đó: Tăng tốc = T s /T p Hiệu suất = T s /(PT p ) Tăng tốc luôn nhỏ hơn số bộ xử lý, cố gắng đạt tới bằng nên hiệu suất đạt cùng lắm là 1. 4.4. Độ phức tạp của bài toán Dưới đây là mô hình phân lớp độ phức tạp của bài toán - 5 - Đồ án tiểu luận: PT&TK Hệ thống theo UML Nói chung xử lý song song không có tác dụng cho việc giải quyết các bài toán NP. Một bài toán thực hiện trong 400 tỷ thế kỷ trên một bộ xử lý sẽ mất 400 thế kỷ nếu chúng ta thực hiện song song hóa một cách hoàn hảo và thực hiện trên 1 tỷ bộ xử lý. Vì thế, xử lý song song được sử dụng chính cho việc tăng tốc thời gian thực hiện của bài toán P. II. Kỹ thuật Map-Reduce (MR) 1. Định nghĩa Map-Reduce: MapReduce (MR) là quy trình giúp xử lý tập hợp dữ liệu siêu lớn đặt tại các máy tính phân tán, có thể xử lý được dữ liệu không cấu trúc (dữ liệu lưu trữ dạng tệp tin hệ thống) và dữ liệu cấu trúc (dữ liệu quan hệ 2 chiều). Trong MR, các máy tính chứa dữ liệu đơn lẻ được gọi là các nút (node) MR định nghĩa dữ liệu (cấu trúc và không cấu trúc) dưới dạng cặp khóa/giá trị (key/value). Ví dụ, key có thể là tên của tập tin (file) và value nội dung của tập tin, hoặc key là địa chỉ URL và value là nội dung của URL,… Việc định nghĩa dữ liệu thành cặp key/value này linh hoạt hơn các bảng dữ liệu quan hệ 2 chiều truyền thống (quan hệ cha – con hay còn gọi là khóa chính – khóa phụ). 2. Quy trình xử lý - 6 - [...]... dụng 1 pc, không phản ánh đúng sự ưu việt của xử lí song song + Nếu chạy chương trình trên window, vui lòng change dấu "/" thành "\\" trong src code - 10 - Đồ án tiểu luận: Tính toán lưới IV Kết luận: 1 Ưu điểm: - Trình bày và giới thiệu cơ sở lí thuyết của xử lí và lập trình song song - Tìm hiểu về kỹ thuật Map-Reduce và hiện thực kỹ thuật này bằng Hadoop - Có các ví dụ demo 2 Hạn chế - Các demo còn... distributed hoàn toàn, vẫn còn dùng pseudo-distributed 3 Hướng phát triển - Tiếp tục nghiên cứu cơ sở lý thuyết về xử lí song song và các kỹ thuật, các framework khác - Ứng dụng kỹ thuật xử lí song song và map-reduce vào các dự án thực tế 4 Tài liệu tham khảo: - http://www.pcworld.com.vn/articles/cong-nghe/ungdung/2010/09/1220629/xu-ly-du-lieu-phan-tan-voi-mapreduce/ - http:/ /hadoop. apache.org/ - http://en.wikipedia.org/wiki/Parallel_computing... Xử lí song song với MapReduce dùng Hadoop: Chạy file ParallelProcessing ==> Output ra thư mục: output_NgayThangNamChayChuongTrinh + Xử lí tuần tư: Chạy file SerialProcessing ==> Output ra console - Lưu ý: + Phần data đã được đưa luôn vào src code, tuy nhiên vì dung lượng lớn nên phải cắt bỏ bớt data + Chương trình đã thử nghiệm trên 1 GB dữ liệu text, với kết quả giống nhau: Chương trinh song song... và kết quả là cặp giá trị (total count: là tổng số truy cập vào URL đó) - Dùng trong trí tuệ nhân tạo khi phân tích thống kê - Xử lý dữ liệu bản đồ (đường, địa điểm…) - Bài toán xếp thứ hạng (ranking) một trang web theo mức độ quan tâm của người dùng Bằng cách tập trung vào cốt lõi của thuật toán, sử dụng MR tiết kiệm được khá nhiều chi phí xây dựng các máy chủ lưu trữ dữ liệu Ngoài...Đồ án tiểu luận: Tính toán lưới 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 MR Quy trình này gồm 2 phần: - Map: Đầu vào là nút chủ (master node) và sau đó chia nhỏ... Yahoo, Facebook, Rackspace, …cũng đều đã sử dụng MR để xử lý dữ liệu Hiện nay người ta bắt đầu sử dụng MR cho việc phát triển các đám mây điện toán, thuật ngữ Cloud MapReduce hứa hẹn mở ra một hướng mới III Demo ứng dụng: (Trong file đính kèm) - Chương trình tính toán lấy nhiệt độ cao nhất của từng năm, dựa theo dữ liệu lấy từ NOAA National Oceanic and Atmospheric Administration (Em chỉ lấy từ năm 1901... reduce có dạng reduce(k2, list (v2)) => list(v3) (1): Thư viện MR mà chương trình người dùng (User Program) sử dụng chia các tập tin đầu vào (dữ liệu cần xử lý) thành các phần nhỏ Dung lượng mỗi phần từ 16 megabytes đến 64 megabytes (MB) Và sau đó sao chép chương trình thành các tiế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 phần dữ liệu... worker tương ứng (do master điều khiển) để hàm reduce 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 tập dữ liệu trung gian có cùng key sẽ được sắp xếp cùng một nhóm (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 MR Với MR, rất nhiều máy tính trung gian có thể sử dụng để xử lý dữ liệu mà trước kia không... Đồ án tiểu luận: Tính toán lưới 3 Ứng dụng thực tế Năm 2009 dự án mã nguồn mở Hadoop của Apache đã lập kỷ lục thế giới về sắp xếp khối dữ liệu siêu lớn (sắp xếp một petabyte dữ liệu trong 16,25 giờ và một terabyte trong 62 giây) Mỗi ngày có đến vài nghìn hay vài chục nghìn chương trình MR được chạy ở Google, và rất nhiều công ty khác trên thế giới MR là giải pháp tốt cho các dạng bài toán xử lý khối... nghìn hay vài chục nghìn chương trình MR được chạy ở Google, và rất nhiều công ty khác trên thế giới MR là giải pháp tốt cho các dạng bài toán xử lý khối lượng dữ liệu phát sinh khổng lồ với các tác vụ phân tích và tính toán phức tạp và không lường trước được, trong các lĩnh vực như khai khác dữ liệu (data mining), phân tích tài chính, mô phỏng, … Một số ví dụ: - Sắp xếp dữ liệu phân tán: một khối lượng . về tính toán song song 1 1.1. Khái niệm thuật toán song song 1 1.2. Các mức độ song song 2 1.3. Phân loại các kiến trúc song song 2 1.4. Đánh giá độ phức tạp của thuật toán song song 3 II. Kỹ thuật. liệu tham khảo: 11 Đồ án tiểu luận: Tính toán lưới I. Tổng quan về tính toán song song 1.1. Khái niệm thuật toán song song Tính toán song song hay xử lý song song: là quá trình xử lý thông tin. . Thuật toán song song thực hiện trên mô hình P bộ xử lý được gọi là P -song song. Nếu thuật toán P -song song cho bài toán kích thước n đòi hỏi t(n) bước song song thì được gọi là P-có thể tính

Ngày đăng: 09/04/2015, 18:38

Từ khóa liên quan

Mục lục

  • I. Tổng quan về tính toán song song

  • II. Kỹ thuật Map-Reduce (MR)

  • III. Demo ứng dụng: (Trong file đính kèm)

  • IV. Kết luận:

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

Tài liệu liên quan