Sử dụng MapReduce và điện toán đám mây trong việc thu thập, bóc tách

Một phần của tài liệu 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 (Trang 52 - 54)

dữ liệu

Như chúng ta đã thấy ở trên, việc thu thập và bóc tách dữ liệu cần được thực hiện trên một hệ thống cluster nhiều máy trên môi trường điện toán đám mây để đảm bảo khả năng thu được nhiều trang web. Việc thực hiện trên môi trường phân tán, được thực thi thuật toán MapReduce cho quá trình xử lý, giúp xử lý các phần trong từng giai đoạn một cách nhanh và hiệu quả nhất.

- Cấu trúc dữ liệu CrawlDB được dùng để lưu trữ dữ liệu, CrawlDB là một thư mục các file chứa hai tham số chính: <URL, CrawlDatum>.

- CrawlDatum bao gồm các thông tin về nội dung của URL cần lưu trữ, bao gồm các thông tin chính sau: <status, date, interval, failures, linkCount,…>

- Status là trạng thái của URL, được lưu lại để biết có cần thu thập nội dung của URL đó hay không Status :{db_unfetched, db_fetched, db_gone, linked, fetch_success, fetch_fail, fetch_gone}

Quá trình đưa list các URL vào CSDL link

- MapReduce1: chuyển toàn bộ dữ liệu đầu vào về định dạng của CSDL. o Input: file chứa danh sách các URL.

o Map: đọc từng dòng -> <url, CrawlDatum> với status = db_unfetched o Reduce: được đồng nhất.

o Output: thư mục chứa các file tạm. - MapReduce2: kết hợp các URL vào CSDL hiện tại.

o Input: output của bước 1 và CSDL link hiện tại. o Map: được bỏ qua

o Reduce: kết hợp các URL và CSDL hiện tại thành một CSDL duy nhất

o Output: CSDL mới.

Quá trình này được thực hiện trên môi trường điện toán đám mây, với việc sử dụng nền tảng hạ tầng như một dịch vụ

Quá trình sinh các URL để tải nội dung từ các trang web này về

- MapReduce1: chọn các URL để download về o Input: CSDL link

o Map: kiểm tra điều kiện: URL đã được lấy chưa, thời gian lấy.

o Reduce: so sánh theo số lượng CrawlDatum.linkCount, lựa chọn một số lượng URL để chạy.

- MapReduce2: chuẩn bị cho quá trình download o Map: chia các URL cho các máy

o Reduce: được bỏ qua

o Out: tập các file chứa <url, CrawlDatum> để chuẩn bị download song song.

Quá trình tải nội dung các trang web

- MapReduce: download tập các URL o Input: <url, CrawlDatum>

o Map: (url,CrawlDatum) -> <url, FetcherOutput> o FetcherOutput: <CrawlDatum, Content>

o Reduce: bỏ qua

Quá trình này sử dụng nền tảng điện toán đám mây như một nền tảng ứng dụng, sử dụng nhiều máy với nhiều IP để tránh bị block IP khi thu thập các trang web. Ngoài ra khi sử dụng hệ thống proxy, có nhiều máy giúp chúng ta có thể quay vòng các proxy này tốt hơn.

Quá trình bóc tách dữ liệu

- MapReduce: bóc tách dữ liệu o Input: <url, Content>

o Map: <url, Content> -> <url, Parse> o Reduce: không chạy

o Output: có 3 dữ liệu đầu ra: <url, ParseText>, <url, ParseData> và <url, CrawlDatum> cho outlinks.

Một phần của tài liệu 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 (Trang 52 - 54)