Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 78 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
78
Dung lượng
1,73 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI HỒNG ANH TUẤN XÂY DỰNG THỬ NGHIỆM GIẢI PHÁP TÌM KIẾM THEO YÊU CẦU NGƯỜI DÙNG, SỬ DỤNG ĐIỆN TOÁN ĐÁM MÂY VÀ THUẬT TOÁN MAPREDUCE LUẬN VĂN THẠC SĨ KHOA HỌC NGƯỜI HƯỚNG DẪN : PGS.TS HUỲNH QUYẾT THẮNG HÀ NỘI – 2010 MỤC LỤC MỤC LỤC DANH MỤC HÌNH VẼ DANH MỤC BẢNG BIỂU .6 CHƯƠNG TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY, GIẢI THUẬT MAPREDUCE, HỆ THỐNG TÌM KIẾM .7 1.1 Sự phát triển mơ hình tính toán 1.2 Tối ưu hóa q trình xử lý liệu lớn, giải thuật MAPREDUCE ứng dụng cho nguồn liệu cực lớn (TB, PB) 1.3 Bài tốn tìm kiếm theo yêu cầu người sử dụng (Object searching by request) .10 1.4 Nhiệm vụ luận văn 11 CHƯƠNG 2.1 ĐIỆN TOÁN ĐÁM MÂY VÀ GIẢI THUẬT MAPREDUCE 13 Khái niệm Điện toán đám mây 13 2.1.1 Lịch sử Cloud computing .14 2.1.2 Các đặc tính Cloud Computing .15 2.2 Các nhánh điện tốn đám mây 15 2.2.1 Phần mềm hoạt động dịch vụ (SaaS - Software as a Service) 16 2.2.2 Nền tảng dịch vụ (PaaS - Platform as a Service) 17 2.2.3 Hạ tầng hoạt động dịch vụ (IaaS – Infrastructure as a Service) 17 2.3 Các hệ thống Cloud Computing tiêu biểu .18 2.3.1 Google App Engine 18 2.3.2 Microsoft Azune 19 2.3.3 Amazon Elastic Compute Cloud (EC2) 20 2.3.4 Amazon Simple Storage Service (S3) .21 2.4 Ứng dụng Cloud Computing tìm kiếm thông tin 22 2.5 Lịch sử phát triển Mapreduce 23 2.6 Kỹ thuật lập trình MapReduce 25 2.6.1 Map Function 26 2.6.2 Reduce Function 27 2.7 Một số ứng dụng tiêu biểu MapReduce 28 2.7.1 Hệ thống Sort Data Yahoo, Google 29 2.7.2 Ứng dụng xử lý liệu log 31 2.8 Kết chương 32 CHƯƠNG BÀI TỐN TÌM KIẾM THEO YÊU CẦU NGƯỜI SỬ DỤNG VÀ ĐỀ XUẤT GIẢI PHÁP DỰA TRÊN ĐIỆN TOÁN ĐÁM MÂY VÀ GIẢI THUẬT MAPREDUCE 34 3.1 Bài tốn tìm kiếm liệu 34 3.1.1 Lịch sử máy tìm kiếm 35 3.1.2 Phân loại máy tìm kiếm Internet .37 3.1.3 Mơ hình máy tìm kiếm 39 3.2 Thuật tốn tìm kiếm 40 3.2.1 Bài toán thu thập, bóc tách liệu (Crawl, parse data) 40 3.2.2 Bài toán đánh mục liệu (Index data) 45 3.2.3 Thuật tốn tìm kiếm theo độ tương quan (relevance) 47 3.3 Các giải pháp xây dựng máy tìm kiếm 49 3.4 Giải pháp tìm kiếm sử dụng thuật tốn MapReduce điện toán đám mây 52 3.4.1 Sử dụng MapReduce điện toán đám mây việc thu thập, bóc tách liệu 52 3.4.2 Sử dụng MapReduce điện toán đám mây toán đánh mục 54 3.4.3 Sử dụng điện tốn đám mây việc thiết kế module tìm kiếm phân tán 56 3.5 Kết chương 58 CHƯƠNG XÂY DỰNG HỆ THỐNG TÌM KIẾM VÀ THỬ NGHIỆM THỰC TẾ 60 4.1 Bài tốn tìm kiếm tin tức .60 4.2 Xây dựng hệ thống tìm kiếm tin tức theo độ tương quan nội dung, thời gian .60 4.2.1 Tổng quan mơ hình hệ thống tìm kiếm .60 4.2.2 Các thành phần hệ thống 61 4.3 Đánh giá kết quả, hướng cải tiến 65 4.3.1 Các kết đạt 65 4.3.2 Tổng kết luận văn 70 TÀI LIỆU THAM KHẢO 75 DANH MỤC HÌNH VẼ Hình 1.1-1: định luật Moore [42] Hình 2.1-1: Mơ hình điện tốn đám mây [46] .14 Hình 2.2-1: Các lớp điện toán đám mây 16 Hình 2.3-1: Giao diện sử dụng EC2 [19] .20 Hình 2.3-2: Giao diện sử dụng Amazon S3 [20] 22 Hình 2.6-1: Mơ hình MapReduce 26 Hình 2.6-2: Quá trình xử lý MapReduce .28 Hình 3.1-1: Số lượng URL giới [21] 35 Hình 3.1-2: Thị phần máy tìm kiếm tháng năm 2010 [53] 36 Hình 3.1-3: Mơ hình máy tìm kiếm .40 Hình 3.2-1: Inverted index .47 Hình 3.4-1: Hệ thống tìm kiếm phân tán .58 Hình 4.2-1: Tổ chức hệ thống 61 Hình 4.2-2: Tổ chức module máy tìm kiếm 64 Hình 4.3-1: Tổng số trang web hệ thống 67 Hình 4.3-2: Tốc dộ thu thập trang web đánh mục .68 DANH MỤC BẢNG BIỂU Bảng 2.7-1: Kết xếp liệu Yahoo! [17] 30 Bảng 3.1-1: Số lượng trang web đánh mục 37 Bảng 4.3-1: Số lượng máy cluster 66 Bảng 4.3-2: Kết tìm kiếm 70 CHƯƠNG TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY, GIẢI THUẬT MAPREDUCE, HỆ THỐNG TÌM KIẾM 1.1 Sự phát triển mơ hình tính tốn Mơ hình tính tốn hệ thống phát triển qua nhiều thời kỳ, ngày đại hơn, phát triển chiều rộng (mở rộng khơng gian tính tốn, thêm tài nguyên), chiều sâu (cải tiến thuật tốn (từ lập trình cấp thấp, lập trình cấp cao, tính tốn song song, tính tốn hiệu cao,….) Phần cứng ngày phát triển nhanh, theo định luật Moore [41] :”Số lượng transitor đơn vị inch vuông tăng gấp đôi sau hai năm” Việc tốc độ hệ thống tính tốn ngày phát triển nhanh, giá thành ngày rẻ giúp rút ngắn thời gian tính tốn cho đơn vị liệu lớn Hình 1.1-1: định luật Moore [42] Cùng với việc phát triển phần cứng, mơ hình lập trình phát triển với tốc độ chóng mặt Ban đầu phương pháp lập trình theo bìa đục lỗ, sau phát triển lên thành mơ hình lập trình theo ngơn ngữ cấp cao, vào thập niên 1950, 1960, xuất nhiều ngôn ngữ lập trình cấp cao FORTRAN, LISP, COBOL,… Từ năm 1990, kỷ nguyên Internet bắt đầu, mơ hình lập trình ngày phát triển, bao gồm nhiều phương pháp lập trình như: lập trình hướng kiện, lập trình hướng đối tượng, lập trình logic, lập trình hàm, lập trình đồng thời,… Khơng lập trình máy tính cá nhân đơn lẻ, nhiều mơ hình lập trình hướng đến mơi trường phân tán, song song, giúp người sử dụng triển khai mơi trường lập trình nhiều máy tính Mục đích mơ hình lập trình giúp giải toán liệu lớn, nhu cầu thực tế người dùng Thử tưởng tượng, khơng có mơ hình lập trình này, khơng có ứng dụng trực tuyến khổng lồ Google, Facebook hay Yahoo, phát triển ứng dụng Internet Gmail, Google docs, hệ thống chia sẻ file, ảnh,… Cùng với phát triển nhanh chóng Internet, hệ thống tính tốn lớn xây dựng dựa phát triển hạ tầng phần cứng cấu trúc phần mềm chương trình điều khiển Mỗi ngày, Google phải xử lý 20 Petabytes liệu, Facebook khoảng 80-90 Terabytes liệu, với Yahoo Petabytes Với số khổng lồ khơng có đầy đủ hệ thống phần cứng phần mềm hỗ trợ giải Việc phát triển hệ thống tính tốn mới, dựa tảng phân tán địi hỏi cấp thiết q trình giải vấn đề tính tốn Hiện mơ hình quan tâm phát triển nhiều điện tốn đám mây [1] Nó vừa giúp giải toán phần cứng tối ưu hóa, cung cấp giải pháp phần cứng máy chủ, hệ thống lưu trữ, tảng tính toán, đến hệ thống phần mềm khung lập trình trở thành dịch vụ Điện tốn đám mây mơ hình phát triển hệ thống tương lai, giúp giải vấn đề mặt hạ tầng, dịch vụ, cung cấp giải pháp tối ưu cho hệ thống thương mại, phục vụ nhiều người dùng, theo nhiều quy mô từ bé đến lớn, từ đơn giản đến phức tạp, từ phục vụ mục đích riêng tư, đến mục đích cơng cộng 1.2 Tối ưu hóa q trình xử lý liệu lớn, giải thuật MAPREDUCE ứng dụng cho nguồn liệu cực lớn (TB, PB) Các ứng dụng lớn Internet hệ thống Google, Yahoo!, Facebook cần phải lưu trữ, xử lý tương tác với lượng liệu lớn Lưu trữ giải cung cấp đủ thiết bị phần cứng có thuật tốn lưu trữ tốt Việc lưu trữ không đơn lưu trữ lên thiết bị lưu trữ ổ cứng nói chung, mà cịn phụ thuộc nhiều vào q trình xử lý Với lượng liệu khổng lồ, phải lựa chọn phương pháp lưu trữ phân tán, tạo thành hệ thống file phân tán có chế quản lý chúng Khi lưu trữ liệu, cần hệ thống xử lý đủ nhanh cho lượng liệu Một giải thuật nhắc đến nhiều năm gần phục vụ cho việc xử lý lượng liệu lớn MapReduce [8] Những ưu điểm giải thuật MapReduce ứng dụng giải toán liệu lớn: - MapReduce giải thuật, viết lại thành khung lập trình, hỗ trợ lập trình phân tán cách nhanh chóng Giải thuật MapReduce dễ dàng triển khai nhiều máy, việc thêm máy vào để chạy giải thuật đơn giản, thông qua file cấu hình - MapReduce đọc xử lý hầu hết liệu bản, giải thuật khác, có chế để chia nhỏ khối liệu lớn thành khối liệu nhỏ hơn, chia cho tác vụ thực tổng hợp kết - MapReduce quản lý tác vụ chạy song song máy, máy chạy nhiều tác vụ, cơng việc chia làm nhiều tác vụ, chia cho máy theo khả Nó có khả tổng hợp kết chạy máy khác tạo kết cuối đưa lại cho người dùng - MapReduce xử lý liệu theo cặp giá trị key/value nên có khả xử lý nhanh tốn Với ưu điểm giải thuật MapReduce trên, xây dựng nhiều ứng dụng thơng dụng [43]: - Các tốn thống kê: thống kê log, xử lý log, thống kê số lượng, thống kê thời tiết,… - Các toán khai phá liệu, hệ thống giới thiệu (recommendation engines) - Các tốn phân tích liệu, xử lý gian lận - Bài toán xác định mục tiêu đối tượng quảng cáo, phân phối quảng cáo đến đối tượng, với số lượng mức - Bài tốn chất lượng tìm kiếm Tất tốn cần xử lý liệu nói chung, đặc biệt tốn liệu lớn sử dụng thuật tốn MapReduce 1.3 Bài tốn tìm kiếm theo yêu cầu người sử dụng (Object searching by request) Bài tốn tìm kiếm liệu tồn thời gian lâu Khi liệu ít, khơng có nhiều tốn đơn giản, thực vài lệnh hệ điều hành (hệ điều hành Linux) Tuy nhiên liệu lớn lên, tăng trưởng theo ngày, giờ, mức độ cập nhật thơng tin ngày tăng lên vấn đề tìm kiếm xác theo u cầu người dùng khó khăn Những khó khăn tốn tìm kiếm [44]: - Khả bao phủ nội dung: hệ thống tìm kiếm có khả bao phủ nội dung người dùng cần thiết chưa? Với lượng liệu khổng lồ Internet, có chiến thuật hay giải thuật để bao phủ hết số lượng nội dung đó? - Khả cập nhật nội dung: tương tự vấn đề bao phủ, thời gian cập nhật nội dung bao lâu, có đủ cung cấp nội dung cho người dùng hay khơng? 10 Hình 4.2-2: Tổ chức module máy tìm kiếm Module quản lý, theo dõi giám sát hệ thống Do hệ thống chạy mơi trường phân tán cluster có nhiều nút, với lượng liệu lớn, nên cần hệ thống để tự động theo dõi, quản lý thứ cách tự động Nếu khơng có hệ thống theo dõi, quản lý tự động, kiểm sốt q trình hoạt động hệ thống, nguyên nhân gây lỗi ý muốn - Module giám sát thiết bị phần cứng: theo dõi toàn máy cluster từ CPUs, nhớ, băng thông mạng, thời gian trả lại kết quả, thời gian up time máy chạy liên tục không cần nghỉ,… Chúng tơi sử dụng phần mềm miễn phí có tên Ganglia [33] để theo dõi, giám sát hệ thống phần cứng - Module giám sát chương trình chạy: theo dõi, giám sát tất bước chạy cluster Công việc chạy? Công việc chạy đến bước nào, chạy tác vụ, tác vụ chạy đến chức map hay reduce Khi tác vụ chạy hệ thống, sử dụng tài nguyên 64 hệ thống CPUs, nhớ, ổ cứng Chúng ta theo dõi quy trình liệu hệ thống Chúng sử dụng tool phịng thí nghiệm RADLab từ đại học Berkeley có tên X-Trace [34] - Module quản lý liệu: quản lý luồng liệu từ trình fetcher đến trình parser, indexer đưa vào hệ thống tìm kiếm phân tán Tất bước phải thực thi cách tự động, suốt với người sử dụng - Module quản lý Log: cần hệ thống quản lý log, để ghi nhận lại tồn u cầu tìm kiếm khách hàng, hành vi người dùng, hành vi hệ thống Chúng tơi tạo hệ thống phân tích log để phân tích u cầu tìm kiếm người dùng, để nâng cao chất lượng tìm kiếm, trình đánh mục liệu Ngoài sử dụng log để gợi ý cho người dùng câu truy vấn tiếp theo, sửa lỗi tả cho người dùng Module hiển thị kết quả: Hệ thống tìm kiếm cung cấp kết trả lại cho người dùng Đó hệ thống tìm kiếm nhất, tầng hệ thống Việc sử dụng kết hệ thống tìm kiếm: crawler, parser, indexer, searcher tảng để xây dựng hệ thống tìm kiểm tầng Có thể xây dựng ứng dụng tìm kiếm tồn thể Web, hệ thống tìm kiếm theo chiều dọc, hệ thống đề xuất sản phẩm, hệ thống tìm kiếm đa phương tiện, tìm kiếm cho thiết bị di động, hệ thống gợi ý đề xuất văn Các hệ thống tập trung hướng đến toán quảng cáo, phân phối, định hướng người dùng 4.3 Đánh giá kết quả, hướng cải tiến 4.3.1 Các kết đạt Khi cài đặt thử nghiệm hệ thống, thực giải pháp cho bốn hệ thống tìm kiếm thơng tin, ba cho hệ thống tìm kiếm thơng tin tiếng Việt, hệ thống thu thập trang Web tiếng anh 65 Trong số ba hệ thống tìm kiếm tiếng việt, bao gồm hệ thống tìm kiếm tin tức, hệ thống tìm kiếm thơng tin blog đặc biệt blog Yahoo 360, hệ thống tìm kiếm thơng tin forum Các hệ thống tìm kiếm tiếng việt thực cho hệ thống tìm kiếm Baamboo [26] Hệ thống thu thập trang Web tiếng anh, bao gồm hầu hết trang web giới viết ngôn ngữ tiếng anh, sử dụng cho hệ thống sửa lỗi tả tiếng Anh Bốn hệ thống chạy bốn cluster khác có cấu sau Cluster Số lượng News Blog Forum English Search Search Search Pages 12 máy Bảng 4.3-1: Số lượng máy cluster Bốn hệ thống cluster News Search, Blog Search Forum Search xây dựng dedicated server Mỗi máy có cấu hình o CPUs o 16G RAM o 2TB ổ cứng Hệ thống thu thập xử lý trang web tiếng anh xây dựng hệ thống EC2 Amazon Quá trình thu thập thực 12 máy extra-large instance Amazon hệ thống lưu trữ mạng (Storage Area Network – SAN) [35], hệ thống EBS S3 Amazon Khi xử lý tổng số lượng trang (thao tác bóc tách, đánh mục liệu), sử dụng 200 máy extra-large instance Mỗi máy có cấu sau: o EC2 compute unique o 15G RAM o 1.690 GB ổ cứng 66 Trong hệ thống này, thiết kế thuật toán thu thập tin tức theo hệ thống tìm kiếm theo chiều dọc cho hệ thống tìm kiếm tin tức, tìm kiếm nội dung blog Yahoo 360 Việt Nam hệ thống tìm kiếm forum Việt Nam Đây hệ thống tìm kiếm theo chiều dọc, nên cách thức thu thập nội dung, cách thức cập nhật, phát viết hồn tồn khác so với cách thơng thường Thuật tốn lọc trang web khơng thuộc vùng quan tâm tập trung vào vùng miền xử lý Trong hệ thống thu thập tin tức tiếng anh, xây dựng lọc tiếng anh sử dụng theo phương pháp N-Gram Số lượng trang Web mà hệ thống thu nhận Hình 4.3-1: Tổng số trang web hệ thống 67 Tốc độ thu thập trang web, đánh mục liệu Hình 4.3-2: Tốc dộ thu thập trang web đánh mục Mỗi tốn có cách để thu thập liệu riêng Với tốn tìm kiếm tin tức, blog, forum dạng tìm kiếm theo chiều dọc Nên cần tối ưu lại hệ thống Crawler, thu hẹp lại phạm vi, tập trung liên quan đến báo điện tử Việt Nam trường hợp tìm kiếm tin tức, blog yahoo 360 trường hợp tìm kiếm blog forum tiếng Việt Riêng toán thu thập trang web tiếng anh, cần phát ngơn ngữ tiếng anh xử lý, nên số lượng trang web nhiều hơn, tổng số trang web down lớn 68 Ngồi hệ thống thu thập trang Web tiếng anh có nhiều liệu hơn, chạy hệ thống cluster mạnh hơn, nên tốc độ thu thập, tốc độ đánh mục liệu nhanh So sánh với cách thực thi thơng thường, sử dụng thuật tốn chạy máy đơn lẻ, tốc độ thu thập đánh mục liệu tăng gấp 1,5 lần, khả mở rộng phục vụ cho hệ thống hàng trăm triệu đến hàng tỷ trang web Hệ thống tìm kiếm: - Trong hệ thống tìm kiếm, chúng tơi sử dụng lượng lớn server với cấu hình memory lớn phục vụ cho việc tìm kiếm phân tán Xây dựng thuật toán chia nhỏ mục thành khối nhỏ hơn, chia cho server tìm kiếm đưa toàn lượng mục lên RAM Bằng cách này, giúp nâng cao hiệu suất tìm kiếm, giảm thời gian tìm kiếm thời gian trả kết nhanh Ngoài ra, xây dựng hệ thống quản lý, tự động cập nhật nội dung mục Khi hệ thống liệu mục phân tán, cần chế tự động quản lý, cập nhật liệu mục - Ngoài ra, hệ thống cung cấp lớp lưu trữ tạm (caching) kết người dùng tìm kiếm Trong hệ thống tìm kiếm theo chiều dọc, tìm kiếm tất trang Web, có từ khóa có tần suất tìm kiếm cao, nên kết lưu trữ tạm thời, phục vụ cho người tìm kiếm sau khoảng thời gian ngắn Tôi xây dựng hệ thống lưu trữ tạm thời nhớ, sử dụng phương pháp LRU, sử dụng thêm hệ thống caching phần giao diện để nâng cao hiệu suất sử dụng hệ thống - Thuật tốn PageRank phân tích tiếng Việt: người dùng tìm kiếm, kết trả phụ thuộc vào xếp hạng trang Nếu trang có xếp hạng tốt, đưa lên đầu Hiện chúng tơi sử dụng cơng thức tính PageRank tương tự cơng bố Google [36] Ngồi người dùng tìm kiếm tiếng Việt, việc khó hiểu nội dung tìm kiếm người dùng, cần giải thuật xử lý ngôn ngữ tự nhiên, hiểu tách nội dung câu tìm kiếm Hiện sử 69 dụng thư viện Baamboo OpenNLP để xử lý tiếng việt câu truy vấn Ngôn ngữ tiếng Việt khác ngôn ngữ latin khác tiếng anh, âm tiết từ, tiếng Việt, từ gồm nhiều âm tiết Sử dụng phương pháp tách từ, giúp cải thiện kết truy vấn người dùng - Thuật tốn tính tốn độ tương quan nội dung thời gian: tìm kiếm nội dung, cần phải phối hợp nhiều yếu tố, độ tương quan mặt nội dung, đến độ tương quan thời gian Hiện sử dụng hệ thống tính điểm trang web dựa vào thời gian xuất trang web Hệ thống tính điểm cho trang web xuất gần so với có điểm cao hơn, độ giảm điểm theo thời gian, thực theo hàm số mũ - Kết tìm kiếm: cải thiện nhiều sử dụng phương pháp đánh mục liệu đảo ngược, giúp giảm dung lượng mục xuống 15-20% so với phương pháp khác Bằng cách sử dụng hệ thống tìm kiếm phân tán, giảm thời gian tìm kiếm từ vài giây trước sử dụng hệ thống tìm kiếm tập trung, xuống 1.5 giây, giây Dưới kết tìm kiếm hệ thống tìm kiếm tiếng Việt: Forum SE (4 nodes) Blog SE (6 nodes) News SE (2 nodes) Tổng dung 48GB 64GB 16GB lượng nhớ Thời gian tìm 0.8-1.5s 0.5-1.2s