2015-06-27 23 views
14

Sự hiểu biết của tôi là Spark là một thay thế cho Hadoop. Tuy nhiên, khi cố gắng cài đặt Spark, trang cài đặt yêu cầu cài đặt Hadoop hiện có. Tôi không thể tìm thấy bất cứ điều gì làm rõ mối quan hệ đó.Mối quan hệ giữa Spark, Hadoop và Cassandra

Thứ hai, Spark dường như có kết nối tốt với Cassandra và Hive. Cả hai đều có giao diện kiểu sql. Tuy nhiên, Spark có sql riêng của nó. Tại sao một người sử dụng Cassandra/Hive thay vì sql bản địa của Spark? Giả sử rằng đây là một dự án hoàn toàn mới không có cài đặt hiện tại?

Trả lời

3

Im viết một bài báo về Hadoop cho trường đại học. Và vấp phải câu hỏi của bạn. Spark chỉ sử dụng Hadoop cho sự kiên trì và chỉ khi bạn muốn sử dụng nó. Có thể sử dụng nó với các mức độ bền vững khác như Amazon EC2.

Mặt khác tia lửa đang chạy trong bộ nhớ và nó không phải là xây dựng primarly được sử dụng cho bản đồ giảm sử dụng trường hợp như Hadoop là/là.

tôi có thể giới thiệu bài viết này, nếu bạn thích một mô tả chi tiết hơn: https://www.xplenty.com/blog/2014/11/apache-spark-vs-hadoop-mapreduce/

+0

bài viết hay. bạn đề cập rằng tia lửa có thể chạy ở chế độ độc lập. tuy nhiên, trang tải xuống của riêng họ không cung cấp cho tôi tùy chọn đó. đó là những gì bắt đầu sự nhầm lẫn. tất cả các tùy chọn tải về tham khảo hadoop! – Shahbaz

+0

bạn cũng đề cập rằng tia lửa nên có bộ nhớ bằng với dữ liệu đang được xử lý. Tuy nhiên, trang đích của spark tuyên bố cải thiện 10x trên hadoop cho đĩa dựa trên xử lý (100x cho bộ nhớ dựa). bạn có thấy rằng họ có điều gì đó thú vị để cung cấp cho dữ liệu dựa trên đĩa không? đối với dữ liệu lớn, chúng có thay thế cho hdfs không? – Shahbaz

+0

tôi biết nó hơi muộn cho câu trả lời nhưng tôi đã bị căng thẳng.Chủ đề của tôi nhiều hơn là bên hadoop và tia lửa chỉ bật lên, vì vậy tôi không thực sự chắc chắn cho dù đó là tải toàn bộ dữ liệu vào bộ nhớ hoặc nếu nó chỉ tải phần nhưng tôi nghĩ rằng điểm thứ hai là hợp lý hơn. Về kết luận của tôi, tôi nghĩ bạn không cần dung lượng lưu trữ tương tự cho bộ nhớ nhưng bạn cần rất nhiều. Tôi nghĩ thật thú vị khi xem xét chủ đề này. – sascha10000

40

Spark là một phân phối trong công cụ xử lý bộ nhớ. Nó không cần phải được ghép nối với Hadoop, nhưng vì Hadoop là một trong những công cụ xử lý dữ liệu lớn phổ biến nhất, Spark được thiết kế để hoạt động tốt trong môi trường đó. Ví dụ, Hadoop sử dụng HDFS (Hệ thống tệp phân tán Hadoop) để lưu trữ dữ liệu của nó, vì vậy Spark có thể đọc dữ liệu từ HDFS và lưu kết quả trong HDFS.

Đối với tốc độ, Spark giữ các tập dữ liệu trong bộ nhớ. Nó thường sẽ bắt đầu một công việc bằng cách tải dữ liệu từ bộ nhớ bền, chẳng hạn như HDFS, Hbase, cơ sở dữ liệu Cassandra, v.v. Sau khi được nạp vào bộ nhớ, Spark có thể chạy nhiều phép biến đổi trên tập dữ liệu để tính toán kết quả mong muốn. Kết quả cuối cùng sau đó thường được ghi lại để lưu trữ bền.

Về mặt thay thế cho Hadoop, nó có thể nhanh hơn nhiều so với Hadoop ở một số hoạt động nhất định. Ví dụ, một hoạt động giảm nhiều bản đồ có thể nhanh hơn đáng kể trong Spark so với bản đồ Hadoop vì hầu hết các I/O đĩa của Hadoop đều tránh được. Spark có thể đọc dữ liệu được định dạng cho Apache Hive, vì vậy Spark SQL có thể nhanh hơn nhiều so với HQL (Hive Query Language).

Cassandra có ngôn ngữ truy vấn gốc riêng của nó được gọi là CQL (Ngôn ngữ truy vấn Cassandra), nhưng nó là một tập con nhỏ của SQL đầy đủ và khá nghèo đối với những thứ như tập hợp và truy vấn đặc biệt. Vì vậy, khi Spark được ghép nối với Cassandra, nó cung cấp một ngôn ngữ truy vấn giàu tính năng hơn và cho phép bạn thực hiện phân tích dữ liệu mà CQL gốc không cung cấp.

Trường hợp sử dụng khác cho Spark là để xử lý luồng. Spark có thể được thiết lập để nhập dữ liệu thời gian thực đến và xử lý dữ liệu theo lô nhỏ, sau đó lưu kết quả vào bộ nhớ bền, chẳng hạn như HDFS, Cassandra, v.v.

Vì vậy, tia lửa thực sự là một hệ thống độc lập trong bộ nhớ có thể được ghép nối với nhiều cơ sở dữ liệu và hệ thống tệp được phân phối khác nhau để thêm hiệu suất, triển khai SQL hoàn chỉnh hơn và các tính năng có thể thiếu một quá trình xử lý luồng như vậy.

+0

Câu trả lời tuyệt vời! Trên Hive vs Spark SQL phía trước nó có thể là sâu sắc kể rằng Hive là trong quá trình [áp dụng Spark như thực hiện phụ trợ của nó] (https://issues.apache.org/jira/browse/HIVE-7292) (như là một thay thế cho MapReduce). Tôi nghĩ tại thời điểm đó sự khác biệt giữa Hive và Spark SQL sẽ chỉ là triển khai thực hiện kế hoạch thực hiện truy vấn. –

+0

Tôi đã giả định rằng RDD của Spark được lưu trữ trên HDFS và có thể sử dụng trình quản lý vườn thú của Hadoop và cơ sở hạ tầng khác. Bạn có vẻ (@Jim Meyer) dường như ngụ ý rằng tia lửa không có sự phụ thuộc cứng và tia lửa có các bộ phận phản gián riêng của nó đối với các thành phần đó? – Shahbaz

+0

Ngoài ra, tôi tiếp tục đọc về tia lửa là một hệ thống trong bộ nhớ. Tôi đang xem xét một hệ thống để xử lý khoảng hai terra-byte (nén) dữ liệu mỗi ngày. Không có cách nào tôi giữ nó trong bộ nhớ, ngay cả khi sử dụng một cụm máy tính. Nếu tôi cần phải đưa đĩa vào chơi, nơi nào để lại tia lửa? Liệu nó có mất đi lợi thế của nó trên hadoop/cassandra/hive hay nó vẫn có cái gì đó để cung cấp? – Shahbaz

Các vấn đề liên quan