hadoop之HDFS文件操作常有两种方式,命令行方式和JavaAPI方式
一、文件基础管理
1、命令行
详情参见 http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html
hadoop fs -cmd <args>
hadoop fs -mkdir /usr/root
hadoop fs -put README.txt 使用Hadoop的命令put将本地文件README.txt送到HDFS
hadoop fs -ls
hadoop fs -get README.txt
hadoop fs -get README.txt /usr/root/README.txt
hadoop fs -rm README.txt
hadoop fs -cat README.txt
hadoop fs -cat README.txt | head
hadoop fs -tail README.txt
hadoop fs -help ls
Hadoop fsck /user/filename -files -blocks -locations -racks
-files 文件分块信息,
-blocks 在带-files参数后才显示block信息
-locations 在带-blocks参数后才显示block块所在datanode的具体IP位置,
-racks 在带-files参数后显示机架位置
2、Java API
二、文件权限管理
sudo addgroup Hadoop#添加一个hadoop组
sudo usermod -a -G hadoop newuser#将当前用户加入到hadoop组
修改hadoop目录的权限
sudo chown -R newuser:hadoop /home/newuser/hadoop<所有者:组 文件>
sudo chmod -R 755 /home/larry/hadoop
修改hdfs的权限
sudo bin/hadoop dfs -chmod -R 755 /
sudo bin/hadoop dfs -ls /
修改hdfs文件的所有者
sudo bin/hadoop fs -chown -R newuser /
sudo bin/hadoop dfsadmin -safemode leave #解除hadoop的安全模式
hadoop fs -copyFromLocal <localsrc> URI#拷贝本地文件到hdfs
hadoop fs -cat file:///file3 /user/hadoop/file4#将路径指定文件的内容输出到stdout
hadoop fs -chgrp [-R] GROUP URI#改变文件的所属组
hadoop fs -chmod [-R] 755 URI#改变用户访问权限
hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]#修改文件的所有者
hadoop fs -copyToLocal URI localdst#拷贝hdfs文件到本地
hadoop fs -cp URI [URI …] <dest>#拷贝hdfs文件到其它目录
hadoop fs -du URI [URI …]#显示目录中所有文件的大小
hadoop fs -getmerge <src> <localdst> [addnl]#合并文件到本地目录