2015-12-16 17 views
7

Yerel makinemin bir hdfs yüklemesi yok. Uzak bir hdfs kümesinden dosyaları almak istiyorum. Bunu başarmanın en iyi yolu nedir? get dosyalarını hdfs'den küme makinelerinden birine dönüştürmem gerekiyor mu ve sonra bunları almak için ssh kullanmalı mıyım? Bu programatik olarak bir bash betiği ile yapabilmek istiyorum.Dosyaları uzaktaki HDFS'den alma

+0

DistCp'yi deneyin: https://hadoop.apache.org/docs/r1.2.1/distcp.html –

cevap

5

İşte adımlar şunlardır:

  • bağlantı Barındırıcınıza ve
  • istemcisi olarak konak tanımlayın, uyumlu Hadoop ikilileri yüklemeniz gerekir hedef küme arasında olduğundan emin olun. Ayrıca, sunucunuzun aynı işletim sistemini kullanarak çalışması gerekiyor.
  • doğrudan

Ayrıca alternatifler vardır sen Dosyaları almak için hadoop fs -get komutunu çalıştırabilirsiniz

  • (çekirdek-site.xml dosyasını, HDF'ler-site.xml dosyasını) aynı yapılandırma dosyalarını olduğundan emin olun

    • Webhdfs/httpFS yapılandırılmışsa, dosyaları kıvrılarak veya hatta tarayıcınızı kullanarak yükleyebilirsiniz. Webhdfs yapılandırılmışsa, bash scritps yazabilirsiniz.

    Ana makineniz, istemci olarak Hadoop ikili dosyaları kurulu değilse, aşağıdaki yönergeleri kullanabilirsiniz.

    • küme üzerinde düğümün sitelerinden birine ana bilgisayardan şifre az girişini etkinleştirmek
    • çalıştırma komutu ssh <user>@<host> "hadoop fs -get <hdfs_path> <os_path>"
    • sonra scp komutu tek komut dosyaları
    • Sen olabilir yukarıdaki 2 komutları kopyalamak
  • +0

    Bir takip sorusu. [HttpFS] (https://hadoop.apache.org/docs/r2.6.0/hadoop-hdfs-httpfs/index.html), performans açısından "client hadoop fs -get" çözümüyle nasıl karşılaştırılır? –

    +0

    httpFS ve webhdfs aynıdır. Bunu kullanarak indirebilirsiniz, bunu yapmak için hadoop ikili dosyaları gerekmez. –

    +0

    Performans açısından ne hakkında? HttpFS kullanmak yerine ikili dosyaları kullanmak daha mı hızlı? belki de başka bir iş parçacığı başlatmalıyım –

    İlgili konular