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)