2011-12-27 5 views

cevap

6

Bunu yapmak için temel olarak 4 şeyi aramalısınız: CPU, RAM, Disk ve Ağ. Kurulumunuz bu metriklerin eşiğini geçiyorsa, sınırları zorladığınızı anlayabilirsiniz. Örneğin, "mapred.reduce.parallel.copies" değerini mevcut çekirdek sayısından çok daha yüksek bir değere ayarladıysanız, bu özelliğe dayalı olarak bekleme durumunda çok fazla iş parçacığıyla sonuçlanırsınız. Harita çıktısını almak için oluşturulacak. Bu ağa ek olarak bunalmış olabilir. Ya da, karıştırılmak üzere çok fazla ara çıktı varsa, RAM tabanlı karmadan daha yavaş olacak şekilde, böyle bir durumda disk tabanlı karışıklığa ihtiyaç duyacağınız için işiniz yavaşlayacaktır. RAM'inize göre "mapred.job.shuffle.input.buffer.percent" için bilge bir değer seçin (normalde iyi olan Reducer yığınının% 70'i varsayılan değerdir). Yani, bunlar aşırı-paralel olup olmadığınızı size söyleyecek bazı şeyler. Göz önünde bulundurmanız gereken başka birçok şey var. "Hadoop Definitve Guide" ın 6. Bölümünde ilerlemenizi tavsiye ederim.

Eğer verimli işlerinizi yapmak için, sürebilir önlemlerin bazıları

, veri aktarımını sınırlamak için bir birleştirici kullanıyor gibi vb

HTH

PS ara sıkıştırmayı etkinleştirmek gibidir: cevabı sadece "mapred.reduce.parallel.copies" için spesifik değildir. Genel olarak işinizi ayarlamanızı anlatır. Aslında, sadece bu mülkün ayarlanması size çok yardımcı olmayacak. Diğer önemli özellikleri de düşünmelisiniz.

+1

İçgörüler için teşekkürler! –

1

"Tatlı noktaya" ulaşmak, yalnızca en önemli, genellikle genel iş süresini düşündüğünüz metrik için en iyi sonucu veren parametreleri bulmaktır. Hangi parametrelerin çalıştığını anlamak için, Hadoop'un, MrBench, TestDFSIO ve NNBench ile birlikte geldiği aşağıdaki profil araçlarını kullanmanızı öneriyorum. Bunlar hadoop-mapreduce-client-jobclient - *. Jar'da bulunur.

Bu komutu çalıştırarak, yukarıda bahsettiklerimin dışında kullanabileceğiniz uzun bir değerlendirme programı listesi göreceksiniz.

Hadoop ./share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-*.jar

Sonra, bazal kriterler vermek, varsayılan parametreleri ile çalıştırın testler değişen öneririm

bir parametre ve tekrar çalıştırma. Özellikle biraz zaman harcayan ama buna değer, özellikle parametreleri değiştirmek ve karşılaştırma ölçütlerini çalıştırmak için bir betik kullanırsanız.

+0

Bu aracı kullanarak, hadoop akış işlerini karşılaştırmak mümkün mü? –

+0

Doğrudan değil. Bunların her biri tam bir harita/azaltma programıdır ve Hadoop Streaming belirtilen haritalayıcıları ve redüktörleri ister. Bu programlardan biri, kodlara baktığınızda ve haritacı ve redüktör sınıfını doğrudan kavanozlarından belirlediyseniz hala kullanılabilir. Bunun sonucunun, sadece programı doğrudan çalıştırmakla neredeyse aynı olacağını umuyorum, ancak emin olmak için bunu denemek zorunda kalacaksınız. – greedybuddha