hadoop将本地文件系统文件夹复制到HDFS

时间:2015-01-29 11:05:36

标签: hadoop hdfs

我需要将文件夹从本地文件系统复制到HDFS。我找不到任何将文件夹(包括其所有子文件夹)移动到HDFS的示例

$ hadoop fs -copyFromLocal /home/ubuntu/Source-Folder-To-Copy HDFS-URI

7 个答案:

答案 0 :(得分:73)

你可以尝试:

hadoop fs -put /path/in/linux /hdfs/path

甚至

hadoop fs -copyFromLocal /path/in/linux /hdfs/path

默认情况下,putcopyFromLocal都会递归上传目录到HDFS。

答案 1 :(得分:27)

如果从本地复制文件夹,则会将包含其所有子文件夹的文件夹复制到HDFS。

要将文件夹从本地复制到hdfs,可以使用

hadoop fs -put localpath

hadoop fs -copyFromLocal localpath

hadoop fs -put localpath hdfspath

hadoop fs -copyFromLocal localpath hdfspath

注意:

如果未指定hdfs path,则文件夹副本将复制到与该文件夹名称相同的hdfs。

从hdfs复制到本地

 hadoop fs -get hdfspath localpath

答案 2 :(得分:13)

简而言之

  

hdfs dfs -put <localsrc> <dest>

详细举例:

在将文件放入HDFS之前检查源和目标

[cloudera@quickstart ~]$ ll files/
total 132
-rwxrwxr-x 1 cloudera cloudera  5387 Nov 14 06:33 cloudera-manager
-rwxrwxr-x 1 cloudera cloudera  9964 Nov 14 06:33 cm_api.py
-rw-rw-r-- 1 cloudera cloudera   664 Nov 14 06:33 derby.log
-rw-rw-r-- 1 cloudera cloudera 53655 Nov 14 06:33 enterprise-deployment.json
-rw-rw-r-- 1 cloudera cloudera 50515 Nov 14 06:33 express-deployment.json

[cloudera@quickstart ~]$ hdfs dfs -ls
Found 1 items
drwxr-xr-x   - cloudera cloudera          0 2017-11-14 00:45 .sparkStaging

使用-put-copyFromLocal命令

复制文件HDFS
[cloudera@quickstart ~]$ hdfs dfs -put files/ files

验证HDFS中的结果

[cloudera@quickstart ~]$ hdfs dfs -ls
Found 2 items
drwxr-xr-x   - cloudera cloudera          0 2017-11-14 00:45 .sparkStaging
drwxr-xr-x   - cloudera cloudera          0 2017-11-14 06:34 files

[cloudera@quickstart ~]$ hdfs dfs -ls files
Found 5 items
-rw-r--r--   1 cloudera cloudera       5387 2017-11-14 06:34 files/cloudera-manager
-rw-r--r--   1 cloudera cloudera       9964 2017-11-14 06:34 files/cm_api.py
-rw-r--r--   1 cloudera cloudera        664 2017-11-14 06:34 files/derby.log
-rw-r--r--   1 cloudera cloudera      53655 2017-11-14 06:34 files/enterprise-deployment.json
-rw-r--r--   1 cloudera cloudera      50515 2017-11-14 06:34 files/express-deployment.json

答案 3 :(得分:3)

您可以使用:

1.将数据从本地文件加载到HDFS

语法:$ hadoop fs -copyFromLocal

EX:$ hadoop fs -copyFromLocal localfile1 HDIR

<强> 2。将数据从HDFS复制到本地

系统:$ hadoop fs -copyToLocal&lt;新文件名&gt;

EX:$ hadoop fs -copyToLocal hdfs / filename myunx;

答案 4 :(得分:2)

要将文件夹文件从本地复制到hdfs,可以使用以下命令

hadoop fs -put /path/localpath  /path/hdfspath

hadoop fs -copyFromLocal /path/localpath  /path/hdfspath

答案 5 :(得分:1)

导航到&#34; / install / hadoop / datanode / bin&#34;您可以执行hadoop命令的文件夹或路径:

将文件放入HDFS: 格式:hadoop fs -put&#34;本地系统路径&#34; /filename.csv&#34; HDFS目标路径&#34;

例如./ hadoop fs -put /opt/csv/load.csv / user / load

这里/opt/csv/load.csv是我本地linux系统的源文件路径。

/ user / load表示&#34; hdfs:// hacluster / user / load&#34;

中的HDFS集群目标路径

要将文件从HDFS传输到本地系统: 格式:hadoop fs -get&#34; / HDFSsourcefilepath&#34; &#34; /局部路径&#34;

例如)hadoop fs -get /user/load/a.csv / opt / csv /

执行上述命令后,HDFS的a.csv将被下载到本地linux系统的/ opt / csv文件夹中。

也可以通过HDFS NameNode Web UI查看此上传的文件。

答案 6 :(得分:0)

从命令行-

Hadoop fs -copyFromLocal

Hadoop fs -copyToLocal

或者您也使用spark FileSystem库获取或放置hdfs文件。

希望这会有所帮助。