2014-06-09 32 views
270

Sự khác biệt giữa Apache SparkApache Storm là gì? Trường hợp sử dụng phù hợp với từng trường hợp là gì?Apache Spark và Apache Storm

+10

@ mc110: Cả hai đều hỗ trợ xử lý thời gian thực. Trong khi Storm hỗ trợ cho dữ liệu đang chuyển động, Spark hỗ trợ cho dữ liệu ở trạng thái nghỉ. Còn gì nữa? – anhldbk

+4

liên kết này tính tổng cộng https://dzone.com/articles/streaming-big-data-storm-spark –

Trả lời

421

Apache Spark là nền tảng phân tích dữ liệu phân tán trong bộ nhớ - chủ yếu nhắm mục tiêu tăng tốc công việc phân tích theo lô, công việc học máy lặp lại, truy vấn tương tác và xử lý biểu đồ.

Một trong những khác biệt chính của Spark là việc sử dụng RDD hoặc Tập dữ liệu phân tán linh hoạt. RDD là tuyệt vời cho các nhà khai thác song song pipelining cho tính toán và, theo định nghĩa, không thay đổi, cho phép Spark một dạng duy nhất của khả năng chịu lỗi dựa trên thông tin dòng truyền thừa. Ví dụ, nếu bạn quan tâm, thực hiện một công việc MapReduce của Hadoop nhanh hơn nhiều, Spark là một lựa chọn tuyệt vời (mặc dù các yêu cầu bộ nhớ phải được xem xét).

Apache Storm tập trung vào xử lý luồng hoặc điều gì đó gọi là xử lý sự kiện phức tạp. Storm thực hiện một phương pháp chịu lỗi để thực hiện tính toán hoặc pipelining nhiều tính toán trên một sự kiện khi nó chảy vào một hệ thống. Người ta có thể sử dụng Storm để chuyển đổi dữ liệu phi cấu trúc khi nó chuyển vào một hệ thống thành một định dạng mong muốn.

Storm và Spark tập trung vào các trường hợp sử dụng khá khác nhau. Càng nhiều so sánh "táo-to-táo" sẽ ở giữa Storm TridentSpark Streaming. Vì các RDD của Spark vốn không thay đổi, Spark Streaming thực hiện một phương thức để cập nhật các bản cập nhật đến trong các khoảng thời gian do người dùng định nghĩa để chuyển đổi thành các RDD riêng của chúng. Các toán tử song song của Spark có thể thực hiện các phép tính trên các RDD này. Điều này khác với Storm có liên quan đến từng sự kiện riêng lẻ.

Một điểm khác biệt chính giữa hai công nghệ này là Spark thực hiện Data-Parallel computations trong khi Storm thực hiện Task-Parallel computations. Hoặc là thiết kế làm cho sự cân bằng đáng được biết đến. Tôi sẽ đề nghị kiểm tra các liên kết này.

Chỉnh sửa: đã phát hiện this hôm nay

+4

Bài viết giải thích tốt. Đề xuất tốt là http://xinhstechblog.blogspot.in/2014/06/storm-vs -spark-streaming-side-by-side.html – minhas23

+0

Liên kết không phản hồi cho tôi. Đây là từ bộ nhớ cache của Google: http://webcache.googleusercontent.com/search?q=cache:yl9B_lZ5u9EJ:xinhstechblog.blogspot.com/2014/06/storm-vs-spark-streaming-side-by-side.html+ & cd = 1 & hl = ru & ct = clnk & gl = ru – asdfasdfads

+0

Liên kết so sánh song song tuyệt vời. Đáng chú ý với Scala devs: Storm được thực hiện trong Closure, trong khi Spark được thực hiện ở Scala. –