2016-09-24 22 views
6

Tôi muốn sử dụng trình phân loại xgboost được giả định trong pyspark nhưng các nút trên cụm không có mô-đun xgboost được cài đặt. Tôi có thể pickle các classifier tôi đã đào tạo và phát sóng nó nhưng điều này là không đủ như tôi vẫn cần module được nạp tại mỗi nút cluster.Làm thế nào để phân phối mô-đun xgboost để sử dụng trong tia lửa?

Tôi không thể cài đặt nó trên các nút cụm vì tôi không có gốc và không có hệ thống tệp được chia sẻ.

Làm thế nào tôi có thể phân phối trình phân loại xgboost để sử dụng trong tia lửa?


Tôi có trứng cho xgboost. Có thể một cái gì đó như http://apache-spark-user-list.1001560.n3.nabble.com/Loading-Python-libraries-into-Spark-td7059.html hoặc https://stackoverflow.com/a/24686708/2179021 hoạt động?

+0

Bạn có quyền truy cập SSH vào các máy riêng lẻ không? Bạn sử dụng trình quản lý cụm nào? – zero323

+1

@ zero323 Chúng tôi sử dụng YARN nhưng tôi không có quyền truy cập ssh vào máy một cách đáng buồn. Tôi nghĩ những gì tôi cần làm là tìm một giải pháp liên quan đến việc phát sóng 'quả trứng'. – eleanora

+0

Lời khuyên chân thành của tôi là tìm người chịu trách nhiệm về việc ép buộc hoặc cung cấp cho bạn các thư viện cần thiết hoặc với môi trường có thể định cấu hình (như cài đặt Anaconda). Việc xây dựng và định cấu hình đúng các phụ thuộc gốc không chỉ là về sự thoải mái của bạn mà còn về hiệu suất cơ bản. Và sự khác biệt có thể khá đáng kể. – zero323

Trả lời

1

Có một thực sự tốt blog post từ Cloudera giải thích vấn đề này. Tất cả các khoản tín dụng đều đến với họ.

Nhưng chỉ để trả lời câu hỏi của bạn trong ngắn hạn - không, điều đó là không thể. Mọi phụ thuộc phức tạp của bên thứ ba cần được cài đặt trên mỗi nút trong cụm của bạn và được định cấu hình đúng. Đối với các mô-đun/phụ thuộc đơn giản, người ta có thể tạo các tệp *.egg, *.zip hoặc *.py và cung cấp chúng cho cụm có cờ --py-files trong spark-submit.

Tuy nhiên, xgboost là gói số không chỉ phụ thuộc vào các gói Python khác, mà còn cụ thể là thư viện/biên dịch C++ - cấp thấp. Nếu bạn cung cấp mã được biên dịch cho cụm, bạn có thể gặp lỗi phát sinh từ kiến ​​trúc phần cứng khác nhau. Thêm một thực tế là các cụm thường không đồng nhất về mặt phần cứng, làm điều đó sẽ là một điều rất xấu.

+0

Cảm ơn vì điều này. Bạn có thể cung cấp thêm bất kỳ chi tiết nào về phần cứng đồng nhất và bạn có trứng xgboost không? – eleanora

+1

Thật không may, không. Tôi chưa bao giờ sử dụng nó theo cách như vậy. Thành thật mà nói, nó có lẽ sẽ không hoạt động vì sự phức tạp của thư viện. Cách tiếp cận với trứng có thể chỉ hoạt động đối với các gói đơn giản. Ngày đầu đó, nếu bạn muốn điều này được sản xuất, bạn cần phải tìm một cách khác. Nếu không, thì bạn có thể truy cập vào một cụm và tự cài đặt Python. Tôi sẽ tránh xa cách tiếp cận trứng. – bear911

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