2015-07-01 14 views
5

Ưu tiên tải lớp khi cả bình uber của ứng dụng tia lửa của tôi và nội dung của tùy chọn --jars là gì submit shell có chứa các phụ thuộc tương tự?Độ phân giải Classpath giữa bình uber tia lửa và tia lửa-gửi - jars khi các lớp tương tự tồn tại trong cả hai lớp

Tôi hỏi điều này từ quan điểm tích hợp thư viện của bên thứ ba. Nếu tôi đặt --jars sử dụng thư viện của bên thứ ba ở phiên bản 2.0 và bình uber được đưa vào tập lệnh trình phát tia lửa này được lắp ráp bằng phiên bản 2.1, lớp nào được tải khi chạy?

Hiện tại, tôi nghĩ việc giữ các phụ thuộc của mình trên hdfs và thêm chúng vào tùy chọn --jars khi kích hoạt, trong khi hy vọng qua một số tài liệu người dùng cuối để yêu cầu người dùng đặt phạm vi của bên thứ ba này thư viện được 'cung cấp' trong tệp pom maven của ứng dụng tia lửa của họ.

Trả lời

4

Điều này được kiểm soát một phần với các thông số spark.files.userClassPathFirst & spark.yarn.user.classpath.first. Nếu được đặt thành true (các giá trị mặc định là false):

(Thử nghiệm) Cho phép thêm các lọ do người dùng thêm vào trước các lọ của Spark khi tải các lớp trong trình điều khiển. Tính năng này có thể được sử dụng để giảm thiểu xung đột giữa các phụ thuộc của Spark và các phụ thuộc của người dùng. Nó hiện là một tính năng thử nghiệm. Điều này chỉ được sử dụng trong chế độ cụm.

Tôi đã viết một số mã kiểm soát điều này và có một vài lỗi trong bản phát hành sớm, nhưng nếu bạn đang sử dụng bản phát hành Spark gần đây thì nó sẽ hoạt động (mặc dù nó vẫn là tính năng thử nghiệm).

+0

cảm ơn @holden - Tôi sẽ xem xét điều này. Giả sử nhị phân của tôi không thể có xung đột với những gì Spark tàu với Spark không biết về nó, liệu đây có phải là tham số để sử dụng không? [ví dụ: nếu nhị phân của tôi là bên thứ 3 và không phải là một trong các sợi hoặc các mã nhị phân mã nguồn mở khác mà Spark giao hàng với] –

+4

Xin lưu ý rằng '' 'Khóa cấu hình 'spark.yarn.user.classpath.first' đã không còn được dùng như Spark 1.3 và có thể bị xóa trong tương lai. Vui lòng sử dụng tia lửa. {Driver, executor} .userClassPathFirst thay thế.''' – placeybordeaux

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