Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 210 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
210
Dung lượng
4,24 MB
Nội dung
i TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN HỆ THỐNG THÔNG TIN ĐẶNG VŨ ĐÌNH DUY – NGUYỄN TẤN DƯƠNG TÌM HIỂU NỀN TẢNG PHÁT TRIỂN ỨNG DỤNG PHÂN TÁN VỚI HADOOP VÀ ÁP DỤNG CHO SEARCH ENGINE PHÂN TÁN KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN CNTT TPHCM, 2010 ii TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN HỆ THỐNG THÔNG TIN ĐẶNG VŨ ĐÌNH DUY 0612068 NGUYỄN TẤN DƯƠNG 0612072 TÌM HIỂU NỀN TẢNG PHÁT TRIỂN ỨNG DỤNG PHÂN TÁN VỚI HADOOP VÀ ÁP DỤNG CHO SEARCH ENGINE PHÂN TÁN KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN CNTT GIÁO VIÊN HƯỚNG DẪN TS. HỒ BẢO QUỐC KHÓA 2006 - 2010 iii NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… TpHCM, ngày … tháng …… năm …… Giáo viên hướng dẫn [Ký tên và ghi rõ họ tên] iv NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… Khóa luận đáp ứng yêu cầu của Khóa luận cử nhân CNTT. TpHCM, ngày … tháng …… năm …… Giáo viên phản biện [Ký tên và ghi rõ họ tên] v LỜI CẢM ƠN Chúng em xin chân thành cảm ơn Khoa Công Nghệ Thông Tin, trường Đại Học Khoa Học Tự Nhiên, Đại Học Quốc gia Tp. Hồ Chí Minh đã tạo điều kiện thuận lợi cho chúng em thực hiện tốt tài tốt nghiệp. Chúng em xin chân thành bày tỏ lòng biết ơn sâu sắc đến thầy Hồ Bảo Quốc. Thầy đã tận tâm hướng dẫn, định hướng và có những nhận xét đúng đắn, kịp thời cho nhóm chúng em trong suốt thời gian thực hiện luận văn này. Chúng em cũng xin cảm ơn sâu sắc thầy Lương Vỹ Minh. Thầy đã tận tình giúp đỡ chúng em trong quá trình triển khai hệ thống. Nhóm cũng xin cảm ơn các thầy cô trong khoa Công Nghê Thông Tin đã tận tình giảng dạy, trang bị cho chúng em những kiến thức nền tảng trong suốt quá trình học tập tại khoa. Bên cạnh đó, không thể không nhắc tới sự yêu thương và chăm sóc của gia đình, sự động viên của bạn bè đã giúp nhóm vượt qua những khó khăn khi thực hiện đề tài này. Mặc dù nhóm đã cố gắng hết sức trong quá trình thực hiện đề tài này nhưng chắc chắc sẽ không tránh khỏi những thiếu sót. Kính mong quý thầy cô và các bạn tận tình góp ý, chỉ bảo. Một lần nữa, nhóm xin cảm ơn và mong nhận được tình cảm chân thành từ tất cả mọi người. TP HCM, tháng 07 năm 2010 Nhóm thực hiện đề tài Nguyễn Tấn Dương – Đặng Vũ Đình Duy vi Khoa Công Nghệ Thông Tin Bộ môn Hệ Thống Thông Tin ĐỀ CƯƠNG CHI TIẾT KHÓA LUẬN TỐT NGHIỆP TÊN ĐỀ TÀI: Tìm hiểu nền tảng phát triển ứng dụng phân tán với Hadoop và áp dụng cho các Search Engine phân tán. GIÁO VIÊN HƯ ỚNG DẪN : TS Hồ Bảo Quốc THỜI GIAN THỰC HIỆN: 01/02/2010 – 01/07/2010 SINH VIÊN THỰC HIỆN: Nguyễn Tấn Dương 0612072 Đặng Vũ Đình Duy 0612068 LOẠI ĐỀ TÀI: Tìm hiểu công nghệ có ứng dụng minh họa. NỘI DUNG ĐỀ TÀI: Tìm hiểu nền tảng xây dựng ứng dụng phân tán trên nền tảng Hadoop. o Hệ thống tập tin phân tán HDFS o Framework xây dựng ứng dụng phân tán theo mô hình MapReduce: vii MapReduce Engine. Tìm hiểu cách phát triển ứng dụng phân tán trên nền tảng Hadoop. Tìm hiểu ứng dụng Seacrh Engine phân tán Nutch và triển khai thực tế. KẾ HOẠCH THỰC HIỆN Thời gian Yêu cầu Phân công 01/02–10/02 Tìm hiểu tổng quan Hadoop. 0612072-0612068 11/02–20/02 Tìm hiểu mô hình MapReduce và GFS theo công bố của Google. 0612072-0612068 21/02–18/03 Tìm hiểu hệ thống tập tin phân tán HDFS. 0612072-0612068 19/03– 5/04 Tìm hiểu MapReduce Engine 0612072-0612068 16/04–31/04 Tìm hiểu quá trình xây dựng ứng dụng phân tán theo mô hình MapReduce với Hadoop. 0612072-0612068 01/05–25/05 Tìm hiểu ứng dụng Seacrh Engine phân tán với Hadoop 0612072-0612068 26/05– 6/06 Triển khai Nutch lên hệ thống thực tế. 0612072-0612068 07/06– 8/06 Thực hiện các thực nghiệm trên hệ thống và đánh giá. 0612072-0612068 19/06– 7/07 Hoàn chỉnh báo cáo. 0612072-0612068 viii Xác nhận của GVHD Ngày 05 tháng 07 năm 2010 SV Thực hiện ix Mục lục Chương 1: Giới thiệu đề tài 1 1.1 Giới thiệu 1 1.2 Ngữ cảnh và lý do thực hiện đề tài 1 1.2.1 Sự bùng phát dữ liệu và bài toán truy tìm dữ liệu 1 1.2.2 Search engine và các khó khăn 3 1.2.3 Sự ra đời của mô hình MapReduce 5 1.2.4 Lý do thực hiện 7 1.3 Nội dung luận văn 7 Chương 2: Nền tảng tính toán phân tán với Hadoop 9 2.1 Giới thiệu Framework Hadoop 9 2.1.1 Hadoop là gì? 9 2.1.2 Lịch sử Hadoop 10 2.1.3 Các thành phần của Hadoop 12 2.1.4 Ứng dụng của Hadoop trong một số công ty: 13 2.1.5 Tổng quan của một Hadoop cluster: 14 2.2 Hadoop Distributed File System (HDFS) 17 2.2.1 Giới thiệu 17 2.2.2 Tổng quan thiết kế của HDFS 19 x 2.2.3 Các tính năng của NameNode 29 2.2.4 Khả năng chịu lỗi và chẩn đoán lỗi của HDFS 34 2.2.5 Các giao diện tương tác 36 2.2.6 Quản trị HDFS 37 2.3 MapReduce 39 2.3.1 Giới thiệu mô hình tính toán MapReduce 39 2.3.2 Hadoop MapReduce Engine 42 Chương 3: Nutch - Ứng dụng Search Engine phân tán trên nền tảng Hadoop 62 3.1 Ngữ cảnh ra đời và lịch sử phát triển của Nutch 62 3.2 Giới thiệu Nutch 63 3.2.1 Nutch là gì? 63 3.2.2 Nền tảng phát triển 64 3.2.3 Các tính năng của Nutch. 64 3.3 Kiến trúc ứng dụng Nutch 66 3.3.1 Thuật giải Nutch 66 3.3.2 Cấu trúc dữ liệu của Nutch 69 3.4 Kiến trúc Nutch 73 3.4.1 Kiến trúc các thành phần 73 3.4.2 Plugin-based 77 3.5 Nutch và việc áp dụng tính toán phân tán với mô hình MapReduce vào Nutch . 80 3.5.1 Nguyên nhân cần phải phân tán 80 3.5.2 Áp dụng tính toán phân tán cho các thành phần Crawler 80 [...]... dụng phân tán bằng cả java lẫn một số ngôn ngữ lập trình khác như C++, Python, Pearl 3) Hadoop cung cấp một phương tiện lưu trữ dữ liệu phân tán trên nhiều node, hỗ trợ tối ưu hoá lưu lượng mạng, đó là HDFS HDSF che giấu tất cả các thành phần phân tán, các nhà phát triển ứng dụng phân tán sẽ chỉ nhìn thấy HDFS như một hệ thống file cục bộ bình thường 4) Hadoop giúp các nhà phát triển ứng dụng phân. .. servers 84 Hình 3-10: Mô hình ứng dụng Search Engine phân tán hoàn chỉnh 85 Hình 4-1: Quy trình crawler 87 Hình 4-2: Mô hình thực nghiệm phân tán crawler 90 xv Chương 1: Giới thiệu đề tài 1.1 Giới thiệu Tên đề tài luận văn: “Tìm hiều nền tảng phát triển ứng dụng phân tán với Hadoop và áp dụng cho Search Engine phân tán.” Sơ lược: Trong đề tài này, nhóm sẽ thực hiện tìm hiểu... cấp các công cụ và giao diện cho hệ thống phân tán và các tiện ích I/O Đây là phần lõi để xây dựng nên HDFS và MapReduce MapReduce (MapReduce Engine): một framework giúp phát triển các ứng dụng phân tán theo mô hình MapReduce một cách dễ dàng và mạnh mẽ, ứng dụng phân tán MapReduce có thể chạy trên một cluster lớn với nhiều node 12 HDFS: hệ thống file phân tán, cung cấp khả năng lưu trữ dữ liệu... của một máy tính, tất yếu sẽ dẫn đến nhu cầu phân chia dữ liệu lên trên nhiều máy tính Các hệ thống tập tin quản lý việc lưu trữ dữ liệu trên một mạng nhiều máy tính gọi là hệ thống tập tin phân tán Do hoạt động trên môi trường liên mạng, nên các hệ thống tập tin phân tán phức tạp hơn rất nhiều so với một hệ thống file cục bộ Ví dụ như một hệ thống file phân tán phải quản lý được tình trạng hoạt động... Google về mô hình MapReduce và hệ thống file phân tán Google File System (GFS).” Vậy ta có thể kết luận như sau: 1) Hadoop là một framework cho phép phát triển các ứng dụng phân tán 1 Phần cứng thông thường: dịch từ thuật ngữ commodity hardware, tức các loại phần cứng thông thường, rẻ tiền Các phần cứng này thường có khả năng hỏng hóc cao Thuật ngữ này dùng để phân biệt với các loại phần cứng chuyên dụng... sẽ rẻ hơn Thứ hai, MapReduce làm đơn giản hoá các giải thuật tính toán phân tán Với MapReduce, 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, các nhà phát triển ứng dụng phân tán có thể tập trung nhiều hơn 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ý Trước MapReduce, các doanh nghiệp muốn xử lý hàng petabyte... triển ứng dụng phân tán theo mô hình MapReduce trên một framework nguồn mở: Hadoop Bên cạnh đó, để minh họa tốt hơn cho đề tài, nhóm đã chọn Nutch, một ứng dụng Search Engine phân tán sử dụng HDFS và MapReduce của Hadoop, để triển khai thực tế 1.3 Nội dung luận văn Luận văn gồm có 5 chương chính: Chương 1: Giới thiệu Giới thiệu đề tài thực hiện Chương 2: Giới thiệu nền tảng tính toán phân tán với Hadoop... ngàn node HBase: một cơ sở dữ liệu phân tán, theo hướng cột (colunm-oriented) HBase sử dụng HDFS làm hạ tầng cho việc lưu trữ dữ liệu bên dưới, và cung cấp khả năng tính toán song song dựa trên MapReduce Hive: một data warehouse phân tán Hive quản lý dữ liệu được lưu trữ trên HDFS và cung cấp một ngôn ngữ truy vấn dựa trên SQL Chukwa: một hệ thống tập hợp và phân tích dữ liệu Chukwa chạy các collector... MapReduce, nhận và thực thi các MapReduce Job 4 Vai trò cụ thể như sau: JobTracker: tiếp nhận các yêu cầu thực thi các MapReduce job, phân chia job này thành các task và phân công cho các TaskTracker thực hiện, quản lý tình trạng thực hiện các task của TaskTracker và phân công lại nếu cần JobTracker cũng quản lý danh sách các node TaskTracker và tình trạng của từng node thông qua hearbeat TaskTracker:... sâu vào hai phần trọng tâm là HDFS và MapReduce Engine Giới thiệu kiến trúc, sức mạnh, và cách phát triển các ứng dụng phân tán trên Hadoop Chương 3: Nutch - Ứng dụng Search Engine phân tán trên nền tảng Hadoop Trong chương này nhóm sẽ giới thiệu Nutch, một ứng dụng Search Engine phân tán được phát triển trên nền tảng Hadoop 7 Chương 4: Báo cáo kết quả thực nghiệm Trong chương này nhóm sẽ trình bày . toán phân tán với mô hình MapReduce vào Nutch . 80 3.5.1 Nguyên nhân cần phải phân tán 80 3.5.2 Áp dụng tính toán phân tán cho các thành phần Crawler 80 xi 3.5.3 Áp dụng tính toán phân. cách phát triển ứng dụng phân tán trên nền tảng Hadoop. Tìm hiểu ứng dụng Seacrh Engine phân tán Nutch và triển khai thực tế. KẾ HOẠCH THỰC HIỆN Thời gian Yêu cầu Phân công 01/02–10/02 Tìm. ĐỀ TÀI: Tìm hiểu nền tảng xây dựng ứng dụng phân tán trên nền tảng Hadoop. o Hệ thống tập tin phân tán HDFS o Framework xây dựng ứng dụng phân tán theo mô hình MapReduce: vii MapReduce