1. Nêu các đặc trưng cơ bản của dữ liệu lớn. Với mỗi đặc trưng hãy nêu ví dụ thực tế để minh họa: 2. Nêu các lợi ích của xử lý dữ liệu lớn. Nêu ví dụ thực tế minh họa. 3. Nêu các thách thức khi xử lý dữ liệu lớn.
4. Trình bày các cách tiếp cận chính hiện nay để xử lý dữ liệu lớn.
5. Trình bày vắn tắt các đặc điểm chính của Hadoop. Nêu các ưu điểm, nhược điểm chính của Hadoop. ![image](https://user-images.githubusercontent.com/99172799/168300427-bc56d61c-bc71-4ccf-8637-7e234cc1b16a.png https://data-flair.training/blogs/13-limitations-of-hadoop/ Nhược điểm
6. Trình bày vắn tắt các thành phần chính của Hadoop. 7. Mô tả mô hình lập trình MapReduce. Trình bày vắn tắt luồng xử lý dữ liệu trong MapReduce.
Nền tảng Hadoop cho phép triển khai các ứng dụng xử lý dữ liệu lớn (hàng TB) song song trên các cụm (cluster) lên đến hàng ngàn máy tính với độ tin cậy và khả năng chịu lỗi cao.
Mô hình MapReduce chia tác vụ xử lý thành 2 pha: map và reduce. Với mỗi pha xử lý cần có 1 chương trình tương ứng: mapper và reducer. Cần phải lập trình mapper và reducer để xử lý theo yêu cầu bài toán.
Khi bắt đầu xử lý, dữ liệu vào sẽ được chia nhỏ thành nhiều phần, mỗi phần được gửi đến một máy trạm riêng biệt. Mỗi máy trạm thực thi chương trình mapper trên phần dữ liệu nhận được.
Chương trình mapper đọc dữ liệu vào và chuyển thành các cặp <key, value>.
Giá trị của <key, value> do người lập trình xác định tùy theo yêu cầu bài toán.
Ví dụ, với bài toán đếm từ, cặp <key, value> là <word, count>. Với mỗi từ đọc được, chương trình mapper xuất ra cặp giá trị <word, 1>. Các cặp <word, 1> sẽ được gộp và nhóm lại, những cặp <word, 1> giống nhau sẽ được nhóm lại và gửi đến một máy trạm riêng lẻ để xử lý ở pha reduce.
Chương trình reducer xử lý các cặp <key, value> và rút gọn chúng theo cách mong muốn. Ví dụ, để đếm số lần xuất hiện của mỗi từ, chương trình reducer sẽ cộng giá trị của tất cả các cặp <word, 1> trùng nhau.
Minh họa giải quyết bài toán đếm từ với mô hình MapReduce. Image source: https://bit.ly/3gfU6te |
8. Trình bày các đặc điểm chính của nền tảng Apache Spark.
9. Trình bày các điểm khác biệt chính trong mô hình xử lý của Spark so với MapReduce.
10. Trình bày các thành phần chính của nền tảng Apache Spark.
- Apache Spark Core
- Là hệ thống cốt lõi thực thi tổng quát, **làm cơ sở xây dựng các chức năng khác**.
- Cung cấp tính năng tính toán trong bộ nhớ (In-Memory computing) và tham chiếu dữ liệu trên bộ nhớ ngoài.
- Spark SQL
- Là thành phần được xây dựng trên nền Spark Core, cung cấp tính năng trừu tượng hóa dữ liệu (data abstraction) gọi là SchemaRDD, cho phép xử lý dữ liệu có cấu trúc và bán cấu trúc.
- Spark Streaming
- Spark Streaming khai thác tính năng lập lịch nhanh của Spark Core để thực hiện các tác vụ xử lý luồng (streaming). Dữ liệu được chia thành các gói nhỏ và thực hiên chuyển đổi RDD trên chúng.
- MLlib (Machine Learning Library)
- Là nền tảng học máy phân tán trên Spark.
- GraphX
- Là nền tảng xử lý đồ thị phân tán (distributed graph-processing) trên Spark.