Aşağıdaki özellikler, görevlerinizi yürüten JVM'lere geçirilecek seçenekleri belirtmenizi sağlar. Bunlar yığın kullanılabilir kontrol etmek için -Xmx
ile kullanılabilir.
Hadoop 0.x, 1.x (deprecated) Hadoop 2.x
------------------------------- --------------------------
mapred.child.java.opts
mapred.map.child.java.opts mapreduce.map.java.opts
mapred.reduce.child.java.opts mapreduce.reduce.java.opts
Bunlardan ilki için doğrudan Hadoop 2 eşdeğeri yoktur; Kaynak koddaki tavsiye diğer ikisini kullanmaktır. mapred.child.java.opts
hala desteklenmektedir (ancak varsa diğer iki daha özel ayarlarla geçersiz kılınmıştır).
Hadoop 0.x, 1.x (deprecated) Hadoop 2.x
------------------------------- --------------------------
mapred.job.map.memory.mb mapreduce.map.memory.mb
mapred.job.reduce.memory.mb mapreduce.reduce.memory.mb
Ben -Xmx
75% ayarlamanızı öneririz: yığını ve sınıf tanımları da dahil olmak üzere yığın - Bunlara Tamamlayıcı
, sen toplam görevler için kullanılabilir bellek (muhtemelen sanal) sınırı izin Aşağıdaki memory.mb
değerleri.
YARN kümesinde, işler sunucu tarafı yapılandırması yarn.scheduler.maximum-allocation-mb
'dan daha fazla bellek kullanmamalı veya öldürülmelidir.
Bunların varsayılanlarını ve önceliklerini kontrol etmek için Hadoop kaynak kodunda JobConf
ve MRJobConfig
'a bakın.
Giderme
sizin mapred-site.xml dosyasını bu ayarlar için varsayılan sağlayabilir unutmayın. Bu kafa karıştırıcı olabilir - ör. eğer işiniz mapred.child.java.opts
programsal olarak ayarlanmışsa, mapred-site.xml mapreduce.map.java.opts
veya mapreduce.reduce.java.opts
ayarlarını yaparsa bu durumun etkisi olmaz. Mapred-site.xml dosyasını geçersiz kılmak için bu özellikleri işinizde ayarlamanız gerekir. Hangi değerlerin uygulandığını ve nereden geldiklerini görmek için işinizin yapılandırma sayfasını kontrol edin ('xmx' ifadesini arayın). Bir İPLİK kümesinde
ApplicationMaster bellek
, kendi ApplicationMaster için kullanılabilir bellek miktarını kontrol etmek için aşağıdaki iki özelliklerini kullanabilirsiniz (giriş bölünme, görevlerin durum, vb ayrıntılarını tutmak için):
Hadoop 0.x, 1.x Hadoop 2.x
------------------------------- --------------------------
yarn.app.mapreduce.am.command-opts
yarn.app.mapreduce.am.resource.mb
Yine, resource.mb
değerinin% 75 (eski olarak) -Xmx
ayarlayabilirsiniz.
Diğer konfigürasyonlar
bellek sınırlarına ilişkin birçok diğer yapılandırmalar da vardır, bunların bazıları kullanımdan kaldırıldı - JobConf
sınıfına bakın. Bir kullanışlı bir: Düşük değere (10) Eğer MapOutputCopier.shuffleInMemory
bir OutOfMemoryError
vurmak durumunda diskte gerçekleşmesi karıştır zorlamak için
Hadoop 0.x, 1.x (deprecated) Hadoop 2.x
------------------------------- --------------------------
mapred.job.reduce.total.mem.bytes mapreduce.reduce.memory.totalbytes
Seti bu.
Aradığım şey bu, teşekkürler kardeşim. – Judking
Başka bir soru lütfen, 'mapreduce.map.memory.mb' tam olarak eşleme görevini çalıştıran kapsayıcı miktarı ne kadardır? – wuchang