descargar descarga common commands hadoop hdfs

descarga - Hadoop copia un directorio?



hdfs dfs (4)

¿Hay una API HDFS que pueda copiar un directorio local completo al HDFS? Encontré una API para copiar archivos pero ¿hay alguna para directorios?


En la versión de Hadoop:

Hadoop 2.4.0.2.1.1.0-390

(Y probablemente más tarde, solo he probado esta versión específica ya que es la que tengo)

Puede copiar directorios completos recursivamente sin ninguna notación especial utilizando copyFromLocal por ejemplo ,:

hadoop fs -copyFromLocal /path/on/disk /path/on/hdfs

que funciona incluso cuando /path/on/disk es un directorio que contiene subdirectorios y archivos.


Intenté copiar desde el directorio usando

/hadoop/core/bin/hadoop fs -copyFromLocal /home/grad04/lopez/TPCDSkew/ /export/hadoop1/lopez/Join/TPCDSkew

Me dio un error diciendo que Target es un directorio. Luego lo modifiqué para

/hadoop/core/bin/hadoop fs -copyFromLocal /home/grad04/lopez/TPCDSkew/*.* /export/hadoop1/lopez/Join/TPCDSkew

funciona .


Para el programador, también puede usar copyFromLocalFile. Aquí hay un ejemplo:

import org.apache.hadoop.conf.Configuration import org.apache.hadoop.fs.FileSystem import org.apache.hadoop.fs.Path val hdfsConfig = new Configuration val hdfsURI = "hdfs://127.0.0.1:9000/hdfsData" val hdfs = FileSystem.get(new URI(hdfsURI), hdfsConfig) val oriPath = new Path("#your_localpath/customer.csv") val targetFile = new Path("hdfs://your_hdfspath/customer.csv") hdfs.copyFromLocalFile(oriPath, targetFile)


Use el armazón de Hadoop FS . Específicamente:

$ hadoop fs -copyFromLocal /path/to/local hdfs:///path/to/hdfs

Si desea hacerlo mediante programación, cree dos FileSystems (uno Local y un HDFS) y use la clase FileUtil