使用Hadoop命令来管理HDFS上的文件
时间:2019-05-19 01:26:10 来源:igfitidea点击:
本教程学习在Hadoop中管理HDFS上的文件。
我们将学习如何在HDFS中创建、上传、下载和列出内容。
下面的命令将在HDFS中创建目录结构,将文件从本地文件系统复制到HDFS,并将文件从HDFS下载到本地文件。
还有如何在HDFS中管理文件。
如何在HDFS中创建目录
获取类似于参数的URI路径,并创建一个目录或多个目录。
hdfs dfs -mkdir <paths>
记住,必须使用系统的用户名在HDFS中创建一个主目录。
例如,我们以hduser的身份登录到系统中,所以首先创建/user/hduser,否则我们会得到这个错误,现在在其中创建目录结构
hdfs dfs -mkdir /user/hduser hdfs dfs -mkdir /user/hduser/input hdfs dfs -mkdir /user/hduser/output hdfs dfs -mkdir /user/hduser/input/text /user/hadoop/input/xml
复制文件到HDFS
创建目录结构之后,现在将本地文件系统中的一些文件放到HDFS中。
hdfs dfs -put LOCAL_FILE HDFS_PATH
例如,
在当前目录中有一个test1.txt文件
在本地文件系统上有一个 /tmp/test2.xml
hdfs dfs -put text1.txt /user/hduser/input/text/ hdfs dfs -put /tmp/text2.xml /user/hduser/input/xml/
列出HDFS中的文件
使用以下示例命令列出HDFS中目录的内容。
hdfs dfs -ls /user/hduser hdfs dfs -ls /user/hduser/input/ hdfs dfs -ls /user/hduser/input/text/
使用-R递归地列出目录中的文件。
例如:
hdfs dfs -ls -R /user/hadoop/input/
从HDFS下载文件
至此,我们已经学习了如何将文件复制并列出到HDFS。
现在使用下面的命令示例如何从HDFS下载/复制文件到本地文件系统。
hdfs dfs -get /user/hduser/input/text/test1.txt /tmp/ hdfs dfs -get /user/hadoop/dir1/xml/test2.xml /tmp/
其中 /tmp是系统的本地文件系统。
在HDFS目录之间复制文件
使用distcp选项 我们可以轻松复制HDFS文件系统之间的文件。
hdfs distcp /user/hduser/input/xml/text2.xml /user/hduser/output hdfs distcp /user/hduser/input/text/text1.xml /user/hduser/output