Apache Storm - Giới thiệu
Apache Storm là gì?
Apache Storm là một hệ thống xử lý dữ liệu lớn thời gian thực phân tán. Storm được thiết kế để xử lý lượng lớn dữ liệu theo phương pháp có khả năng chịu lỗi và có thể mở rộng theo chiều ngang. Đây là một khung dữ liệu truyền trực tuyến có khả năng đạt tỷ lệ nhập cao nhất. Mặc dù Storm không có trạng thái, nó quản lý môi trường phân tán và trạng thái cụm thông qua Apache ZooKeeper. Nó đơn giản và bạn có thể thực hiện song song tất cả các loại thao tác trên dữ liệu thời gian thực.
Apache Storm đang tiếp tục dẫn đầu trong lĩnh vực phân tích dữ liệu thời gian thực. Storm rất dễ cài đặt, vận hành và nó đảm bảo rằng mọi thông báo sẽ được xử lý thông qua cấu trúc liên kết ít nhất một lần.
Apache Storm vs Hadoop
Về cơ bản, các khung công tác Hadoop và Storm được sử dụng để phân tích dữ liệu lớn. Cả hai đều bổ sung cho nhau và khác nhau ở một số khía cạnh. Apache Storm thực hiện tất cả các hoạt động ngoại trừ tính bền bỉ, trong khi Hadoop giỏi mọi thứ nhưng lại chậm trễ trong tính toán thời gian thực. Bảng sau so sánh các thuộc tính của Storm và Hadoop.
Bão táp | Hadoop |
---|---|
Xử lý luồng thời gian thực | Xử lý hàng loạt |
Không quốc tịch | Trạng thái |
Kiến trúc Master / Slave với sự phối hợp dựa trên ZooKeeper. Nút chính được gọi lànimbus và nô lệ là supervisors. | Kiến trúc chủ-tớ có / không có phối hợp dựa trên ZooKeeper. Nút chính làjob tracker và nút nô lệ là task tracker. |
Quá trình phát trực tuyến Storm có thể truy cập hàng chục nghìn tin nhắn mỗi giây trên cụm. | Hệ thống tệp phân tán Hadoop (HDFS) sử dụng khung công tác MapReduce để xử lý lượng lớn dữ liệu mất vài phút hoặc hàng giờ. |
Cấu trúc liên kết bão chạy cho đến khi người dùng tắt máy hoặc lỗi không thể khôi phục bất ngờ. | Các công việc MapReduce được thực hiện theo thứ tự tuần tự và hoàn thành cuối cùng. |
Both are distributed and fault-tolerant | |
Nếu nimbus / người giám sát chết, khởi động lại sẽ làm cho nó tiếp tục từ nơi nó đã dừng, do đó không có gì bị ảnh hưởng. | Nếu JobTracker chết, tất cả các công việc đang chạy sẽ bị mất. |
Các trường hợp sử dụng của Apache Storm
Apache Storm rất nổi tiếng với khả năng xử lý luồng dữ liệu lớn theo thời gian thực. Vì lý do này, hầu hết các công ty đang sử dụng Storm như một phần không thể thiếu trong hệ thống của họ. Một số ví dụ đáng chú ý như sau:
Twitter- Twitter đang sử dụng Apache Storm cho phạm vi “Sản phẩm phân tích nhà xuất bản”. “Sản phẩm phân tích nhà xuất bản” xử lý từng tweet và nhấp chuột trong Nền tảng Twitter. Apache Storm được tích hợp sâu với cơ sở hạ tầng Twitter.
NaviSite- NaviSite đang sử dụng Storm cho hệ thống kiểm tra / giám sát nhật ký sự kiện. Mọi bản ghi được tạo trong hệ thống sẽ đi qua Storm. Storm sẽ kiểm tra thông báo dựa trên tập hợp biểu thức chính quy đã định cấu hình và nếu có sự trùng khớp, thì thông báo cụ thể đó sẽ được lưu vào cơ sở dữ liệu.
Wego- Wego là một công cụ tìm kiếm du lịch đặt tại Singapore. Dữ liệu liên quan đến du lịch đến từ nhiều nguồn trên khắp thế giới với thời gian khác nhau. Storm giúp Wego tìm kiếm dữ liệu theo thời gian thực, giải quyết các vấn đề đồng thời và tìm kết quả phù hợp nhất cho người dùng cuối.
Lợi ích của Apache Storm
Dưới đây là danh sách những lợi ích mà Apache Storm cung cấp:
Storm là mã nguồn mở, mạnh mẽ và thân thiện với người dùng. Nó có thể được sử dụng trong các công ty nhỏ cũng như các tập đoàn lớn.
Storm có khả năng chịu lỗi, linh hoạt, đáng tin cậy và hỗ trợ mọi ngôn ngữ lập trình.
Cho phép xử lý luồng thời gian thực.
Storm nhanh không thể tin được vì nó có khả năng xử lý dữ liệu rất lớn.
Storm có thể duy trì hiệu suất ngay cả khi tải ngày càng tăng bằng cách bổ sung tuyến tính tài nguyên. Nó có khả năng mở rộng cao.
Storm thực hiện làm mới dữ liệu và phản hồi phân phối từ đầu đến cuối trong vài giây hoặc vài phút tùy thuộc vào sự cố. Nó có độ trễ rất thấp.
Storm có hoạt động tình báo.
Storm cung cấp khả năng xử lý dữ liệu đảm bảo ngay cả khi bất kỳ nút nào được kết nối trong cụm chết hoặc thông báo bị mất.