commands hadoop storage pipe hdfs remote-access

commands - hadoop getmerge a otra máquina



hadoop fs commands (1)

¿Es posible almacenar el resultado del comando hadoop dfs -getmerge en otra máquina?

La razón es que no hay suficiente espacio en mi máquina local. La salida de trabajo es de 100 GB y mi almacenamiento local es de 60 GB.

Otra posible razón podría ser que quiero procesar la salida en otro programa localmente, en otra máquina y no quiero transferirla dos veces (HDFS-> local FS -> máquina remota). Solo quiero (HDFS -> máquina remota).

Estoy buscando algo similar a cómo funciona scp , como:

hadoop dfs -getmerge /user/hduser/Job-output user@someIP:/home/user/

Alternativamente, también me gustaría obtener los datos HDFS desde un host remoto a mi máquina local.

¿Podrían utilizarse tuberías de Unix en esta ocasión?

Para aquellos que no están familiarizados con hadoop, solo estoy buscando una manera de reemplazar un parámetro dir local ( /user/hduser/Job-output ) en este comando con un directorio en una máquina remota.


Esto hará exactamente lo que necesita:

hadoop fs -cat /user/hduser/Job-output/* | ssh [email protected] "cat >mergedOutput.txt"

fs -cat leerá todos los archivos en secuencia y los enviará a stdout.

ssh los pasará a un archivo en la máquina remota (tenga en cuenta que scp no aceptará stdin como entrada)