- 数据存入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通用操作命令:
- archive:创建一个hadoop档案文件,使用方法:hadoop archive -archibeName NAME <src>* <dest>
- distcp:在相同的文件系统中并行复制文件,使用方法:hadoop distcp <src1> <src2>
- fs:运行一个常规的文件基本命令,使用方法:hadoop fs [COMMAND_OPTIONS]
- jar:运行一个内含Hadoop运行代码的jar文件,使用方法:hadoop jar <jar> [mainClass] args
- HDFS18个基本操作命令(文件路径可以使用相对路径,core-site.xml中已经对绝对路径进行了指定):
- -help
- -cat
- -copyFromLocal
- -copyToLocal
- -cp
- -du
- -dus(显示目标文件大小)
- expugunge(清空回收站)
- -get
- -ls
- -lsr
- -mkdir
- -mv
- -put
- -rm
- -rmr
- -setrep
- -test(使用ezd对文件进行检查)
- -text(将源文件输出为文本格式)