2014-06-13 17 views
8

Tôi mới sử dụng Spark và tôi đang cố chạy ứng dụng này trên EC2. Tôi làm theo hướng dẫn trên trang web tia lửa bằng cách sử dụng spark-ec2 để khởi chạy cụm Spark. Sau đó, tôi cố gắng sử dụng spark-submit để gửi ứng dụng đến cụm. Lệnh trông như thế này:Sử dụng trình kích hoạt tia lửa để gửi một ứng dụng đến cụm EC2

./bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://ec2-54-88-9-74.compute-1.amazonaws.com:7077 --executor-memory 2G --total-executor-cores 1 ./examples/target/scala-2.10/spark-examples_2.10-1.0.0.jar 100

Tuy nhiên, tôi đã nhận lỗi sau:

ERROR SparkDeploySchedulerBackend: Application has been killed. Reason: All masters are unresponsive! Giving up.

Xin vui lòng cho tôi biết làm thế nào để sửa chữa nó. Cảm ơn.

Trả lời

1

Bạn có đang thực thi lệnh trên máy cục bộ của mình hoặc trên nút EC2 đã tạo không? Nếu bạn đang làm nó tại địa phương, chắc chắn rằng cổng 7077 được mở trong các thiết lập bảo mật, vì nó đóng cửa bên ngoài theo mặc định.

+0

Tôi đang gặp vấn đề tương tự khi bắt đầu công việc trên cụm ec2 bằng cách sử dụng công cụ pyspark hoặc spark-shell từ địa phương. Tôi đã thêm quy tắc vào để chấp nhận kết nối 7077 từ mọi nơi. Đưa cái gì? – Anthony

7

Bạn đang gặp sự cố này vì nút chính của cụm độc lập không thể mở kết nối TCP trở lại ổ đĩa (trên máy của bạn). Chế độ mặc định của spark-submitứng dụng khách chạy trình điều khiển trên máy đã gửi.

Chế độ cụm mới đã được thêm vào việc triển khai tia lửa gửi công việc đến máy chủ nơi nó được chạy trên máy khách, loại bỏ nhu cầu kết nối trực tiếp. Rất tiếc, chế độ này không được hỗ trợ ở chế độ độc lập.

Bạn có thể bỏ phiếu cho vấn đề JIRA đây: https://issues.apache.org/jira/browse/SPARK-2260

đường hầm kết nối của bạn thông qua SSH là có thể nhưng độ trễ sẽ là một vấn đề lớn kể từ khi người lái xe sẽ được chạy cục bộ trên máy tính của bạn.

+0

Vấn đề JIRA hiện được đánh dấu là đã thay đổi – Tobber

2

Tôi rất tò mò nếu bạn vẫn gặp sự cố này ... Nhưng trong trường hợp có ai đó hỏi đây là câu trả lời ngắn gọn. Khi được làm rõ bởi jhappoldt, nút chính của cụm độc lập tia lửa không thể mở kết nối TCP trở lại ổ đĩa (trên máy cục bộ của bạn). Hai cách giải quyết là có thể, được thử nghiệm và thành công.

(1) Từ EC2 Management Console, tạo nhóm bảo mật mới và thêm quy tắc để bật TCP qua lại từ PC của bạn (IP công cộng). (những gì tôi đã làm là thêm các quy tắc TCP vào và ra) ... Sau đó, thêm nhóm bảo mật này vào thể hiện chính của bạn. (nhấp chuột phải -> Mạng -> Thay đổi nhóm bảo mật). Lưu ý: thêm nó và không loại bỏ các nhóm bảo mật đã được thiết lập.

việc Giải pháp này tốt, nhưng trong tình huống cụ thể của bạn, triển khai ứng dụng của bạn từ máy tính cục bộ để cụm EC2, bạn sẽ phải đối mặt với vấn đề hơn nữa (tài nguyên liên quan) để lựa chọn tiếp theo là tốt nhất

(2) Có tệp .jar của bạn (hoặc .egg) sao chép nó vào nút chính bằng cách sử dụng scp. Bạn có thể kiểm tra liên kết này http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html để biết thông tin về cách thực hiện điều đó; và triển khai ứng dụng của bạn từ nút chính. Lưu ý: spark đã được pre-insalled vì vậy bạn sẽ không phải làm gì ngoài việc viết chính xác lệnh bạn viết trên máy cục bộ của bạn từ ~/spark/bin. Điều này sẽ làm việc hoàn hảo.

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