Apache Druid:

cre: https://druid.apache.org/

Thường sử dụng Druid cho những bài toán nào?

Triển khai thử với Druid cần gì?


So sánh giữa Druid và Spark:

Spark:

Spark là cluster computing framework được tạo ra dựa trên concept của Resilient Distributed Datasets (RDDs).

RDDs cho phép tái sử dụng lại dữ liệu bằng cách lưu trữ lại các kết quả trung gian trong memory và cho phép Spark cung cấp các tính toán nhanh cho các thuật toán hay lặp lại. => phù hợp nhiều cho Machine learning

Tính tổng quan của Spark giúp nó phù hợp để làm sạch và transform dữ liệu.

Mặc dù Spark có khả năng truy vấn dữ liệu thông qua SparkSQL nhưng nó không phù hợp cho các tương tác query cần tốc độ nhanh trong vài giây.

Druid:

Thường được sử dụng để tăng tốc cho OLAP queries trong Spark.

Sứ mệnh của nó là tập trung chủ yếu giảm độ trễ queries xuống mức tối đa và là framework lý tưởng để tăng tốc cho ứng dụng được sử dụng bởi hàng ngàn user. Làm sao để mà user có thể tương tác và nhận được kết quả nhanh chóng nhất.

Druid index vào toàn bộ data và có thể làm lớp đứng giữa Spark và ứng dụng của bạn.

Ứng dụng cơ bản nhất người ta setup đó là dùng Spark để xử lý data và load data đã được xử lý vào Druid để có thể truy cập query nhanh chóng.

cre: https://druid.apache.org/docs/latest/comparisons/druid-vs-spark.html

Đọc thêm: https://www.linkedin.com/pulse/combining-druid-spark-interactive-flexible-analytics-scale-butani


Hadoop là gì?

Có 2 loại file metadata:
FsImage: Là nơi lưu trữ trạng thái của các file system namespace (từ này hơi khó để dịch) kể từ khi namenode được khởi động.
EditLogs: Là nơi lưu lại quá sửa đổi của các file system.
HDFS (Hadoop Distributed File System)

Là hệ thống phân tán cung cấp khả năng lưu trữ dữ liệu khổng lồ và tính năng giúp tối ưu việc sử dụng băng thông giữa các node.

Đặc biệt cho phép truy cập nhiều disk như là 1 disk. Nói cách khác là không bị giới hạn về dung lượng, nếu cần thêm chỉ cần thêm Node vào hệ thống là ok.

Có thể được sử dụng để chạy trên cluster lớn với hàng chục ngàn node.

Có kiến trúc Master-Slave với:

Một tập tin HDFS sẽ được chia làm nhiều block và được lưu trữ trong các DataNodes. Kích thước 1 block thường là 64MB và có thể thay đổi bằng việc cấu hình.

Map-Reduce

Là framework dùng để viết các application giúp xử lý song song lượng dữ liệu lớn có khả năng


https://www.youtube.com/watch?v=nfMANR13ZSA

Là framework để xử lý data.