参考文档:
Hadoop2.9.1
Hadoop3.1.1

一、简介

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,MapReduce为海量的数据提供了计算。

二、常用命令

hdfs命令是hadoop命令的实现

  1. 1. hadoop fs -help <cmd-name>
  2. #返回使用下面列出的命令之一信息。必须省略了'-' 字符在cmd。
  3. 2. hadoop fs -ls '/home/ask/answers/pdate=2014-12-18/'
  4. #列出路径指定的目录中的内容,示出了名称,权限,拥有者,大小和修改日期的每个条目。
  5. 3. hadoop fs -lsr '/home/ask/answers/pdate=2014-12-18/'
  6. #行为类似于-ls,但递归显示路径的所有子目录项。
  7. 4. hadoop fs -du '/home/ask/answers/pdate=2014-12-18/'
  8. #显示磁盘使用率,以字节为单位,对所有的文件,这些文件匹配的路径;文件名报告使用完整HDFS协议前缀。
  9. 5. hadoop fs -dus '/home/ask/answers/pdate=2014-12-18/'
  10. #类似-du,但打印路径中的所有文件/目录的磁盘使用情况的摘要。
  11. 6. hadoop fs -mv '/home/ask/answers/pdate=2014-12-18/' '/histo'
  12. #通过移动表示src到dest,在HDFS的文件或目录。
  13. 7. hadoop fs -cp '/home/ask/answers/pdate=2014-12-18/' '/histo'
  14. #在HDFS复制确定src中的文件或目录到dest。
  15. 8. hadoop fs -rm '/home/ask/answers/pdate=2014-12-18/'
  16. #删除文件或路径标识的空目录。
  17. 9. hadoop fs -rmr '/home/ask/answers/pdate=2014-12-18/'
  18. #删除路径标识的文件或目录。递归删除所有子条目(例如,文件或路径的子目录)。
  19. 10. hadoop fs -put './local' '/histo'
  20. #从本地localSrc文件系统中的DFS标识文件或目录内复制到dest。
  21. 11. hadoop fs -copyFromLocal './local' '/histo'
  22. #等同于-put
  23. 12. hadoop fs -moveFromLocal './local' '/histo'
  24. #从标识 localSrc本地文件系统中的文件或目录中HDFS复制到dest,然后删除本地副本上成功。
  25. 13. hadoop fs -get '/histo' './local'
  26. #拷贝标识 src来确定HDFS文件或目录,get只能复制一个文件, localDest本地文件系统路径
  27. 14. hadoop fs -getmerge '/histo' './local'
  28. #检索匹配的路径的src HDFS中的所有文件,并将它们复制合并文件到标识localDest本地文件系统中。
  29. 15. hadoop fs -cat '/home/ask/answers/pdate=2014-12-18/answers_2014-12-18.txt'
  30. #显示在标准输出文件名的内容。
  31. 16. hadoop fs -copyToLocal <src> <localDest>
  32. #等同于 -get
  33. 17. hadoop fs -moveToLocal <src> <localDest>
  34. #工作方式类似于-get,但删除HDFS复制成功。
  35. 18. hadoop fs -mkdir <path>
  36. #在创建一个HDFS命名的目录路径。创建任何父目录的路径丢失(例如,命令mkdir-p在Linux中)。
  37. 19. hadoop fs -setrep 副本数 <path>
  38. #设置hdfs文件的副本数;这里设置的副本数只是记录在 NameNode 的元数据中,是否真的会有这么多副本,
  39. 还得看 DataNode 的数量。因为目前只有 3 台设备,最多也就 3 个副本,只有节点数的增加到 10 台时,
  40. 副本数才能达到 10
  41. 20. hadoop fs -touchz <path>
  42. #创建在路径包含当前时间作为时间戳的文件。失败如果文件已经存在于路径,除非文件已经大小为0。
  43. 21. hadoop fs -test -[ezd] <path>
  44. #返回1,如果路径存在;长度为零;或者是一个目录,否则为0。
  45. 22. hadoop fs -stat [format] <path>
  46. #打印有关的路径信息。格式是接受块文件大小(%b),文件名(%n),块大小(%o),复制(%r)和修改日期(%y,%Y)的字符串。
  47. 23. hadoop fs -tail [-f] <file2name>
  48. #显示在标准输出文件的最后1KB。
  49. 24. hadoop fs -chmod [-R] mode,mode,... <path>...
  50. #变化符合路径标识的一个或多个对象关联的文件权限....递归执行变更与R.模式是3位八进制模式,或{augo}+/-{rwxX}。假设如果没有指定范围,则不适用umask。
  51. 25. hadoop fs -chown [-R] [owner][:[group]] <path>...
  52. #设置拥有用户和/或组标识路径的文件或目录....设置所有者递归,如果指定-R。
  53. 26. hadoop fs -chgrp [-R] group <path>...
  54. #设置所属组标识路径的文件或目录....设置组递归,如果指定-R。

三、hdfs命令