Nghiên cứu mô hình mapreduce và nền tảng hadoop, ứng dụng xây dựng hệ thống tìm kiếm tài liệu văn bản tiếng việt

  • Số trang: 64 |
  • Loại file: PDF |
  • Lượt xem: 196 |
  • Lượt tải: 0
minhtuan

Đã đăng 15929 tài liệu

Mô tả:

TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC Đề tài: NGHIÊN CỨU MÔ HÌNH MAPREDUCE VÀ NỀN TẢNG HADOOP, ỨNG DỤNG XÂY DỰNG HỆ THỐNG TÌM KIẾM TÀI LIỆU VĂN BẢN TIẾNG VIỆT Sinh viên thực hiện: Huỳnh Phương Nam MSSV: 1091686 Giáo viên hướng dẫn: Ts. Ngô Bá Hùng MSCB: 001124 Cần Thơ, 2013 TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC Đề tài: NGHIÊN CỨU MÔ HÌNH MAPREDUCE VÀ NỀN TẢNG HADOOP, ỨNG DỤNG XÂY DỰNG HỆ THỐNG TÌM KIẾM TÀI LIỆU VĂN BẢN TIẾNG VIỆT Sinh viên thực hiện: Huỳnh Phương Nam MSSV: 1091686 Giáo viên hướng dẫn: Ts. Ngô Bá Hùng MSCB: 001124 Cán bộ phản biện: Ks. Hà Duy An MSCB: 002366 Ks. Triệu Thanh Ngoan MSCB: 002481 Luận văn được bảo vệ tại: Hội đồng chấm luận văn tốt nghiệp Bộ môn Mạng máy tính & Truyền thông, Khoa Công nghệ thông tin & Truyền thông, Trường Đại học Cần Thơ, vào ngày 07 tháng 5 năm 2013. Mã số đề tài: Có thể tìm hiểu luận văn tại: • Thư viện Khoa CNTT & TT, Trường Đại học Cần Thơ. • Website: http://www.cit.ctu.edu.vn/ LỜI CẢM ƠN Kính thưa ! Trong suốt quá trình học tập, nghiên cứu tại trường Đại học Cần Thơ, tôi đã nhận được sự hướng dẫn tận tình của quý Thầy Cô tại Trường, sự giúp đỡ, hỗ trợ hết lòng từ Gia đình, Bạn bè. Tôi xin được chân thành bày tỏ lòng biết ơn đến tất cả mọi người. Tôi xin được gửi lời cảm ơn đến quý Thầy Cô trường Đại học Cần Thơ, những người đã tận tình giúp đỡ, hướng dẫn tôi trong quá trình thực hiện Luận văn tốt nghiệp cũng như suốt quãng thời gian tôi học tập, nghiên cứu tại trường Đại học Cần Thơ. Xin chân thành gửi lời cảm ơn đến thầy Ngô Bá Hùng vì những gì Thầy đã dành cho tôi. Tôi xin được cảm ơn Gia đình, những người đã không ngừng giúp đỡ, động viên và hỗ trợ tôi trong suốt khoảng thời gian học tập xa nhà. Cuối cùng, tôi xin được gửi lời cảm ơn đến bạn bè tôi, những người đã luôn sát cánh cùng tôi, vượt qua những gian nan thử thách. Cảm ơn bạn Nguyễn Thế Anh, người đã nhiệt tình hợp tác với tôi, cùng nhau thực hiện đề tài này. Trân trọng ! Cần Thơ, ngày 29 tháng 4 năm 2013 Sinh viên thực hiện Huỳnh Phương Nam Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop MỤC LỤC KÍ HIỆU VÀ VIẾT TẮT.............................................................................iii TÓM TẮT.................................................................................................iv ABSTRACT..............................................................................................v TỪ KHÓA................................................................................................vi CHƯƠNG 1: TỔNG QUAN......................................................................1 1.1. ĐẶT VẤN ĐỀ..........................................................................................1 1.2. LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ.............................................................1 1.3. MỤC TIÊU VÀ PHẠM VI NGHIÊN CỨU................................................2 1.4. PHƯƠNG PHÁP THỰC HIỆN...............................................................2 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT...........................................................4 2.1. MÔ HÌNH XỬ LÝ DỮ LIỆU PHÂN TÁN MAPREDUCE.........................4 2.1.1. Giới thiệu chung..............................................................................4 2.1.2. Quá trình Split..................................................................................5 2.1.3. Quá trình Map và Shuffle.................................................................5 2.1.4. Quá trình Reduce............................................................................6 2.1.5. Một số bài toán ứng dụng mô hình MapReduce.............................7 2.2. HADOOP - NỀN TẢNG LẬP TRÌNH THEO MÔ HÌNH MAPREDUCE...7 2.2.1. Giới thiệu chung..............................................................................7 2.2.2. MapReduce Layer...........................................................................8 2.2.3. Hadoop Distributed File System Layer..........................................10 2.2.4. Kiểm tra tình trạng hoạt động của hệ thống Hadoop ....................14 2.3. XÂY DỰNG MỘT CHƯƠNG TRÌNH CHẠY TRÊN NỀN HADOOP.....15 2.3.1. Các lớp cơ bản trong một chương trình Hadoop..........................15 2.3.2. Quy trình hoạt động.......................................................................19 2.4. TỔNG QUAN HỆ THỐNG TÌM KIẾM...................................................21 2.4.1. Giới thiệu chung............................................................................21 2.4.2. Các bước xây dựng hệ thống tìm kiếm.........................................21 2.4.3. Tần suất xuất hiện và trọng số của từ ..........................................22 2.4.4. Mô hình không gian vectơ dùng tính độ tương đồng....................24 2.4.5. Ví dụ minh họa...............................................................................25 CHƯƠNG 3: ỨNG DỤNG CƠ SỞ LÝ THUYẾT, GIẢI QUYẾT VẤN ĐỀ ...............................................................................................................29 Trang i Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop 3.1. NGỮ CẢNH GIẢI QUYẾT VẤN ĐỀ......................................................29 3.2. GIẢI THUẬT..........................................................................................29 3.2.1. Xử lý biểu thức tìm kiếm................................................................30 3.2.2. Tính độ tương đồng.......................................................................32 3.2.3. Sắp xếp tài liệu theo độ tương đồng và xuất kết quả tìm kiếm.....33 3.3. ỨNG DỤNG HADOOP - TĂNG TỐC ĐỘ XỬ LÝ CỦA HỆ THỐNG.....35 3.3.1. Xử lý biểu thức tìm kiếm................................................................35 3.3.2. Tính độ tương đồng.......................................................................35 3.3.3. Sắp xếp tài liệu theo độ tương đồng và xuất kết quả tìm kiếm.....36 3.4. CÁC ĐỀ XUẤT VÀ CẢI TIẾN................................................................37 3.4.1. Cải tiến công thức tính độ tương đồng..........................................37 3.4.2. Khắc phục khuyết điểm của Hadoop trong tính độ tương đồng....38 3.4.3. Cải tiến cách lưu trữ trọng số tfi-df trên mỗi block trong quá trình tính độ tương đồng..................................................................................40 CHƯƠNG 4: KẾT QUẢ THỰC HIỆN.....................................................42 4.1. KẾT QUẢ THỰC HIỆN.........................................................................42 4.1.1. Phần nghiên cứu mô hình MapReduce và nền tảng Hadoop.......42 4.1.2. Phần xây dựng hệ thống xử lý yêu cầu tìm kiếm..........................42 4.2. KẾT LUẬN VÀ ĐỀ XUẤT......................................................................44 4.2.1. Phần nghiên cứu mô hình MapReduce và nền tảng Hadoop.......44 4.2.2. Phần xây dựng hệ thống xử lý yêu cầu tìm kiếm..........................45 PHỤ LỤC...............................................................................................46 TÀI LIỆU THAM KHẢO..........................................................................55 Trang ii Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop KÍ HIỆU VÀ VIẾT TẮT • TF - “Term Frequency”: Tần số xuất hiện của từ trong tài liệu. • IDF - “Inverse Document Frequency”: Tần số nghịch đảo tài liệu của từ. • TF-IDF - “Term Frequency-Inverse Document Frequency”: Trọng số của từ. • HDFS - “Hadoop Distributed File System”: Hệ thống tập tin phân tán của Hadoop. Trang iii Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop TÓM TẮT Chúng ta đang sống trong thời đại bùng nổ dữ liệu số. Mỗi ngày lượng dữ liệu lưu trữ không ngừng tăng lên và vượt ra khỏi khả năng xử lý của các hệ thống truyền thống. Đều đó đòi hỏi phải xây dựng một hệ thống mới, có khả năng xử lý được một lượng dữ liệu lớn, trong một khoảng thời gian chấp nhận được. Xuất phát từ nhu cầu đó, Hadoop đã ra đời dựa trên ý tưởng từ các bài báo về mô hình xử lý dữ liệu phân tán MapReduce của Google và Hệ thống tập tin của Google - Google File System (GFS). Hiện nay, Hadoop đã được ứng dụng rộng rãi trên khắp thế giới, tuy nhiên ở Việt Nam vẫn chưa có nhiều nghiên cứu ứng dụng công nghệ này. Hadoop hoạt động trên ý tưởng của mô hình xử lý dữ liệu phân tán Mapreduce, cụ thể là hệ thống sẽ chia nhỏ nhiệm vụ lớn cho hàng loạt máy tính cùng nhau xử lý song song. Với ý tưởng đó, Hadoop có thể dễ dàng được triển khai trên các hệ thống máy tính có sẵn chứ không cần phải đầu tư những thiết bị phần cứng cao cấp, đắt tiền nào cả. Đặc biệt, Hadoop là một dự án mã nguồn mở và hoàn toàn miễn phí. Ở Việt Nam những năm gần đây, lượng dữ liệu số tăng lên không ngừng, nhu cầu tìm kiếm tra cứu tài liệu văn bản tiếng Việt trên các kho dữ liệu lớn, cực lớn đã xuất hiện. Đề tài này nhằm nghiên cứu tổng quát mô hình MapReduce và nền tảng Hadoop, sau đó ứng dụng kết quả nghiên cứu vào việc xây dựng một công cụ tìm kiếm có xếp hạng kết quả dành cho tài liệu văn bản tiếng Việt. Trang iv Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop ABSTRACT We’re living in data explosion period. Everyday, amount storage of data continuous increases and over limits of processing of traditional systems. Therefore, building a new system is very necessary. That system can process amount of great data in an acceptable period. Starting from that demand, Hadoop was born based on ideas from articles about model of distributed data processing MapReduce of Google and Google File System (GFS). Nowadays, Hadoop has been widely applied all over the world. However, in Viet Nam, there has been little research in order to apply this technology. Hadoop acts based on model of distributed data processing MapReduce, it means that it will divide small from big task for series of computer to parallel processing. With that idea, Hadoop can be easily deployed on computer systems available. It doesn’t require investing of the high-end and expensive hardware. Especially, Hadoop is a opent-source project and extremely free In Vietnam, recent years, amount of searching text document by Vietnamese on appeared. The objective of this topic was Hadoop basis, then applying the results of ranking results for Vietnamese documents. data continuous increases, demand for great storage of data, extra- great has study general MapReduce model and research into building a search engine Trang v Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop TỪ KHÓA • MapReduce • Hadoop • HDFS • Vector space model • TF-IDF Trang vi Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop CHƯƠNG 1: TỔNG QUAN 1.1. ĐẶT VẤN ĐỀ Với sự phát triển nhanh chóng, hiện nay công nghệ thông tin đã thật sự lấn sâu vào mọi lĩnh vực trong đời sống, máy tính xuất hiện ở khắp mọi nơi, dữ liệu của mọi lĩnh vực dần được số hóa để thuận tiện trong việc lưu trữ, phân phối, tra cứu, v.v... Điều này đã dẫn đến sự bùng nổ của dữ liệu số. Hiện tại, nhiều tổ chức đang gặp rất nhiều khó khăn khi phải thao tác với kho dữ liệu số quá lớn của mình, các hệ thống xử lý truyền thống bị quá tải, đặt ra yêu cầu phải xây dựng hệ thống xử lý mới, có khả năng làm việc hiệu quả với dữ liệu lớn. Ở Việt Nam, một trong những nhu cầu thao tác với dữ liệu lớn được đặt ra là tìm kiếm tài liệu văn bản tiếng Việt, phục vụ cho nhu cầu học tập, nghiên cứu, v.v. Việc tìm kiếm chẳng những đòi hỏi tính chính xác cao, mà còn cần được thực hiện trong một khoảng thời gian chấp nhận được. Đây là một vấn đề đáng được quan tâm và nghiên cứu giải quyết. 1.2. LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ Tại trường Đại học Cần Thơ, vấn đề xây dựng một công cụ tìm kiếm cho tài liệu văn bản tiếng Việt đã từng được nghiên cứu trước đây trong các đề tài luận văn cao học: • Đề tài: “Nghiên cứu nền tảng tính toán song song với MapReduce và Hadoop. Áp dụng cho việc xây dựng wordnet tiếng Việt và tạo chỉ mục tài liệu”; tác giả Nguyễn Minh Thuận, Nguyễn Trọng Thức; năm 2012 [4]. • Đề tài: “Xây dựng một ứng dụng minh họa cho khả năng của MongdoDB”; tác giả Bùi Thị Hồng Phúc; năm 2012 [5]. Các tác giả đã dùng mô hình tính toán phân tán MapReduce được cài đặt trên nền tảng Hadoop, kết hợp với Hệ quản trị cơ sở dữ liệu MongoDB để giải quyết vấn đề. Công cụ đã cơ bản giải quyết được vấn đề, tuy nhiên vẫn còn một số hạn chế: Việc xử lý yêu cầu tìm kiếm còn chậm, không thể bổ sung tài liệu mới vào kho tài liệu, chương trình hỗ trợ tìm kiếm là ứng dụng desktop, khó triển khai thành công cụ Trang 1 Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop tìm kiếm trực tuyến. 1.3. MỤC TIÊU VÀ PHẠM VI NGHIÊN CỨU Sau khi phân tích yêu cầu của đề tài và bàn bạc với thành viên còn lại của nhóm, trong khuôn khổ luận văn này, mục tiêu và phạm vi nghiên cứu của tôi là: • Tìm hiểu nguyên tắc hoạt động của mô hình xử lý dữ liệu phân tán MapReduce, cách thức cài đặt và sử dụng nền tảng Hadoop. • Vận dụng mô hình MapReduce và nền tảng Hadoop, xây dựng hệ thống xử lý yêu cầu tìm kiếm trên tập tài liệu văn bản tiếng Việt có kích thước lớn, đã được xử lý lập chỉ mục trước đó. Kết quả tìm kiếm có sự sắp xếp dựa theo mức độ liên quan giữa biểu thức tìm kiếm và nội dung của mỗi tài liệu. Hệ thống được xây dựng dưới dạng một ứng dụng trực tuyến, có thời gian xử lý cho mỗi yêu cầu tìm kiếm đủ nhanh, để người dùng chấp nhận được. • Triển khai hệ thống trên một mạng các máy tính được kết nối, kiểm tra đánh giá khả năng hoạt động của hệ thống. 1.4. PHƯƠNG PHÁP THỰC HIỆN Để hoàn thành nội dung được phân công, trước tiên cần tìm kiếm, nghiên cứu các tài liệu về: • Mô hình xử lý phân tán MapReduce. • Cách thức cài đặt và khai thác nền tảng Hadoop. • Mô hình không gian vector, tính độ tương đồng giữa các tài liệu văn bản. Sau khi nắm được cơ sở lý thuyết, sẽ phân tích thiết kế giải thuật cho từng thành phần của hệ thống, lựa chọn ngôn ngữ lập trình, tiến hành cài đặt các giải thuật, và tiếp tục nghiên cứu các vấn đề phát sinh. Cuối cùng sẽ kết hợp với thành viên còn lại của nhóm, tổng hợp các hệ thống Trang 2 Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop do mỗi người thực hiện lại thành một hệ thống hoàn chỉnh, sau đó tiến hành triển khai, kiểm tra đánh giá khả năng hoạt động. Trang 3 Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1. MÔ HÌNH XỬ LÝ DỮ LIỆU PHÂN TÁN MAPREDUCE 2.1.1. Giới thiệu chung Năm 2004, Google công bố mô hình xử lý dữ liệu phân tán MapReduce, Mô hình này là sáng kiến của một nhóm các kỹ sư Google, khi 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 là một mô hình lập trình, hay một giải thuật lập trình, chuyên dùng để giải quyết vấn đề về xử lý dữ liệu lớn. Mô hình này cơ bản gồm hai thao tá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 máy tính cùng thực hiện - thao tác Map, sau đó tổng hợp kết quả lại - thao tác Reduce. Split Map Input split Input split Input Shuffle Reduce Mapper Mapper Input split Mapper Input split Mapper ... ... Input split Mapper Reducer Output ... ... Reducer Output Hình 2.1.1.a: Mô hình tổng quát của MapReduce Trong mô hình trên, ngoài hai quá trình cơ bản là Map và Reduce đã được trình bày, còn có thêm hai quá trình nữa là Split và Shuffle, hai quá trình này lần lượt giữ vai trò: phân chia dữ liệu đầu vào, tạo tiền đề cho quá trình Map và gom nhóm dữ liệu đầu ra của quá trình Map, tạo tiền đề cho quá trình Reduce. MapReduce định nghĩa dữ liệu dưới dạng các cặp - ; ví dụ, key có thể là tên của tập tin và value nội dung củ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 Trang 4 Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop linh hoạt hơn cá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ụ). 2.1.2. Quá trình Split Để có thể phân tán công việc trên hệ thống má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 máy xử lý một phần trong số đó. Quá trì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. Input split Input split Input Split Rules Input split ... Input split Hình 2.1.2.a - Quá trình Split 2.1.3. Quá trình Map và Shuffle Sau khi các input split được tạo ra, Quá trình Map được thực hiện - hệ thống sẽ phân bố các input split về các máy xử lý, các máy được phân công sẽ tiếp nhận và xử lý input split được giao, ta gọi quá trình diễn ra trên nội bộ mỗi máy trong quá trì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 của MapReduce - dữ liệu có dạng các cặp . Kết thúc quá trình Mapper trên mỗi máy, dữ liệu đầu ra cũng có dạng các cặp , chúng sẽ được chuyển sang cho quá trình Shuffle để phân nhóm theo tiêu chí đã được định trước, chuẩn bị cho bước xử lý phân tán tiếp theo. Như vậy, quá trình Shuffle sẽ được thực hiện một cách nội bộ trên mỗi máy chạy Mapper. Trang 5 Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop Mapper Input Split Reader key value key value key value key value key value key value key value key value Processing Rules ... ... key value key value key value key value key value Shuffle Rules ... key value key value key value Hình 2.1.3.a - Quá trình Mapper và Shuffle trên một máy. 2.1.4. Quá trình Reduce Quá trình Shuffle diễn ra trên nhiều má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 các máy có sự thống nhất. Các nhóm dữ liệu tương ứng với nhau trên tất cả các máy chạy Shuffle sẽ được gom lại chuyển về cho cùng một máy xử lý, cho ra kết quả cuối cùng. Toàn bộ quá trình này được gọi là Reduce, quá trình xử lý trên từng máy trong quá trình Reduce là quá trình Reducer. Shuffle reduce Output reduce Output ... ... reduce Output ... ... Shuffle ... Hình 2.1.4.a: Quá trình Reduce Trang 6 Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop 2.1.5. Một số bài toán ứng dụng mô hình MapReduce Grep phân tán Grep là một tiện ích dòng lệnh dùng cho việc tìm kiếm trên tập dữ liệu văn bản. Khi áp dụng mô hình MapReduce, trong quá trình Map, mỗi Mapper sẽ làm việc với một tập con của tập dữ liệu văn bản, công việc của mỗi Mapper là tìm kiếm và đánh dấu những dòng khớp với biểu thức tìm kiếm trong tập dữ liệu văn bản mà mình phụ trách. Kết quả của các Mapper sẽ được quá trình Reduce gom lại tạo thành kết quả cuối cùng. Sắp xếp phân tán Mô hình MapReduce rất phù hợp với bài toán sắp xếp dữ liệu. Trong quá trì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 giá trị, Quá trình Reduce sẽ chịu trá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 giá trị được phân công. Một ví dụ cụ thể về việc sắp xếp dữ liệu: Bài toán sắp xếp một tập dữ liệu nhiệt độ. Thay vì sắp xếp toàn bộ dữ liệu bằng một chương trình tuần tự, ta có thể xử lý bằng mô hình MapReduce như sau: Tại quá trình Map, dữ liệu sẽ được đọc lên và định dạng thành các cặp . Tại quá trình Shuffle, ta sẽ phân chia dữ liệu theo từng khoảng giá trị của trường “nhiệt độ”, trước khi chuyển qua cho Reduce sắp xếp. Như vậy, mỗi Reducer sẽ chỉ sắp xếp những dữ liệu nằm trong một khoảng nhất định. Ta dễ dàng tổng hợp kết quả sắp xếp của các Recducer, để tạo ra kết quả sắp xếp toàn cục. 2.2. HADOOP - NỀN TẢNG LẬP TRÌNH THEO MÔ HÌNH MAPREDUCE 2.2.1. Giới thiệu chung Hadoop là một nền tảng nguồn mở, được Dough Cutting tạo ra khi ông nghiên cứu về Nutch - một ứng dụng tìm kiếm. Hadoop được viết bằng Java, dùng hỗ trợ xây dựng, thực thi các ứng dụng tính toán phân tán theo mô hình MapReduce. Hadoop cluster là hệ thống máy tính đã được triển khai nền tảng Hadoop, một Hadoop cluster bao gồm hai thành phần cơ bản là kiến trúc MapReduce và hệ thống tập tin phân tán Trang 7 Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop HDFS, Trong đó: • Kiến trúc MapReducer gồm hai phần: TaskTracker - trực tiếp thực thi các tác vụ xử lý dữ liệu, JobTracker - quản lý và phân chia công việc cho các TaskTracker. • Hệ thống HDFS gồm hai phần: DataNode - nơi trực tiếp lưu trữ dữ liệu, mỗi DataNode chịu trách nhiệm lưu trữ một phần dữ liệu của hệ thống, NameNode - quản lý các DataNode, dẫn đường cho các yêu cầu truy xuất dữ liệu. Kiến trúc của Hadoop cluster là kiến trúc Master-Slave, và cả hai thành phần MapReduce và HDFS đều tuân theo kiến trúc này . Master Slave TaskTracker JobTracker TaskTracker ... TaskTracker MapReduce layer HDFS layer DataNode NameNode DataNode ... DataNode Hình 2.2.1.a: Các thành phần của Hadoop cluster 2.2.2. MapReduce Layer JobTracker và TaskTracker Trang 8 Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop Trong Hadoop, mỗi quá trình xử lý MapReduce được gọi là một job. Việc thực hiện job sẽ được quản lý bởi hai đối tượng là JobTracker và TaksTracker. JobTracker hoạt động tại máy master có nhiệm vụ quản lý toàn bộ hệ thống gồm việc tạo và quản lý job, phân bố dữ liệu và phân công công việc cho các TaskTracker, xử lý lỗi, v.v.Tại mỗi máy slave có một TaskTracker hoạt động để tạo các task xử lý theo yêu cầu của JobTracker. Ngoài ra, định kỳ mỗi khoảng thời gian, TaskTracker phải gửi tín hiệu HeartBeat về JobTracker để thông báo rằng nó vẫn đang còn hoạt động. Điều này đảm bảo JobTracker lập thời biểu công việc chính xác và hiệu quả cho cả hệ thống. Cơ chế hoạt động mô hình MapReduce trong Hadoop Mỗi khi có yêu cầu thực thi một ứng dụng MapReduce, JobTracker sẽ tạo ra một JobClient và chép toàn bộ code thực thi cần thiết của job đó lên hệ thống tập tin phân tán HDFS, mỗi JobClient sẽ được gán một jobID duy nhất. Tiếp theo JobClient sẽ gửi một yêu cầu thực thi job lên JobTracker, JobTracker dựa theo yêu cầu của JobClient, sẽ gửi yêu cầu khởi tạo task kèm theo các thông tin phân công công việc đến các TaskTracker. Mỗi TaskTracker sẽ dựa vào thông tin phân công lần lượt thực hiện: Khởi tạo map task hoặc reduce task, chép toàn bộ code thực thi trên HDFS về, thực hiện công việc được phân công. Sau khi thực hiện xong, TaskTracker sẽ thông báo cho JobTracker và tự giải phóng. MapReduce 1: Run job program 3: Post program source Master JobClient 2: Get JobID 4: Submit Job 5: Initialize task 6: Get program source And input split HDFS JobTracker Slave StaskTracker Run task task Hình 2.2.2.a: Cơ chế hoạt động của JobTracker và TaskTracker trong Hadoop Trang 9 Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop 2.2.3. Hadoop Distributed File System Layer Giới thiệu chung Hadoop Distributed File System (HDFS) là một hệ thống tập tin phân tán, được thiết kế để chạy trên hệ thống nhiều máy tính được nối mạng với nhau, có khả năng chịu lỗi cao và có thể triển khai trên hệ thống phần cứng không đòi hỏi cấu hình đắt tiền. Có rất nhiều đặc điểm giống nhau giữa HDFS và những hệ thống tập tin phân tán khác. Tuy nhiên, HDFS có những đặc điểm nổi bật riêng giúp nó có khả năng hỗ trợ tốt cho các ứng dụng xử lý dữ liệu lớn. Những đặc điểm của HDFS Dữ liệu lưu trữ cực lớn: HDFS được thiết kế để lưu trữ những tập tin với kích thước hàng trăm megabyte, gigabyte hay terabyte. Ngày nay, hệ thống HDFS có thể lưu trữ lên đến petabyte dữ liệu. Xử lý lỗi phần cứng: HDFS không đòi hỏi phần cứng cấu hình cao đối với hệ thống máy tính. Vì vậy, việc xảy ra lỗi trên các thiết bị phần cứng là hoàn toàn có thể xảy ra một cách thường xuyên. Một hệ thống HDFS có thể bao gồm hàng ngàn máy xử lý, mỗi máy (node) lưu trữ một phần của dữ liệu. HDFS có cơ chế quản lý toàn bộ các node đang chạy trên hệ thống để nhận biết node nào đang rảnh và node nào bị lỗi. Những công việc và dữ liệu được xử lý tại node bị lỗi đó sẽ được chuyển sang node rảnh của hệ thống để xử lý lại. Dữ liệu chặt chẽ: HDFS hoạt động theo cơ chế ghi một lần - đọc nhiều lần. Mỗi tập tin sẽ được tạo, ghi dữ liệu và đóng lại hoàn toàn. Việc cập nhật ghi thêm dữ liệu vào tập tin là không thể thực hiện trên HDFS. Dữ liệu có thể được truy xuất nhiều lần nhưng vẫn đảm bảo tính nhất quán. Cơ chế thích hợp cho những ứng dụng đọc dữ liệu theo dạng tuần tự. Di chuyển tính toán thay vì di chuyển dữ liệu: những yêu cầu tính toán của ứng dụng sẽ được thực hiện tại node chứa dữ liệu gần nhất với nó. Điều này càng hiệu quả đối với dữ liệu lớn và hệ thống mạng băng thông hẹp. HDFS cung cấp giao diện cho ứng dụng tìm kiếm và di chuyển chính nó đến vị trí dữ liệu gần nhất. Trang 10 Nghiên cứu ứng dụng mô hình MapReduce & nền tảng Hadoop Chạy trên nhiều nền tảng và thiết bị: HDFS được thiết kế để dễ dàng di chuyển từ nền tảng này sang nền tảng khác, thiết bị này sang thiết bị khác. Điều này tạo điều kiện thuận lợi cho việc ứng dụng HDFS một cách rộng rãi. Các khái niện trên HDFS Block: Mỗi đĩa cứng có một kích thước block nhất định. Đó là kích thước dữ liệu nhỏ nhất có thể được ghi và đọc trên đó. Kích thước block cho những tập tin hệ thống cho những đĩa lưu trữ đơn thường khoảng vài kilobyte. Việc này giúp người dùng dễ dàng đọc hoặc ghi tập tin với chiều dài đó. HDFS cũng có quy định về kích thước block. Mặc định mỗi block trên HDFS có kích thước là 64MB. NameNode và DataNode: HDFS là một kiến trúc Master/Slave. HDFS cluster là hệ thống máy tính đã được triển khai HDFS. Trong một cluster HDFS có duy nhất một NameNode đóng vai trò giống như một master, dùng quản lý không gian tên của hệ thống tập tin (file system namespace) và điều phối việc truy xuất dữ liệu. Ngoài ra, còn có các DataNode đóng vai trò như các slave. Mỗi DataNode chịu trách nhiệm quản lý thông tin lưu trữ của các dữ liệu trên máy mà nó đang chạy. HDFS cung cấp một không gian tên cho phép dữ liệu của người dùng lưu trữ trong các tập tin. Mỗi tập tin sẽ được tách thành một hoặc nhiều block được lưu trữ trong một tập hợp những DataNode. Dựa vào không gian tên, NameNode có thể thực hiện các thao tác như đóng, mở và đổi tên tập tin và thư mục. NameNode cũng xác định sơ đồ lưu trữ các block của DataNode. Ngoài nhiệm vụ đáp ứng yêu cầu đọc, ghi dữ liệu do Namenode chuyển đến, các DataNode cũng có nhiệm vụ tạo, xóa và nhân rộng các blocks theo những chỉ thị từ NameNode. DataNode DataNode NameNode ... DataNode Hình 2.2.3.a: Kiến trục Master/Slave của hệ thống tập tin phân tán Hadoop (HDFS) Trang 11
- Xem thêm -