详细可参考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