环境搭建好了后,就是操作了,先介绍在命令行下的操作。

shell操作方式

必须在hadoop的安装的节点上

  1. hadoop fs
  2. [-appendToFile <localsrc> ... <dst>]
  3. [-cat [-ignoreCrc] <src> ...]
  4. [-checksum <src> ...]
  5. [-chgrp [-R] GROUP PATH...]
  6. [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
  7. [-chown [-R] [OWNER][:[GROUP]] PATH...]
  8. [-copyFromLocal [-f] [-p] [-l] <localsrc> ... <dst>]
  9. [-copyToLocal [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
  10. [-count [-q] [-h] <path> ...]
  11. [-cp [-f] [-p | -p[topax]] <src> ... <dst>]
  12. [-createSnapshot <snapshotDir> [<snapshotName>]]
  13. [-deleteSnapshot <snapshotDir> <snapshotName>]
  14. [-df [-h] [<path> ...]]
  15. [-du [-s] [-h] <path> ...]
  16. [-expunge]
  17. [-find <path> ... <expression> ...]
  18. [-get [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
  19. [-getfacl [-R] <path>]
  20. [-getfattr [-R] {-n name | -d} [-e en] <path>]
  21. [-getmerge [-nl] <src> <localdst>]
  22. [-help [cmd ...]]
  23. [-ls [-d] [-h] [-R] [<path> ...]]
  24. [-mkdir [-p] <path> ...]
  25. [-moveFromLocal <localsrc> ... <dst>]
  26. [-moveToLocal <src> <localdst>]
  27. [-mv <src> ... <dst>]
  28. [-put [-f] [-p] [-l] <localsrc> ... <dst>]
  29. [-renameSnapshot <snapshotDir> <oldName> <newName>]
  30. [-rm [-f] [-r|-R] [-skipTrash] <src> ...]
  31. [-rmdir [--ignore-fail-on-non-empty] <dir> ...]
  32. [-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]]
  33. [-setfattr {-n name [-v value] | -x name} <path>]
  34. [-setrep [-R] [-w] <rep> <path> ...]
  35. [-stat [format] <path> ...]
  36. [-tail [-f] <file>]
  37. [-test -[defsz] <path>]
  38. [-text [-ignoreCrc] <src> ...]
  39. [-touchz <path> ...]
  40. [-truncate [-w] <length> <path> ...]
  41. [-usage [cmd ...]]

例子

文件上传

注意:在文件上传的过程中

  • 如果没有指定文件名 以原来的文件名
  • 如果指定文件名 则以指定的文件名命名
  • hdfs不会自动创建上传文件的父目录 父目录一定要存在
  1. # 原来的文件还在 复制的过程 本地文件复制到hdfs上
  2. hadoop fs -put src dst
  3. # 原来的文件还有
  4. hadoop fs -copyFromLocal 本地文件路径 hdfs的文件路径(/)
  5. #文件上传 完成之后 本地文件剪切
  6. hadoop fs -moveFromLocal 本地文件路径 hdfs的文件路径

创建文件夹

  1. # hadoop fs -mkdir hdfs的路径(/)
  2. # -p 创建级联目录
  3. hadoop fs -mkdir -p /hdp/aa01/bb

文件下载

  1. # 从hdfs到本地
  2. # hadoop fs -get hdfs文件路径 本地的文件路径
  3. hadoop fs -get /hdfs-site.xml /home/hadoop/
  4. # 拷贝的过程
  5. #hadoop fs -copyToLocal hdfs文件路径 本地的文件路径
  6. hadoop fs -copyToLocal /hdp/aa /home/hadoop/apps/
  7. # hadoop fs -moveToLocal hdfs文件路径 本地的文件路径
  8. # hdfs的文件下载完成 删除了
  9. hadoop fs -moveToLocal /hdp/aa /home/hadoop/apps/tt //没有实现的
  10. moveToLocal: Option '-moveToLocal' is not implemented yet.

查看文件的目录信息

  1. # hadoop fs -ls hdfs目录
  2. # 这个命令只能查看当前给定的目录下的目录树 不能级联查看
  3. # 想要级联查看:
  4. # hadoop fs -ls -R hdfs目录
  5. hadoop fs -ls -R hdfs目录

删除文件或目录

  1. # 删除文件:
  2. hadoop fs -rm hdfs文件的绝对路径
  3. # 删除目录:
  4. #hadoop fs -rm -r -f hdfs目录
  5. hadoop fs -rm -r -f /hdp

修改用户和组信息权限

  1. # linux:
  2. # chown 用户:组 文件
  3. # chown -R 用户:组 目录
  4. # hdfs修改用户和组:
  5. hadoop fs -chown [-R] 用户:组 hdfs的路径

修改文件的读写权限

  1. # linux:
  2. # chmod -R 文件读写权限 文件或目录
  3. # 7(所属用户)5(所属组的其他用户)5(其他用户)
  4. # rwx = 4 + 2 + 1 = 7
  5. # rw = 4 + 2 = 6
  6. # rx = 4 +1 = 5
  7. # hadoop中:
  8. # hadoop fs -chmod -R 权限 hdfs的文件或目录
  9. hadoop fs -chmod 755 /test
  10. hadoop fs -chmod -R 755 /ss

查看文件内容

  1. # -cat
  2. hadoop fs -cat hdfs的文件路径
  3. # -tail
  4. # 查看文件末尾1kb的数据
  5. hadoop fs -tail hdfs的文件路径

新建一个空文件 了解

  1. hadoop fs -touchz hdfs文件路径
  2. hadoop fs -touchz /oo

hdfs的文件的移动和复制

  1. # hadoop fs -mv hdfs路径 hdfs路径
  2. hadoop fs -mv /test /ss
  3. # hadoop fs -cp hdfs路径 hdfs路径
  4. hadoop fs -cp /ss/test /

其他

-appendToFile 追加

追加到hdfs原始文件的末尾.

这里的追加在原始的数据块上追加的 如果原始的数据块超过128M 则会切分

  1. #hadoop fs -appendToFile 本地文件 hdfs的文件
  2. hadoop fs -appendToFile aa /ss/test 了解

合并下载:-getmerge

  1. # 将hdfs的多个文件合并为一个文件下载到本地
  2. # hadoop fs -getmerge hdfs的多个文件路径(空格) 本地文件路径
  3. # 按照给的路径的顺序 进行合并下载的
  4. hadoop fs -getmerge /test /ss/test /ss/aa01 /home/hadoop/merge

磁盘空间查看

  1. # 查看所在分区的磁盘使用情况
  2. [root@hadoop01 ~]# hadoop fs -df -h /
  3. Filesystem Size Used Available Use%
  4. hdfs://hadoop01:9000 54.0 G 1.0 G 51.1 G 2%
  5. # 每一个文件的大小
  6. [root@hadoop01 ~]# hadoop fs -du -h /
  7. 342.6 M 685.1 M /hadoop-3.2.1.tar.gz
  8. 186.1 M 372.1 M /jdk-8u221-linux-x64.tar.gz
  9. 360 916 /wordcount
  10. df 命令
  11. 检查磁盘空间占用情况(并不能查看某个目录占用的磁盘大小)。
  12. 命令格式:
  13. df [option]
  14. -h 以容易理解的格式(给人看的格式)输出文件系统分区使用情况,例如 10kB10MB10GB 等。
  15. -k kB 为单位输出文件系统分区使用情况。
  16. -m mB 为单位输出文件系统分区使用情况。
  17. -a 列出所有的文件系统分区,包含大小为 0 的文件系统分区。
  18. -i 列出文件系统分区的 inodes 信息。
  19. -T 显示磁盘分区的文件系统类型。
  20. du 命令
  21. 显示文件或目录所占的磁盘空间。
  22. 命令格式:
  23. du [option] 文件/目录
  24. -h 以容易理解的格式(给人看的格式)输出文件系统分区使用情况,例如 10kB10MB10GB 等。
  25. -s 显示文件或整个目录的大小,默认单位为 kB

设置副本个数方式

hdfs-default.xml

默认的副本个数3

hdfs-site.xml

改为2

通过命令设置副本个数

  1. # 这个命令只能修改指定路径的 副本的个数
  2. # -R 级联
  3. # -w wait 等待新的设定的副本完成
  4. hadoop fs -setrep 副本个数 hdfs路径
  5. # 这个命令修改的只能是已经上传过的文件
  6. # 对于新上传的文件 仍然按照的是hdfs-site.xml文件中的【配置】
  7. hadoop fs -setrep -R 4 /ss