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 cloud computing và thuật toán mapreduce

78 313 0
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 cloud computing và thuật toán mapreduce

Đ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

BỘ GIÁO DỤC ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI HOÀ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 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 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 toá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 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 toá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 TOÁN TÌM KIẾM THEO YÊU CẦU NGƯỜI SỬ DỤNG ĐỀ XUẤT GIẢI PHÁP DỰA TRÊN ĐIỆN TOÁN ĐÁM MÂY GIẢI THUẬT MAPREDUCE 34 3.1 Bài toá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 toá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 toá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 toá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 toá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 THỬ NGHIỆM THỰC TẾ 60 4.1 Bài toá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 toá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 toán Mô hình tính toá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 toán, thêm tài nguyên), chiều sâu (cải tiến thuật toán (từ lập trình cấp thấp, lập trình cấp cao, tính toán song song, tính toá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 toá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 toá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, mô hình lập trình này, ứ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 toá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ồ đầ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 toán mới, dựa tảng phân tán đòi hỏi cấp thiết trình giải vấn đề tính toán Hiện mô hình quan tâm phát triển nhiều điện toá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 toá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 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 toá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à phụ thuộc nhiều vào 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 toá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 toá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 toá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 toán chất lượng tìm kiếm Tất toán cần xử lý liệu nói chung, đặc biệt toán liệu lớn sử dụng thuật toán MapReduce 1.3 Bài toán tìm kiếm theo yêu cầu người sử dụng (Object searching by request) Bài toán tìm kiếm liệu tồn thời gian lâu Khi liệu ít, nhiều toá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 yêu cầu người dùng khó khăn Những khó khăn toá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 hệ thống theo dõi, quản lý tự động, kiểm soát 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 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 toàn yê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ạo hệ thống phân tích log để phân tích yê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 toà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 hoàn toàn khác so với cách thông thường Thuật toá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 toán có cách để thu thập liệu riêng Với toá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 Ngoà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 toá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, 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 toá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 sử dụng công thức tính PageRank tương tự công bố Google [36] Ngoà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 toán tính toá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

Ngày đăng: 27/07/2017, 20:36

Từ khóa liên quan

Mục lục

  • TRANG BÌA

  • MỤC LỤC

  • DANH MỤC HÌNH VẼ

  • DANH MỤC BẢNG BIỂU

  • CHƯƠNG 1

  • CHƯƠNG 2

  • CHƯƠNG 3

  • CHƯƠNG 4

  • TÀI LIỆU THAM KHẢO

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

  • Đang cập nhật ...

Tài liệu liên quan