环境搭建好了后,就是操作了,先介绍在命令行下的操作。
shell操作方式
必须在hadoop的安装的节点上
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不会自动创建上传文件的父目录 父目录一定要存在
# 原来的文件还在 复制的过程 本地文件复制到hdfs上hadoop fs -put src dst# 原来的文件还有hadoop fs -copyFromLocal 本地文件路径 hdfs的文件路径(/)#文件上传 完成之后 本地文件剪切hadoop fs -moveFromLocal 本地文件路径 hdfs的文件路径
创建文件夹
# hadoop fs -mkdir hdfs的路径(/)# -p 创建级联目录hadoop fs -mkdir -p /hdp/aa01/bb
文件下载
# 从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.
查看文件的目录信息
# hadoop fs -ls hdfs目录# 这个命令只能查看当前给定的目录下的目录树 不能级联查看# 想要级联查看:# hadoop fs -ls -R hdfs目录hadoop fs -ls -R hdfs目录
删除文件或目录
# 删除文件:hadoop fs -rm hdfs文件的绝对路径# 删除目录:#hadoop fs -rm -r -f hdfs目录hadoop fs -rm -r -f /hdp
修改用户和组信息权限
# linux:# chown 用户:组 文件# chown -R 用户:组 目录# hdfs修改用户和组:hadoop fs -chown [-R] 用户:组 hdfs的路径
修改文件的读写权限
# 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 /testhadoop fs -chmod -R 755 /ss
查看文件内容
# -cathadoop fs -cat hdfs的文件路径# -tail# 查看文件末尾1kb的数据hadoop fs -tail hdfs的文件路径
新建一个空文件 了解
hadoop fs -touchz hdfs文件路径hadoop fs -touchz /oo
hdfs的文件的移动和复制
# hadoop fs -mv hdfs路径 hdfs路径hadoop fs -mv /test /ss# hadoop fs -cp hdfs路径 hdfs路径hadoop fs -cp /ss/test /
其他
-appendToFile 追加
追加到hdfs原始文件的末尾.
这里的追加在原始的数据块上追加的 如果原始的数据块超过128M 则会切分
#hadoop fs -appendToFile 本地文件 hdfs的文件hadoop fs -appendToFile aa /ss/test 了解
合并下载:-getmerge
# 将hdfs的多个文件合并为一个文件下载到本地# hadoop fs -getmerge hdfs的多个文件路径(空格) 本地文件路径# 按照给的路径的顺序 进行合并下载的hadoop fs -getmerge /test /ss/test /ss/aa01 /home/hadoop/merge
磁盘空间查看
# 查看所在分区的磁盘使用情况[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.gz186.1 M 372.1 M /jdk-8u221-linux-x64.tar.gz360 916 /wordcountdf 命令检查磁盘空间占用情况(并不能查看某个目录占用的磁盘大小)。命令格式: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
通过命令设置副本个数
# 这个命令只能修改指定路径的 副本的个数# -R 级联# -w wait 等待新的设定的副本完成hadoop fs -setrep 副本个数 hdfs路径# 这个命令修改的只能是已经上传过的文件# 对于新上传的文件 仍然按照的是hdfs-site.xml文件中的【配置】hadoop fs -setrep -R 4 /ss
