Bạn biết gì về Big data, Hadoop, và Spark? Trong bài viết này là một dạng bài tìm hiểu overview về hai Big data framework này mà INDA sẽ chia sẻ cùng các bạn.
Ngày nay chúng ta được bao bọc bởi dữ liệu từ số lượng vô cùng lớn các website. Với lượng dữ liệu số tăng gấp đôi sau mỗi hai năm, vũ trụ số đang đuổi theo vũ trụ vật lý một cách nhanh chóng. Ước tính đến năm 2020, vũ trụ số có kích thước tới 44 Zettabyte. Số lượng các bit dữ liệu tương đương với số ngôi sao trong vũ trụ vật lý. Như nói ở trên, dữ liệu ngày càng gia tăng. Để số hóa hết lượng dữ liệu lớn này ngày càng có nhiều hệ thống phân tán trên thị trường. Trong số các hệ thống này, Hadoop và Spark đọ sức với nhau như những đối thủ cạnh tranh trực tiếp.
Để quyết định chọn lựa framework nào là phù hợp với tổ chức của bạn, việc so sánh hai framework này là quan trọng và cần thiết. So sánh này dựa trên một số tham số thiết yếu sau.
Mục lục
Hiệu năng – Performance
Về tốc độ xử lý thì Spark nhanh hơn Hadoop. Spark được cho là nhanh hơn Hadoop gấp 100 lần khi chạy trên RAM, và gấp 10 lần khi chạy trên ổ cứng. Hơn nữa, người ta cho rằng Spark sắp xếp (sort) 100TB dữ liệu nhanh gấp 3 lần Hadoop trong khi sử dụng ít hơn 10 lần số lượng hệ thống máy tính.Sở dĩ Spark nhanh là vì nó xử lý mọi thứ ở RAM. Nhờ xử lý ở bộ nhớ nên Spark cung cấp các phân tích dữ liệu thời gian thực cho các chiến dịch quảng cáo, machine learning (học máy), hay các trang web mạng xã hội.
Tuy nhiên, khi Spark làm việc cùng các dịch vụ chia sẻ khác chạy trên YARN thì hiệu năng có thể giảm xuống. Điều đó có thể dẫn đến rò rỉ bộ nhớ trên RAM. Hadoop thì khác, nó dễ dàng xử lý vấn đề này. Nếu người dùng có khuynh hướng xử lý hàng loạt (batch process) thì Hadoop lại hiệu quả hơn Spark.
Tóm lại ở yếu tố hiệu năng, Spark và Hadoop có cách xử lý dữ liệu khác nhau. Việc lựa chọn framework nào phụ thuộc yêu cầu cụ thể từng dự án.
Bảo mật – Security
Bảo mật của Spark đang được phát triển, hiện tại nó chỉ hỗ trợ xác thực mật khẩu (password authentication). Ngay cả trang web chính thức của Apache Spark cũng tuyên bố rằng, “Có rất nhiều loại mối quan tâm bảo mật khác nhau. Spark không nhất thiết phải bảo vệ chống lại tất cả mọi thứ”.
Mặt khác, Hadoop trang bị toàn bộ các mức độ bảo mật như Hadoop Authentication, Hadoop Authorization, Hadoop Auditing, and Hadoop Encryption. Tất cả các tính năng này liên kết với các dự án Hadoop bảo mật như Knox Gateway và Sentry.
Vậy là ở mặt bảo mật thì Spark kém bảo mật hơn Hadoop. Nếu có thể tích hợp Spark với Hadoop thì Spark có thể “mượn” các tính năng bảo mật của Hadoop.
Chi phí
Trước tiên, cả Spark và Hadoop đều là các framework mã nguồn mở (open source), nghĩa là nó miễn phí. Cả hai đều sử dụng các server chung, chạy trên could, và dường như chúng sử dụng các cầu hình phần cứng tương tự nhau.Vậy thì làm sao để đánh giá, so sánh về chi phí giữa hai framework này đây?
Xin được nhắc lại là Spark cần một lượng lớn RAM vì nó xử lý mọi thứ ở bộ nhớ. Đây là yếu tố ảnh hưởng đến chi phí vì giá thành của RAM cao hơn ổ đĩa. Trong khi đó Hadoop bị ràng buộc bởi ổ đĩa, ổ đĩa thì rẻ hơn RAM. Tuy nhiên Hadoop thì cần nhiều hệ thống hơn để phân bổ ổ đĩa I/O.
Do vậy, khi nhu cầu của bạn là xử lý lượng lớn dữ liệu dạng lịch sử thì Hadoop là lựa chọn tốt vì dữ liệu dạng này cần lưu và có thể được xử lý trên ổ đĩa. Còn khi yêu cầu là xử lý dữ liệu thời gian thực thì Spark là lựa chọn tối ưu vì ta chỉ cần ít hệ thống cho sử lý cùng một lượng lớn dữ liệu với thời gian giảm nhiều lần hơn khi sử dụng Hadoop.
Dễ sử dụng
Một trong những ưu điểm lớn nhất của Spark là tính dễ sử dụng. Spark có giao diện người dùng thân thiện. Spark cung cấp các API thân thiện cho Scala Java, Python, và Spark SQL (hay còn gọi là Shark). Việc Spark được xây dựng từ các khối đơn giản nó giúp ta tạo các hàm do người dùng xác định một cách dễ dàng.
Trong khi đó Hadoop được viết bằng Java và có tiếng xấu là mở đường cho sự khó khăn trong việc viết chương trình không có chế độ tương tác. Mặc dù Pig (một công cụ bổ trợ) giúp lập trình dễ dàng hơn, nhưng nó cũng tốn thời gian để học cú pháp.
Kết luận
Spark ưu điểm là nhanh, dễ sử dụng, còn Hadoop thì ưu điểm bảo mật mạnh mẽ, lưu trữ lớn, xử lý hàng loạt (batch processs) với chi phí thấp. Chọn framework nào phụ thuộc hoàn toàn vào đặc thù dự án của bạn.
LỘ TRÌNH TRỞ THÀNH DATA ANALYST CHUYÊN GIA PHÂN TÍCH DỮ LIỆU
LỘ TRÌNH THĂNG TIẾN CỦA MỘT CHUYÊN GIA PHÂN TÍCH DỮ LIỆU (DATA ANALYST)