• 数据存入HDFS中时需要对其进行分片(split)、压缩等操作。
  • HDFS使用Block(存储块)对文件的存储进行操作,Block是HDFS的基本存储单元,默认大小是64MB(Block较大的优点:可以减少用户与节点之间的通信需求;Namenode利用率高)。每个Block的默认副本数为3。
  • HDFS数据存储的目标有两个:最大化数据可靠性(每个数据块有默认3个副本);最大化利用网络带宽资源。
  • 数据节点之间的距离:同一节点(0);同一机架上不同节点(3);同一数据中心不同节点上(6);不同数据中心(9)。该距离的计算,由网络中的交换机的位置计算,该距离值是读取数据时读取节点的位置计算依据。
  • HDFS上的副本存放位置要对带宽以及传输速率进行衡量。
  • 对于数据量较庞大而安全性不太高的数据,可以较少副本数目,或者关闭HDFS复制而采用硬盘Raid模式。
  • HDFS副本(3个副本的情况)存放:第一个副本存放在当前节点上;第二个副本存放在不同的机架上;第三个副本存放在同一机架上的不同节点上。
  • NameNode中存放的基本信息有个特定的名称被叫做“元数据”,一般包括数据类型、大小、格式以及对象的存储形式。
  • HDFS在数据写入时,当节点出现故障时,只要默认的一个节点(dfs.replication.min)被写入了,数据将自动在集群键复制,直到复制达成第一好的次数。
  • HDFS通用操作命令:
  1. archive:创建一个hadoop档案文件,使用方法:hadoop archive -archibeName NAME <src>* <dest>
  2. distcp:在相同的文件系统中并行复制文件,使用方法:hadoop distcp <src1> <src2>
  3. fs:运行一个常规的文件基本命令,使用方法:hadoop fs [COMMAND_OPTIONS]
  4. jar:运行一个内含Hadoop运行代码的jar文件,使用方法:hadoop jar <jar> [mainClass] args
  • HDFS18个基本操作命令(文件路径可以使用相对路径,core-site.xml中已经对绝对路径进行了指定):


1. -help
2. -cat
3. -copyFromLocal
4. -copyToLocal
5. -cp
6. -du
7. -dus(显示目标文件大小)
8. expugunge(清空回收站)
9. -get
10. -ls
11. -lsr
12. -mkdir
13. -mv
14. -put
15. -rm
16. -rmr
17. -setrep
18. -test(使用ezd对文件进行检查)
19. -text(将源文件输出为文本格式)