一、DataNode功能及特性
(1)提供真实文件数据的存储服务。
(2)文件块(block):最基本的存储单位。对于文件内容而言,一个文件的长度大小是size,那么从文件的0偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一个块称一个Block。
(3)HDFS默认Block大小是128MB,以一个256MB文件,共有256/128=2个Block. 不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间, (这样设置可以减轻namenode压力,因为namonode维护着文件与数据块列表的对应大小)
(4)Replication。多复本。默认是三个。(hdfs-site.xml的dfs.replication属性)
注意区别:一个文件可以产生多个快,多个文件是不可能成为一个块信息的,处于减轻namenode的压力,最好的方式就是一个文件一个块
二、DataNode 存储目录的文件结构以及特点
DataNode数据保存在如下目录:
$HADOOP_HOME/tmp/dfs/data
[root@hadoop-server01 data]# ll
total 8
drwxr-xr-x. 3 root root 4096 Jun 15 00:51 current
-rw-r--r--. 1 root root 20 Jul 15 22:21 in_use.lock
[root@hadoop-server01 data]# cd current/
[root@hadoop-server01 current]# ll
total 8
drwx------. 4 root root 4096 Jul 15 22:21 BP-1300855425-192.168.1.201-1529048649163
-rw-r--r--. 1 root root 229 Jul 15 22:21 VERSION
/usr/local/apps/hadoop-2.4.1/tmp/dfs/data/current/BP-1300855425-192.168.1.201-1529048649163/current/finalized
[root@hadoop-server01 finalized]# ll blk_107374*
-rw-r--r--. 1 root root 134217728 Jun 18 18:46 blk_1073741825
-rw-r--r--. 1 root root 1048583 Jun 18 18:46 blk_1073741825_1001.meta
-rw-r--r--. 1 root root 4439028 Jun 18 18:46 blk_1073741826
-rw-r--r--. 1 root root 34687 Jun 18 18:46 blk_1073741826_1002.meta
-rw-r--r--. 1 root root 11 Jul 4 23:38 blk_1073742895_2071.meta
drwxr-xr-x. 2 root root 4096 Jun 22 08:21 subdir0
drwxr-xr-x. 2 root root 4096 Jun 22 08:21 subdir1
drwxr-xr-x. 2 root root 4096 Jun 22 08:21 subdir10
drwxr-xr-x. 2 root root 4096 Jun 22 08:21 subdir11
drwxr-xr-x. 2 root root 4096 Jun 22 08:21 subdir12
blocksBeingWritten:保存了客户端发起的,当前正在写的数据块;
detach:用于配合数据节点升级,==数据块分离==操作时的临时文件夹;
tmp:保存了用于数据块复制时,当前正在写的数据块;
in_user.lock:表示当前目录已经被使用,实现了一种锁机制,这样DataNode可以独自使用该目录;
current:保存了已写入HDFS文件系统的数据块和一些系统工作时需要的文件;
blk_开头的文件:HDFS数据块,用来保存HDFS文件内容;
.meta后缀文件:CRC32校验文件,保存数据块的校验信息;
当current目录达到一定规模时(由配置项${dfs.datanode.numblocks}指定),DataNode会在current目录下新创建一个子目录subdir*,用于保存新的数据块和元数据。
默认配置下,current目录下最多只有64个数据块(128个文件)和64个子目录。通过这种手段,DataNode既保证目录不会太深,影响文件检索性能,同时也避免了某个目录保存大量的数据块。
转载于:https://blog.51cto.com/2951890/2147005