2015-12-16 24 views
7

Il mio computer locale non ha un'installazione hdf. Voglio recuperare i file da un cluster hdfs remoto. Qual è il modo migliore per raggiungere questo obiettivo? Devo scrivere a get i file da hdf a uno dei computer di cluster fs e quindi usare ssh per recuperarli? Voglio essere in grado di farlo a livello di codice attraverso dire uno script bash.Recupera file da HDFS remoto

+0

Provare DistCp: https://hadoop.apache.org/docs/r1.2.1/distcp.html –

risposta

5

Ecco i passaggi:

  • Assicurarsi che vi sia la connettività tra il vostro ospite e il cluster di destinazione
  • Configura il tuo host come client, è necessario installare i binari Hadoop compatibili. Anche il tuo host deve essere eseguito utilizzando lo stesso sistema operativo.
  • Assicurarsi di avere gli stessi file di configurazione (core-site.xml, HDFS-site.xml)
  • È possibile eseguire hadoop fs -get comando per ottenere i file direttamente

ci sono anche alternative

  • Se Webhdfs/httpFS è configurato, è possibile scaricare file utilizzando Curl o persino il browser. Puoi scrivere bash scritps se Webhdfs è configurato.

Se l'host non può avere binari Hadoop installati per essere client, è possibile utilizzare le seguenti istruzioni.

  • password enable meno login dal tuo host a quello del nodo nel cluster
  • comando di marcia ssh <user>@<host> "hadoop fs -get <hdfs_path> <os_path>"
  • poi il comando SCP per copiare i file
  • si può avere la cui sopra 2 comandi in uno script di
+0

Una domanda di follow-up. In che modo [httpFS] (https://hadoop.apache.org/docs/r2.6.0/hadoop-hdfs-httpfs/index.html) si confronta con la soluzione "client hadoop fs -get" in termini di prestazioni? –

+0

httpFS e webhdf sono uguali. Puoi scaricarlo usando questo, non c'è bisogno di binari hadoop per farlo. –

+0

che dire in termini di prestazioni? È più veloce usare i binari invece di usare httpFS? forse dovrei iniziare un'altra discussione –