KẾT LUẬN CHƢƠNG 1

Một phần của tài liệu (LUẬN văn THẠC sĩ) kết hợp r và hadoop trong khai phá dữ liệu (Trang 51 - 54)

5. Phƣơng pháp nghiên cứu

1.5. KẾT LUẬN CHƢƠNG 1

Khai phá dữ liệu là một trong những chủ đề đƣợc tập trung nghiên cứu từ rất lâu, đặc biệt trong thời điểm hiện nay, nhu cầu xử lý dữ liệu để cung cấp thông tin cho các lĩnh vực khác nhau của đời sống cũng nhƣ theo kịp sự bùng nổ dữ liệu trở nên cấp thiết hơn bao giờ hết. Cùng với sự xuất hiện của các ngôn ngữ, công cụ mới có khả năng đơn giản hóa quá trình viết mã, tận dụng các thƣ viện có sẵn từ cộng đồng đông đảo và các nền tảng mới tăng khả năng xử lý, hoạt động linh động trên hệ thống phân tán sẽ giúp quá trình tiếp cận và khai phá dữ liệu trên tập dữ liệu lớn trở nên dễ tiếp cận và hiệu quả hơn. Trong chƣơng 1 đã giới thiệu tổng quan về khai phá dữ liệu, R và dữ liệu lớn cũng nhƣ mô hình lập trình MapReduce và các nghiên cứu mới nhất về ứng dụng mô hình lập trình MapReduce vào khai phá dữ liệu là tiền đề để sử dụng một số thuật toán khai phá dữ liệu trong R cũng nhƣ áp dụng mô hình lập trình MapReduce vào R trong khai phá dữ liệu trong chƣơng hai.

44

CHƢƠNG 2. KẾT HỢP R VÀ HADOOP TRONG KHAI PHÁ DỮ LIỆU

2.1. TẠI SAO PHẢI KẾT HỢP R VÀ HADOOP

Sức mạnh phân tích của R + Sức mạnh lưu trữ và xử lý của Hadoop = Giải pháp lý tưởng cho phân tích dữ liệu lớn

R là một công cụ lập trình khoa học dữ liệu tuyệt vời để chạy phân tích dữ liệu thống kê trên các mô hình và chuyển các kết quả phân tích thành đồ họa đầy màu sắc. Không còn nghi ngờ gì nữa, R là công cụ lập trình đƣợc ƣa thích nhất đối với các nhà thống kê, nhà khoa học dữ liệu, nhà phân tích dữ liệu và kiến trúc sƣ dữ liệu nhƣng nó lại hạn chế khi làm việc với các bộ dữ liệu lớn. Một nhƣợc điểm lớn với ngôn ngữ lập trình R là tất cả các đối tƣợng đƣợc tải vào bộ nhớ chính của một máy. Các bộ dữ liệu lớn có kích thƣớc petabyte không thể đƣợc tải vào bộ nhớ RAM.

Khi Hadoop tích hợp với ngôn ngữ R, là một giải pháp lý tƣởng. Để thích ứng với bộ nhớ trong, giới hạn máy đơn của ngôn ngữ lập trình R, các nhà khoa học dữ liệu phải giới hạn phân tích dữ liệu của họ ở một mẫu dữ liệu từ tập dữ liệu lớn. Hạn chế này của ngôn ngữ lập trình R là một trở ngại lớn khi xử lý dữ liệu lớn. Vì, R không có khả năng mở rộng, công cụ R lõi chỉ có thể xử lý lƣợng dữ liệu giới hạn. Ngƣợc lại, các nền tảng xử lý phân tán nhƣ Hadoop có thể mở rộng cho các hoạt động và tác vụ phức tạp trên các bộ dữ liệu lớn nhƣng không có khả năng phân tích thống kê mạnh.

Sử dụng R trên Hadoop sẽ cung cấp nền tảng phân tích dữ liệu có khả năng mở rộng cao, có thể đƣợc co giãn theo kích thƣớc của tập dữ liệu. Việc tích hợp Hadoop với R cho phép các nhà khoa học dữ liệu chạy R song song trên tập dữ liệu lớn vì không có thƣ viện khoa học dữ liệu nào trong ngôn ngữ R sẽ hoạt động trên tập dữ liệu lớn hơn bộ nhớ của nó. Khi R gặp lƣợng dữ liệu lớn cỡ

45

Petabyte trở lên thì rõ ràng việc vận hành, thực thi xử lý dữ liệu là rất khó khăn. Để giải quyết vấn đề đó, ngƣời ta chỉ có cách là làm thế nào để tăng đƣợc khả năng xử lý hệ thống máy tính lên. Đó chính là việc kết hợp R với Hadoop. Và Hadoop có 2 phƣơng án mô hình đƣợc đƣa ra là:

Scale Up (làm tăng khả năng xử lý của máy chủ lên bằng cách tăng CPU và tăng bộ nhớ RAM).

Scale Out (làm tăng khả năng xử lý của hệ thống bằng cách tăng số lƣợng máy lên).

Ƣu nhƣợc điểm của Scale Up

Ưu điểm:

Việc thực thi là dễ dàng. Đơn giản chỉ là lắp thêm (hoặc thay thế) CPU và RAM cho máy chủ, vì số máy chủ không đổi nên sẽ không mất thêm chi phí lincense cho các phần mềm chạy trên đó. Việc quản lý, vận hành máy chủ không thay đổi so với trƣớc do số lƣợng máy vẫn nhƣ cũ.

Nhược điểm:

Việc tăng hiệu năng cho 1 máy chủ là có giới hạn. Ta không thể muốn lắp thêm bao nhiêu CPU, bao nhiêu RAM cũng đƣợc, vì chi phí cho linh kiện CPU, RAM có cấu hình cao ngày càng đắt đỏ. Việc vận hành hệ thống trên 1 máy chủ cũng gặp phải nhiều rủi ro khi máy đó bị dừng thì hệ thống cũng sẽ ngừng hoạt động.

Ƣu nhƣợc điểm của Scale Out

Ưu điểm:

Việc tăng hiệu năng của hệ thống gần nhƣ không giới hạn bởi chỉ cần tăng máy chủ là tăng đƣợc hiệu năng của hệ thống. Chúng ta có thể tận dụng

46

đƣợc những máy chủ cấu hình thấp, rẻ tiền. Một vài máy chủ ngừng hoạt động thì hệ thống vẫn có thể hoạt động đƣợc bình thƣờng mà không bị gián đoạn.

Nhược điểm:

Việc tăng số lƣợng máy làm tăng số lƣợng lincense của các phần mềm trên các máy chủ. Cũng nhƣ việc quản lý một hệ thống với số lƣợng lớn máy chủ là cực kỳ phức tạp. Hãy tƣởng tƣợng nếu vận hành một hệ thống lên tới hàng nghìn náy chủ thì ta sẽ vất vả đến cỡ nào. Trong khi đó việc cài đặt, triển khai một hệ thống phần mềm hoạt động trên nhiều máy chủ cũng không hề đơn giản.

Từ những ƣu nhƣợc điểm của 2 phƣơng án trên, ta thấy rõ ràng là phƣơng án Scale Out có lợi thế hơn nhiều so với phƣơng án Scale Up trong việc tăng hiệu năng xử lý của hệ thống máy chủ. Ngoài những so sánh trên, một khó khăn nữa cũng cần phải kể đến là tốc độ truyền tải (đọc ghi) của ổ cứng. Ngƣời dùng không để đợi quá lâu để có đƣợc kết quả báo cáo từ việc phân tích 1Petabyte dữ liệu, nhƣng khi ta triển khai mô hình Scale Out của Hadoop thì việc đọc dữ liệu là song song, giả sử ta xử lý 1Petabyte dữ liệu trên một hệ thống gồm 1000 máy chủ thì việc đọc dữ liệu có thể sẽ nhanh hơn 1000 lần, nói cách khác thời gian chờ giảm xuống rất nhiều.

Nhƣ vậy để giải quyết bài toán chỉ có phƣơng án duy nhất là hệ thống phải đƣợc triển khai theo mô hình Scale Out. Và Hadoop là một framework cho phép thực thi theo mô hình này. Hơn thế nữa, Hadoop còn cho phép ngƣời quản trị quản lý, cài đặt và vận hành một cách khá dễ dàng thông qua giao diện UI và Command line.

Một phần của tài liệu (LUẬN văn THẠC sĩ) kết hợp r và hadoop trong khai phá dữ liệu (Trang 51 - 54)

Tải bản đầy đủ (PDF)

(87 trang)