环境搭建好了后,就是操作了,先介绍在命令行下的操作。
shell操作方式
必须在hadoop的安装的节点上
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| hadoop fs [-appendToFile <localsrc> ... <dst>] [-cat [-ignoreCrc] <src> ...] [-checksum <src> ...] [-chgrp [-R] GROUP PATH...] [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...] [-chown [-R] [OWNER][:[GROUP]] PATH...] [-copyFromLocal [-f] [-p] [-l] <localsrc> ... <dst>] [-copyToLocal [-p] [-ignoreCrc] [-crc] <src> ... <localdst>] [-count [-q] [-h] <path> ...] [-cp [-f] [-p | -p[topax]] <src> ... <dst>] [-createSnapshot <snapshotDir> [<snapshotName>]] [-deleteSnapshot <snapshotDir> <snapshotName>] [-df [-h] [<path> ...]] [-du [-s] [-h] <path> ...] [-expunge] [-find <path> ... <expression> ...] [-get [-p] [-ignoreCrc] [-crc] <src> ... <localdst>] [-getfacl [-R] <path>] [-getfattr [-R] {-n name | -d} [-e en] <path>] [-getmerge [-nl] <src> <localdst>] [-help [cmd ...]] [-ls [-d] [-h] [-R] [<path> ...]] [-mkdir [-p] <path> ...] [-moveFromLocal <localsrc> ... <dst>] [-moveToLocal <src> <localdst>] [-mv <src> ... <dst>] [-put [-f] [-p] [-l] <localsrc> ... <dst>] [-renameSnapshot <snapshotDir> <oldName> <newName>] [-rm [-f] [-r|-R] [-skipTrash] <src> ...] [-rmdir [--ignore-fail-on-non-empty] <dir> ...] [-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]] [-setfattr {-n name [-v value] | -x name} <path>] [-setrep [-R] [-w] <rep> <path> ...] [-stat [format] <path> ...] [-tail [-f] <file>] [-test -[defsz] <path>] [-text [-ignoreCrc] <src> ...] [-touchz <path> ...] [-truncate [-w] <length> <path> ...] [-usage [cmd ...]]
|
例子
文件上传
注意:在文件上传的过程中
- 如果没有指定文件名 以原来的文件名
- 如果指定文件名 则以指定的文件名命名
- hdfs不会自动创建上传文件的父目录 父目录一定要存在
1 2 3 4 5 6 7 8
| # 原来的文件还在 复制的过程 本地文件复制到hdfs上 hadoop fs -put src dst
# 原来的文件还有 hadoop fs -copyFromLocal 本地文件路径 hdfs的文件路径(/)
#文件上传 完成之后 本地文件剪切 hadoop fs -moveFromLocal 本地文件路径 hdfs的文件路径
|
创建文件夹
1 2 3
| # hadoop fs -mkdir hdfs的路径(/) # -p 创建级联目录 hadoop fs -mkdir -p /hdp/aa01/bb
|
文件下载
1 2 3 4 5 6 7 8 9 10 11 12
| # 从hdfs到本地 # hadoop fs -get hdfs文件路径 本地的文件路径 hadoop fs -get /hdfs-site.xml /home/hadoop/
# 拷贝的过程 #hadoop fs -copyToLocal hdfs文件路径 本地的文件路径 hadoop fs -copyToLocal /hdp/aa /home/hadoop/apps/
# hadoop fs -moveToLocal hdfs文件路径 本地的文件路径 # hdfs的文件下载完成 删除了 hadoop fs -moveToLocal /hdp/aa /home/hadoop/apps/tt //没有实现的 moveToLocal: Option '-moveToLocal' is not implemented yet.
|
查看文件的目录信息
1 2 3 4 5 6 7
| # hadoop fs -ls hdfs目录 # 这个命令只能查看当前给定的目录下的目录树 不能级联查看
# 想要级联查看: # hadoop fs -ls -R hdfs目录
hadoop fs -ls -R hdfs目录
|
删除文件或目录
1 2 3 4 5 6
| # 删除文件: hadoop fs -rm hdfs文件的绝对路径
# 删除目录: #hadoop fs -rm -r -f hdfs目录 hadoop fs -rm -r -f /hdp
|
修改用户和组信息权限
1 2 3 4 5 6
| # linux: # chown 用户:组 文件 # chown -R 用户:组 目录
# hdfs修改用户和组: hadoop fs -chown [-R] 用户:组 hdfs的路径
|
修改文件的读写权限
1 2 3 4 5 6 7 8 9 10 11
| # linux: # chmod -R 文件读写权限 文件或目录 # 7(所属用户)5(所属组的其他用户)5(其他用户) # rwx = 4 + 2 + 1 = 7 # rw = 4 + 2 = 6 # rx = 4 +1 = 5
# hadoop中: # hadoop fs -chmod -R 权限 hdfs的文件或目录 hadoop fs -chmod 755 /test hadoop fs -chmod -R 755 /ss
|
查看文件内容
1 2 3 4 5 6
| # -cat hadoop fs -cat hdfs的文件路径
# -tail # 查看文件末尾1kb的数据 hadoop fs -tail hdfs的文件路径
|
新建一个空文件 了解
1 2
| hadoop fs -touchz hdfs文件路径 hadoop fs -touchz /oo
|
hdfs的文件的移动和复制
1 2 3 4 5
| # hadoop fs -mv hdfs路径 hdfs路径 hadoop fs -mv /test /ss
# hadoop fs -cp hdfs路径 hdfs路径 hadoop fs -cp /ss/test /
|
其他
-appendToFile
追加
追加到hdfs原始文件的末尾.
这里的追加在原始的数据块上追加的 如果原始的数据块超过128M 则会切分
1 2
| #hadoop fs -appendToFile 本地文件 hdfs的文件 hadoop fs -appendToFile aa /ss/test 了解
|
合并下载:-getmerge
1 2 3 4 5
| # 将hdfs的多个文件合并为一个文件下载到本地 # hadoop fs -getmerge hdfs的多个文件路径(空格) 本地文件路径
# 按照给的路径的顺序 进行合并下载的 hadoop fs -getmerge /test /ss/test /ss/aa01 /home/hadoop/merge
|
磁盘空间查看
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| # 查看所在分区的磁盘使用情况 [root@hadoop01 ~]# hadoop fs -df -h / Filesystem Size Used Available Use% hdfs://hadoop01:9000 54.0 G 1.0 G 51.1 G 2%
# 每一个文件的大小 [root@hadoop01 ~]# hadoop fs -du -h / 342.6 M 685.1 M /hadoop-3.2.1.tar.gz 186.1 M 372.1 M /jdk-8u221-linux-x64.tar.gz 360 916 /wordcount df 命令 检查磁盘空间占用情况(并不能查看某个目录占用的磁盘大小)。
命令格式: df [option]
-h 以容易理解的格式(给人看的格式)输出文件系统分区使用情况,例如 10kB、10MB、10GB 等。 -k 以 kB 为单位输出文件系统分区使用情况。 -m 以 mB 为单位输出文件系统分区使用情况。 -a 列出所有的文件系统分区,包含大小为 0 的文件系统分区。 -i 列出文件系统分区的 inodes 信息。 -T 显示磁盘分区的文件系统类型。
du 命令 显示文件或目录所占的磁盘空间。
命令格式: du [option] 文件/目录
-h 以容易理解的格式(给人看的格式)输出文件系统分区使用情况,例如 10kB、10MB、10GB 等。 -s 显示文件或整个目录的大小,默认单位为 kB。
|
设置副本个数方式
hdfs-default.xml
默认的副本个数3
hdfs-site.xml
改为2
通过命令设置副本个数
1 2 3 4 5 6 7 8
| # 这个命令只能修改指定路径的 副本的个数 # -R 级联 # -w wait 等待新的设定的副本完成 hadoop fs -setrep 副本个数 hdfs路径
# 这个命令修改的只能是已经上传过的文件 # 对于新上传的文件 仍然按照的是hdfs-site.xml文件中的【配置】 hadoop fs -setrep -R 4 /ss
|