2011-11-11 19 views
9

Amazon'un Elastic MapReduce üzerinde python kodunu çalıştırmak için mrjob kullanarak EMR görüntüsünün numpy ve scipy'lerini yükseltmenin bir yolunu başarıyla buldum. konsoldan KoşuAmazon Elastic ile Numpy ve Scipy MapReduce

aşağıdaki komutlar:

tar -cvf py_bundle.tar mymain.py Utils.py numpy-1.6.1.tar.gz scipy-0.9.0.tar.gz 

    gzip py_bundle.tar 

    python my_mapper.py -r emr --python-archive py_bundle.tar.gz --bootstrap-python-package numpy-1.6.1.tar.gz --bootstrap-python-package scipy-0.9.0.tar.gz > output.txt 

Bu başarıyla son numpy bot ve scipy görüntü içine ve mükemmel çalışıyor. Benim sorum hız meselesi. Bu kendini küçük bir örnekte kurmak için 21 dakika sürer.

Numpy ve scipy yükseltme işlemlerini hızlandıracak herhangi bir fikri olan var mı?

+0

Sorununuz, yavaş olan küçük örnek olmasıdır. Daha büyük Amazon örneklerine geçmediğiniz sürece gerçek bir hızlanma görmeyeceksiniz. Bu, genellikle EC2'nin örneklerin tümünü hızlandırmasını gerektiren ~ 5-6 dakikalık ve üstüdür? – ely

+1

Orijinal sıkma ile iletişimin uzun zaman aldığını kabul ediyorum. Mrjob topluluğundaki bir kişi bu yüklemeyi bir çalışan örneği için gerçekleştirmeyi önerdi, ardından çalışan örneğine oturum açmak için ssh'i kullanarak tamamlanan yükleme dizinini indirin. Sonra tamamladığım yükleme dizinini dosyalarıma zip dosyası olarak aktarıyorum. Python, hadoop'un yüklü sürümleri yerine yerel NumPy ve SciPy'yi kullanmayı seçer. – jtman

cevap

5

EMR görüntüsüne bir şey yapmanın tek yolu, önyükleme eylemlerini kullanmaktır. Bunu konsoldan yapmak, işlemeyi yapan görev düğümlerini değil, yalnızca ana düğümü değiştireceğinizi gösterir. Önyükleme eylemleri, tüm düğümlerde başlangıçta bir kez çalışır ve kabuğun çalıştırılmasını sağlayan basit bir komut dosyası olabilir.

elastic-mapreduce --create --bootstrap-action "s3://bucket/path/to/script" ... 

katran kadar kurulum sonrası dosyaları, EMR görüntüye değişiklikleri hızlandırmak ve S3 yükleyin. Sonra indirmek ve dağıtmak için bir önyükleme eylemi kullanın. Ayrı arşivleri 32 bit (mikro, küçük, orta) ve 64 bit makineler için tutmalısınız. komut S3 indirmek için

komut şöyledir:

hadoop fs -get s3://bucket/path/to/archive /tmp/archive 
2

Bu sorunun cari cevabı NumPy zaten şimdi, EMR yüklü olmasıdır.

NumPy'yi kullanılabilir olandan daha yeni bir sürüme güncellemek isterseniz, sudo yum -y install numpy'u yapan bir komut dosyasını (önyükleme eylemi olarak) çalıştırabilirsiniz. NumPy daha sonra hiçbir zaman yüklenmez.