Có bất kỳ sự phụ thuộc nào giữa Spark và Hadoop không?
Nếu không, có bất kỳ tính năng nào tôi sẽ bỏ lỡ khi chạy Spark mà không có Hadoop không?
Có bất kỳ sự phụ thuộc nào giữa Spark và Hadoop không?
Nếu không, có bất kỳ tính năng nào tôi sẽ bỏ lỡ khi chạy Spark mà không có Hadoop không?
Câu trả lời:
Spark có thể chạy mà không cần Hadoop nhưng một số chức năng của nó dựa vào mã của Hadoop (ví dụ: xử lý các tệp Parquet). Chúng tôi đang chạy Spark trên Mesos và S3, hơi khó thiết lập nhưng hoạt động thực sự tốt sau khi hoàn thành (bạn có thể đọc bản tóm tắt về những gì cần thiết để thiết lập đúng cách tại đây ).
(Chỉnh sửa) Lưu ý: kể từ phiên bản 2.3.0 Spark cũng đã thêm hỗ trợ gốc cho Kubernetes
Spark là một công cụ tính toán phân tán trong bộ nhớ.
Hadoop là một khuôn khổ cho lưu trữ phân tán ( HDFS ) và xử lý phân tán ( YARN ).
Spark có thể chạy có hoặc không có các thành phần Hadoop (HDFS / YARN)
Vì Spark không có hệ thống lưu trữ phân tán của riêng mình nên nó phải phụ thuộc vào một trong những hệ thống lưu trữ này để tính toán phân tán.
S3 - Các công việc hàng loạt không khẩn cấp. S3 phù hợp với các trường hợp sử dụng rất cụ thể khi vùng dữ liệu không quan trọng.
Cassandra - Hoàn hảo để phân tích dữ liệu trực tuyến và là một công việc quá mức cần thiết cho các công việc hàng loạt.
HDFS - Phù hợp tuyệt vời cho các công việc hàng loạt mà không ảnh hưởng đến vùng dữ liệu.
Bạn có thể chạy Spark ở ba chế độ khác nhau: Độc lập, YARN và Mesos
Hãy xem câu hỏi SE bên dưới để biết giải thích chi tiết về cả lưu trữ phân tán và xử lý phân tán.
Theo mặc định, Spark không có cơ chế lưu trữ.
Để lưu trữ dữ liệu, nó cần hệ thống tệp nhanh và có thể mở rộng. Bạn có thể sử dụng S3 hoặc HDFS hoặc bất kỳ hệ thống tệp nào khác. Hadoop là lựa chọn kinh tế do chi phí thấp.
Ngoài ra, nếu bạn sử dụng Tachyon, nó sẽ tăng hiệu suất với Hadoop. Nó rất được khuyến khích sử dụng Hadoop để xử lý tia lửa apache .
Có, tia lửa có thể chạy mà không cần hadoop. Tất cả các tính năng spark cốt lõi sẽ tiếp tục hoạt động, nhưng bạn sẽ bỏ lỡ những thứ như dễ dàng phân phối tất cả các tệp của bạn (mã cũng như dữ liệu) đến tất cả các nút trong cụm thông qua hdfs, v.v.
Theo tài liệu Spark, Spark có thể chạy mà không cần Hadoop.
Bạn có thể chạy nó ở chế độ Độc lập mà không cần bất kỳ trình quản lý tài nguyên nào.
Nhưng nếu bạn muốn chạy trong thiết lập nhiều nút , bạn cần trình quản lý tài nguyên như YARN hoặc Mesos và hệ thống tệp phân tán như HDFS, S3, v.v.
Có, bạn có thể cài đặt Spark mà không cần Hadoop. Điều đó sẽ hơi phức tạp. Bạn có thể tham khảo liên kết arnon để sử dụng parquet để cấu hình trên S3 làm bộ lưu trữ dữ liệu. http://arnon.me/2015/08/spark-parquet-s3/
Spark chỉ thực hiện xử lý và nó sử dụng bộ nhớ động để thực hiện tác vụ, nhưng để lưu trữ dữ liệu bạn cần một số hệ thống lưu trữ dữ liệu. Ở đây hadoop có vai trò với Spark, nó cung cấp kho lưu trữ cho Spark. Thêm một lý do để sử dụng Hadoop với Spark là chúng là mã nguồn mở và cả hai đều có thể tích hợp với nhau dễ dàng so với hệ thống lưu trữ dữ liệu khác. Đối với các bộ nhớ khác như S3, bạn nên cấu hình nó như đã đề cập trong liên kết trên.
Nhưng Hadoop cũng có đơn vị xử lý của nó được gọi là Mapreduce.
Bạn muốn biết sự khác biệt trong cả hai?
Kiểm tra bài viết này: https://www.dezyre.com/article/hadoop-mapreduce-vs-apache-spark-who-wins-the-battle/83
Tôi nghĩ rằng bài viết này sẽ giúp bạn hiểu
sử dụng cái gì,
khi nào sử dụng và
làm thế nào để sử dụng !!!
Có, Spark có thể chạy có hoặc không có cài đặt Hadoop để biết thêm chi tiết, bạn có thể truy cập - https://spark.apache.org/docs/latest/
Có tia lửa có thể chạy mà không cần Hadoop. Bạn có thể cài đặt spark trong máy cục bộ của mình mà không cần dùng Hadoop. Nhưng Spark lib đi kèm với các thư viện Haddop trước, tức là được sử dụng trong khi cài đặt trên máy cục bộ của bạn.
Không. Nó yêu cầu cài đặt Hadoop hoàn chỉnh để bắt đầu hoạt động - https://issues.apache.org/jira/browse/SPARK-10944
$ ./spark-shell Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream at org.apache.spark.deploy.SparkSubmitArguments$$anonfun$mergeDefaultSparkProperties$1.apply(SparkSubmitArguments.scala:118) at org.apache.spark.deploy.SparkSubmitArguments$$anonfun$mergeDefault at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 7 more