1, 课程简介
HDFS 是 Hadoop 大数据平台中的分布式文件系统, 为上层应用或其他大数据组件提供数据存储, 如 Hive,Mapreduce,Spark,HBase 等.
本文章中所有命令均在 CentOS-6.4-x86_64,hadoop-2.5.2,jdk1.8.0_152,zookeeper-3.4.11 中运行通过, 为减少 linux 权限对初学者造成影响, 所有命令均在 linux 的 root 权限下进行操作.
2, 理论回顾
Hadoop 技术本身包含 HDFS,Map/Reduce.HDFS 作海量数据存储之用; M/R 作海量数据计算之用.
HDFS 包含 namenode,datanode.namenode 对 datanode 中的数据建立了索引.
zookeeper 作为协调服务, 为 namenode 提供了高可用性.
3, 基本操作
? 注意:"# ./hdfs dfs -ls /" 命令前的 "#" 代表当前登录用户是 root. 运行路径位于 hadoop 目录中的 bin 文件夹下. 命令中的 "." 代表当前目录. 命令中涉及的 info 文件需要提前创建好. 如下图所示:
3.1 -ls 功能: 显示目录信息.
- # ./hdfs dfs -ls /
- drwxr-xr-x - root supergroup 0 2018-07-30 00:09 /hbase
- drwxr-xr-x - root supergroup 0 2018-06-23 15:22 /output
- drwx------ - root supergroup 0 2018-07-31 00:32 /tmp
- drwxr-xr-x - root supergroup 0 2018-07-31 00:41 /user
- -rw-r--r-- 2 root supergroup 77 2018-04-22 02:34 /wordcount
3.2 -mkdir 功能: 在 HDFS 文件系统上创建目录.
- # ./hdfs dfs -mkdir /wanhe
- # ./hdfs dfs -ls /
- drwxr-xr-x - root supergroup 0 2018-07-30 00:09 /hbase
- drwxr-xr-x - root supergroup 0 2018-06-23 15:22 /output
- drwx------ - root supergroup 0 2018-07-31 00:32 /tmp
- drwxr-xr-x - root supergroup 0 2018-07-31 00:41 /user
- drwxr-xr-x - root supergroup 0 2018-09-12 18:00 /wanhe
- -rw-r--r-- 2 root supergroup 77 2018-04-22 02:34 /wordcount
3.3 -put 功能: 上传本地文件到 HDFS 指定目录.
- # ./hdfs dfs -put info /wanhe
- # ./hdfs dfs -ls /wanhe
- -rw-r--r-- 2 root supergroup 38 2018-09-12 18:10 /wanhe/info
3.4 -get 功能: 从 hdfs 下载文件到本地.
- # rm -rf info
- # ls
- container-executor hadoop hadoop.cmd hdfs hdfs.cmd mapred mapred.cmd rcc test-container-executor yarn yarn.cmd
- # ./hdfs dfs -get /wanhe/info ./
- # ls
- container-executor hadoop hadoop.cmd hdfs hdfs.cmd info mapred mapred.cmd rcc test-container-executor yarn yarn.cmd
3.5 -rm 功能: 从 HDFS 删除文件.
- # ./hdfs dfs -rm /wanhe/info
- # ./hdfs dfs -ls /wanhe
空
3.6 -moveFromLocal 功能: 剪切本地文件到 HDFS
- # ./hdfs dfs -moveFromLocal info /wanhe
- # ./hdfs dfs -ls /wanhe
- -rw-r--r-- 2 root supergroup 38 2018-09-12 22:04 /wanhe/info
- # ls
- container-executor hadoop hadoop.cmd hdfs hdfs.cmd mapred mapred.cmd rcc test-container-executor yarn yarn.cmd
3.7 -cat 功能: 显示文件内容.
- # ./hdfs dfs -cat /wanhe/info
- jiangsuwanhe
3.8 -appendToFile 功能: 在文件末尾追加数据.
- # ./hdfs dfs -appendToFile info /wanhe/info
- # ./hdfs dfs -cat /wanhe/info
- jiangsuwanhe
- jiangsuwanhe
3.9 -chmod 功能: 更改文件所属权限.
- # ./hdfs dfs -ls /wanhe
- -rw-r--r-- 2 root supergroup 51 2018-09-12 22:13 /wanhe/info
- # ./hdfs dfs -chmod 777 /wanhe/info
- # ./hdfs dfs -ls /wanhe
- -rwxrwxrwx 2 root supergroup 51 2018-09-12 22:13 /wanhe/info
3.10 -cp 功能: 实现文件的拷贝.
将 / wanhe/info 拷贝到 / tmp 下:
- # ./hdfs dfs -cp /wanhe/info /tmp/
- # ./hdfs dfs -ls /tmp
- -rw-r--r-- 2 root supergroup 51 2018-09-12 22:20 /tmp/info
3.11 -mv 功能: 移动文件.
将 / wanhe/info 移动到 /user 下
- # ./hdfs dfs -mv /wanhe/info /user/
- # ./hdfs dfs -ls /wanhe
空
- # ./hdfs dfs -ls /user
- -rwxrwxrwx 2 root supergroup 51 2018-09-12 22:13 /user/info
3.12 -df 功能: 统计文件系统的可用空间信息.
- # ./hdfs dfs -df -h /
- Filesystem Size Used Available Use%
- hdfs://master:9000 17.5 G 352 K 11.4 G 0%
3.13 -du 功能: 统计文件夹的大小信息.
- # ./hdfs dfs -du /user
- 51 /user/info
3.14 -count 功能: 统计一个指定目录下的文件数量.
- # ./hdfs dfs -count /user
- 2 1 51 /user
第一列 2 表示 / user / 下文件夹的数量, 第二列 1 表示 / user / 下文件的个数. 51 表示 / user / 目录下所有文件占用的磁盘容量 (不计算副本个数).
4, 总结
? HDFS 中的命令行操作类似于 linux 命令, 熟练使用 linux 命令便可以熟练的使用命令行操作 HDFS. 后面我们将连载大数据系列博客, 欢迎关注和交流.
? 本文中所有安装软件等更多福利请入群后向管理员获取.
来源: http://www.bubuko.com/infodetail-2767286.html