Cụm tia lửa của tôi có 1 bản chính và 3 công nhân (trên 4 máy riêng biệt, mỗi máy có 1 lõi) và các cài đặt khác như trong hình bên dưới, trong đó spark.cores.max được đặt thành và spark.executor.cores cũng (trong pic-1)tại sao Spark không phân phối công việc cho tất cả các nhà thực thi, mà chỉ cho một người thực hiện?
Nhưng khi tôi gửi công việc của tôi để Spark cụm, từ Spark web UI tôi có thể thấy chỉ có một chấp hành viên được sử dụng (theo bộ nhớ đã sử dụng và khối RDD trong pi c-2), nhưng không phải tất cả những người thi hành. Trong trường hợp này tốc độ xử lý chậm hơn nhiều so với dự kiến của tôi.
Vì tôi đã đặt các lõi tối đa thành 3, nên không phải tất cả các nhà thực thi đều được sử dụng cho công việc này?
Cách định cấu hình Spark để phân phối công việc hiện tại cho tất cả các người thực thi, thay vì chỉ một người thực thi đang chạy công việc hiện tại?
Cảm ơn rất nhiều.
------------------ pic-1:
--------------- --- pic-2:
cho loại Bộ thu, tôi không chắc chắn, chỉ cần sử dụng bộ mặc định sau khi tải xuống gói Spark 1.3. Phải là Kafka. – keypoint
Tôi đang phát trực tuyến từ AWS Kinesis tới Spark, tôi đoán là người nhận này tương ứng với mảnh Kinesis, vì tôi có 2 mảnh cho luồng Kinesis của tôi. – keypoint
Bạn có thể đăng ảnh chụp nhanh của trang phát trực tuyến chính Spark không. docs "Khi chạy một chương trình Spark Streaming cục bộ, không sử dụng" local "hoặc" local [1] "làm URL chính, hoặc chỉ có một luồng sẽ được sử dụng để chạy các tác vụ cục bộ. DStream dựa trên một bộ thu (ví dụ ổ cắm, Kafka, Flume, vv), sau đó một sợi đơn sẽ được sử dụng để chạy bộ thu, không để lại luồng để xử lý dữ liệu nhận được. ] ”Làm URL chính nơi n> số người nhận để chạy" Áp dụng ở trên cho cụm là tốt. –