2015-12-16 18 views
7

Moje lokalne urządzenie nie ma instalacji hdfs. Chcę pobrać pliki ze zdalnego klastra hdfs. Jaki jest najlepszy sposób, aby to osiągnąć? Czy muszę get pliki z hdfs do jednego z maszyn klastra fs, a następnie użyć ssh, aby je odzyskać? Chcę móc to zrobić programowo poprzez wypowiedzenie skryptu bash.Pobieranie plików ze zdalnego HDFS

+0

Wypróbuj DistCp: https://hadoop.apache.org/docs/r1.2.1/distcp.html –

Odpowiedz

5

Oto kroki:

  • Upewnij się, że łączność pomiędzy hostem a gromady docelowej
  • Konfiguracja hosta jako klient, trzeba zainstalować kompatybilne pliki binarne Hadoop. Również twój host musi być uruchomiony przy użyciu tego samego systemu operacyjnego.
  • Upewnij się, że te same pliki konfiguracyjne (core-site.xml, HDFS-site.xml)
  • można uruchomić komendę hadoop fs -get aby pobrać pliki bezpośrednio

Ponadto istnieją alternatywy

  • Jeśli skonfigurowano Webhdfs/httpFS, możesz faktycznie pobierać pliki za pomocą curl lub nawet przeglądarki. Możesz napisać scrashpy bash jeśli skonfigurujesz Webhdfs.

Jeśli Twój komputer nie może mieć zainstalowanych plików binarnych Hadoop jako klienta, możesz użyć poniższych instrukcji.

  • umożliwić hasło mniej logowanie z hosta do jednego węzła w klastrze
  • polecenie uruchomienia ssh <user>@<host> "hadoop fs -get <hdfs_path> <os_path>"
  • następnie polecenie scp do kopiowania plików
  • można mieć powyżej 2 komendy w jednym skrypcie
+0

Następne pytanie. W jaki sposób [httpFS] (https://hadoop.apache.org/docs/r2.6.0/hadoop-hdfs-httpfs/index.html) porównuje się do rozwiązania "klienta hadoop fs -get" pod względem wydajności? –

+0

httpFS i webhdfs są takie same. Możesz pobrać za jego pomocą, nie ma potrzeby stosowania plików binarnych. –

+0

co jeśli chodzi o wydajność? Czy szybsze jest używanie plików binarnych zamiast korzystania z httpFS? może powinienem zacząć kolejny wątek –

Powiązane problemy