2016-09-24 36 views
6

pyspark'ta önceden hazırlanmış bir xgboost sınıflandırıcı kullanmak istiyorum, ancak kümedeki düğümler xgboost modülünün yüklü olmadığını gösteriyor. Eğitim aldığım ve yayınladığım sınıflandırıcıyı seçebilirim ancak bu, her bir küme düğümüne yüklenecek olan modüle hala ihtiyacım olduğu için yeterli değil.Spark'da kullanmak için xgboost modülü nasıl dağıtılır?

Kök olmadığından ve paylaşılan dosya sistemi olmadığından küme düğümlerine yükleyemiyorum.

Spark'da kullanım için xgboost sınıflandırıcısını nasıl dağıtabilirim?


Ben xgboost için bir yumurta var. http://apache-spark-user-list.1001560.n3.nabble.com/Loading-Python-libraries-into-Spark-td7059.html veya https://stackoverflow.com/a/24686708/2179021 gibi bir şey işe yarayabilir mi?

+0

Münferit makinelere SSH erişiminiz var mı? Hangi küme yöneticisini kullanıyorsunuz? – zero323

+1

@ zero323 YARN kullanıyoruz ama makinelere ssh erişimim yok. Yapmam gereken şey, 'yumurta' yayınını içeren bir çözüm bulmak. – eleanora

+0

Dürüst tavsiyem, sizi sorumlu kütüphanelerle veya yapılandırılabilir ortamlarla (Anaconda yüklemeleri gibi) sağlamak için sorumlu kişiyi bulmaktır. Yerel bağımlılıkları doğru şekilde oluşturmak ve yapılandırmak yalnızca rahatınız değil aynı zamanda temel performans hakkında da. Ve farklar oldukça anlamlı olabilir. – zero323

cevap

1

Bu konuyu açıklayan Cloudera'dan gerçekten iyi bir blog post var. Tüm krediler onlara gider.

Ancak sorunuzu kısa sürede yanıtlamak için - hayır, bu mümkün değil. Karmaşık 3. taraf bağımlılığının, kümenizin her bir düğümüne yüklenmesi ve düzgün şekilde yapılandırılması gerekir. Basit modüller/bağımlılıklar için, bir *.egg, *.zip veya *.py dosyaları oluşturabilir ve bunları spark-submit içinde --py-files bayrağıyla kümeye sağlayabilirsiniz. düşük seviye olan -

Ancak xgboost bir değil sadece diğer Python paketleri büyük ölçüde bağlıdır sayısal paket, aynı zamanda belirli C++ kütüphane/derleyici. Küme için derlenmiş kod tedarik edecekseniz, farklı donanım mimarisinden kaynaklanan hatalarla karşılaşabilirsiniz. Kümelerin genellikle donanım açısından heterojen olduğu gerçeğini eklemek, böyle bir şey yapmak çok kötü bir şey olurdu.

+0

Bunun için teşekkürler. Donanımın homojen olduğu ve xgboost yumurtasına sahip olduğunuzda daha fazla ayrıntı verebilir misiniz? – eleanora

+1

Maalesef, hayır. Bunu hiç böyle kullanmamıştım. Tamamen dürüst olmak gerekirse, kütüphane karmaşıklığı nedeniyle muhtemelen işe yaramayacaktır. Yumurta ile yaklaşım sadece basit paketler için işe yarayabilir. Bunun üzerine, bunun üretimde olmasını istiyorsanız, başka bir yol bulmalısınız. Değilse, muhtemelen bir kümeye erişebilir ve Python'u kendiniz kurabilirsiniz. Yumurta yaklaşımından uzaklaşırdım. – bear911