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=300000
11/05/10 06:42:56 WARN conf.Configuration: mapred.task.id is deprecated. Instead, use mapreduce.task.attempt.id
Found 2 items
drwxr-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 /newdir
ls查看一下:
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=300000
11/06/01 18:04:11 WARN conf.Configuration: mapred.task.id is deprecated. Instead, use mapreduce.task.attempt.id
Found 3 items
drwxr-xr-x - xuqiang supergroup 0 2011-06-01 17:31 /jobtracker
drwxr-xr-x - xuqiang supergroup 0 2011-06-01 18:04 /newdir
drwxr-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.txt
3. 删除文件
xuqiang@ubuntu:~/hadoop/src/hadoop-0.21.0$ ./bin/hadoop fs -rm /user/xuqiang/README.txt
4. 帮助命令
xuqiang@ubuntu:~/hadoop/src/hadoop-0.21.0$ ./bin/hadoop fs -help ls
<3>. 参考资料
<<Hadoop In Action>>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?