hadoop文件系统常用操作

详细可参考hadoop官方文档filesystem shell一节

使用hadoop离不开文件系统,比如hdfs,我们可能需要从hdfs中读取文件作为输入,并将输出保存到hdfs上某个文件中

首先创建一个目录

bin> ./hadoop fs -mkdir /user/root

这样就在根目录 "/" 下创建了一个目录user,并在user目录下创建一个子目录root,对应用户名root,注意这里的根目录 "/" 与linux中文件系统的根目录不同,这里的根目录全部地址应该是 "hdfs://cluster-main:9000/",(假设cluster-main为hadoop集群主节点的host名,9000为hdfs对应端口),故目录 "/user/root" 的地址为 "hdfs://cluster-main:9000/user/root"。另外,如果要读取linux本地文件,则需要写全路径scheme为file,比如 "file:///file3",表示本地文件 "/file3"

如果删除root子目录则可以执行

bin> ./hadoop fs -rmdir /user/root

如果要删除 /user目录,即,递归删除/user的子目录和文件,由于这里 rmdir是作为 ./hadoop fs 的选项, /user作为参数,故无法像linux文件系统那样给rm命令添加 -rf选项,事实上,在hadoop中采用一个新的选项,如下

bin> ./hadoop fs -rmr /user

如果本地有一个文件,那我们可以将其推送到hdfs中,比如/user/root/目录下

bin> ./hadoop fs -put localfile /user/root/hadoopfile

相反地,如果要将hdfs中的文件下载到本地,则可以执行

bin> ./hadoop fs -get /user/root/file localfile

而将hdfs的文件复制到hdfs另一个路径,则与linux本地的cp类似

bin> ./hadoop fs -cp /user/root/file1 /user/root/file2

 

posted @ 2017-04-19 17:54  gaoshoufenmu  阅读(345)  评论(0编辑  收藏  举报