2016-03-31 34 views
0

Bir düğümün Ana düğüm ve diğerinin Veri düğümü olduğu bir dolaşım kümem var mı? Köle düğümü, işleri paralel hale getirmek için yeterli çekirdek bulunduğundan emin olmak için 8 çekirdekli bir makinedir. Dosyayı hala 3 blok halinde bölebilir miyim ve köle düğümü tüm üç bloğu ayrı ayrı depolayabilir. Başka bir deyişle, "eğer bir kölelik kümesindeki bütün köle düğümlerini kullanmak istiyorsak", o zaman köle düğümlerinin sayısı ile bir dosyanın maksimum blok sayısı arasında bir 1: 1 ilişki var mı? Evet ise, o zaman böyle bir durumda haritayı nasıl azaltabilirsiniz. Ana düğüm, üç harita işini köle düğümüne gönderecek ve her bir eşleyici, köle düğümündeki her bir bloğu toplayacak mı? Sorumum farklı bir şekilde görülebilir. 3 veri düğümü içeren bir kümede 1GB'lık bir dosya varsa, 64 MB'lık bloklar nasıl bölünür ve üç düğüm arasında nasıl dağıtılır?Bir bağımlı düğümde aynı dosyada birden fazla blok var mı?

cevap

0

İkinci soru benim için daha anlaşılabilir gibi görünüyor, bu yüzden önce bunu alacağım. HDF'ler Perspektifinden

: Eğer çoğaltma faktörü olarak onlardan daha varsa bir 1GB dosya 16 blok oluşur 64MB blok boyutuyla

, bloklar, DataNodes arasında biraz rastgele depolanan, ancak bekleyebilirsiniz Verileri DN'lerden birinden yüklemezseniz, düğümler arasında eşit bir dağılım. Bunu yaparsanız, bu DN tüm bloklardan bir çoğaltma tutacaktır ve diğer DN'ler kalan replikaları eşit şekilde dağıtmaya devam edecektir (hala rastgele yerleştirilmiş). Evet, eğer bir dosyanız 16 bloktan oluşuyorsa ve 3 3'lük bir replikasyon faktörü ile sadece 3 DN, örneğin tüm 16 bloğu tutacaktır.

Eğer MapReduce işi çalıştırmak İplik bakış açısından : yapılandırılabilir bir bekleme süresi bu tür ücretsiz bir kap için, orada

İPLİK yerel veri içeren bir mapper için bir düğüm üzerinde bir konteyneri bulmaya çalışır YARN'den önceki düğümler, veriye sahip olmayan bir düğümdeki eşleştirmeyi başlatır.

YARN doğrudan fiziksel çekirdeklere dayanmaz, sanal çekirdek sayısını ve bir kabın kullandığı bellek miktarını ve bu değerleri temel alarak yapılandırabilirsiniz. YARN, bir NodeManager'da kullanılabilir kapsayıcıların miktarını tahsis edecektir. Ben size veri dosyaları bölmek için blok boyutunu tanımlayarak paralellik ulaşmak istediğiniz anlamak gibi sorunun birinci kısmından itibaren

: İPLİK ayar Ancak on Cloudera Engineering blog

üzerinde

Ek okumalar.

MapReduce HDFS blokları ile ilgilenmez, girişi bölmek için kendi soyutlaması vardır, buna InputSplit denir. InputSplits eşleştiricilere InputFormat tarafından beslenir. Ayrıca, InputSplits, bölmenin yerel olarak kullanılabilir olduğu yeri tanımlar, böylece YARN, yerel veri depolamada bölünmüş bir düğümde bulunan bir kapsayıcı bulabilir. API'yi ve ihtiyaçlarınızı tam olarak karşıladıkları için mevcut olan InputFormat uygulamalarını kontrol etmeyi öneririm, ancak eğer olmasalar bile kendi uygulamanızı yazabilir ve iş yapılandırması yoluyla belirtebilirsiniz.

İlgili konular