您的位置:首页 > 运维架构 > Shell

通过shell命令来控制hdfs

2011-07-02 13:16 302 查看
1. hadoop文件系统权限简介2.命令简介 3. 参考资料

<1>. hadoop文件系统权限简介

hadoop文件系统实现的文件权限模型和posix模型极其类似。每个文件和目录和一个owner和group相关联。可以使用下面的命令来查看/tmp/目录下的所有文件及其权限:xuqiang@ubuntu:~/hadoop/src/hadoop-0.21.0$ ./bin/hadoop fs -ls /tmp/11/05/10 06:42:56 INFO security.Groups: Group mapping impl=org.apache.hadoop.security.ShellBasedUnixGroupsMapping; cacheTimeout=30000011/05/10 06:42:56 WARN conf.Configuration: mapred.task.id is deprecated. Instead, use mapreduce.task.attempt.idFound 2 itemsdrwxr-xr-x - root supergroup 0 2011-05-10 05:36 /tmp/hadoop-root-rw-r--r-- 3 xuqiang supergroup 541 2011-05-10 06:14 /tmp/hello.c其中对于文件而言,r表明的是读取该文件的权限,w是写该文件的权限;对于目录而言的话,r权限表明的是能够读取该目录下的文件列表,w权限表明的是能够在目录下创建或者是删除文件和目录,x权限表示能够从该目录进入其子目录中。和posix模型不同的是,在hdfs中是不存在所谓的sticky,setuid和setgid。

<2>. 命令简介

hdfs设计之处的主要目的是对海量数据进行处理,也就是说在其上能够存储很大量文件(可以存储TB级的文件),hdfs将这些文件分割之后,存储在不同的DataNode上,但是对外却提供了一个简单的事实:这还是个简单完整的文件,只不过这个文件比较大。hdfs处理文件的命令和linux上命令基本上是相同的,键入./bin/hadoop fs将输出能够支持的命令的列表:Usage: java FsShell [-ls <path>] [-lsr <path>] [-df [<path>]] [-du [-s] [-h] <path>] [-dus <path>] [-count[-q] <path>] [-mv <src> <dst>] [-cp <src> <dst>] [-rm [-skipTrash] <path>] [-rmr [-skipTrash] <path>] [-expunge] [-put <localsrc> ... <dst>] [-copyFromLocal <localsrc> ... <dst>] [-moveFromLocal <localsrc> ... <dst>] [-get [-ignoreCrc] [-crc] <src> <localdst>] [-getmerge <src> <localdst> [addnl]] [-cat <src>] [-text <src>] [-copyToLocal [-ignoreCrc] [-crc] <src> <localdst>] [-moveToLocal [-crc] <src> <localdst>] [-mkdir <path>] [-setrep [-R] [-w] <rep> <path/file>] [-touchz <path>] [-test -[ezd] <path>] [-stat [format] <path>] [-tail [-f] <file>] [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...] [-chown [-R] [OWNER][:[GROUP]] PATH...] [-chgrp [-R] GROUP PATH...] [-help [cmd]]如果熟悉linux的话,这些命令基本上就不怎么需要解释了。 但是下面还是列出了几个常用场景下的命令:1. 增加文件和目录hdfs上的文件的目录结构同样也是类似于linux的,根目录使用/表示。下面的命令将在根目录下建立目录newdir:./bin/hadoop fs -mkdir /newdirls查看一下: xuqiang@ubuntu:~/hadoop/src/hadoop-0.21.0$ ./bin/hadoop fs -ls /11/06/01 18:04:11 INFO security.Groups: Group mapping impl=org.apache.hadoop.security.ShellBasedUnixGroupsMapping; cacheTimeout=30000011/06/01 18:04:11 WARN conf.Configuration: mapred.task.id is deprecated. Instead, use mapreduce.task.attempt.idFound 3 itemsdrwxr-xr-x - xuqiang supergroup 0 2011-06-01 17:31 /jobtrackerdrwxr-xr-x - xuqiang supergroup 0 2011-06-01 18:04 /newdirdrwxr-xr-x - xuqiang supergroup 0 2011-06-01 17:31 /tmp既然已经有了这个目录,那么我们接着将一个本地文件local file上传到hdfs上。xuqiang@ubuntu:~/hadoop/src/hadoop-0.21.0$ ./bin/hadoop fs -put ./README.txt . 这里需要注意的是.代表的含义,在hdfs中对于每个登录的用户都会存在一个默认的工作目录/user/$LOGINNAME(类似于linux下的home目录),.代表的就是这个默认工作目录。2. 下载文件xuqiang@ubuntu:~/hadoop/src/hadoop-0.21.0$ ./bin/hadoop fs -get /user/xuqiang/README.txt3. 删除文件xuqiang@ubuntu:~/hadoop/src/hadoop-0.21.0$ ./bin/hadoop fs -rm /user/xuqiang/README.txt4. 帮助命令xuqiang@ubuntu:~/hadoop/src/hadoop-0.21.0$ ./bin/hadoop fs -help ls

<3>. 参考资料

http://hadoop.apache.org/common/docs/r0.18.3/hdfs_permissions_guide.html<<Hadoop In Action>>
作者:许强(就读于[哈尔滨工业大学(威海)软件学院]) 出处:[http://xuqiang.cnblogs.com]1. 本博客中的文章均是个人在学习和项目开发中总结。其中难免存在不足之处 ,欢迎留言指正。
2. 本文版权归作者和博客园共有,转载时,请保留本文链接。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: