HDFS DataNode多目录

1. DataNode多目录配置

DataNode也可以配置成多个目录。多目录不是以副本的形式存储数据,而是以分片的形式存放。各具目录共同组成完整的DataNode数据

1.1. 编辑 hdfs-site.xml

添加以下配置

1
2
3
4
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data1,file:/usr/local/hadoop/tmp/dfs/data2</value>
</property>

再分发 hdfs-site.xml

1.2. 重新格式化NameNode

删除各个节点的logs和tmp目录,关闭各个服务,格式化NameNode

1
hdfs namenode -format

1.3. 启动HDFS

一开始DataNode还没有数据

1
2
3
4
5
6
7
8
$ tree tmp/dfs/
tmp/dfs/
└── name
└── current
├── fsimage_0000000000000000000
├── fsimage_0000000000000000000.md5
├── seen_txid
└── VERSION

启动HDFS

1
start-dfs.sh

再查看DataNode数据,看到生成data1和data2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$ tree -a tmp/dfs/
tmp/dfs/
├── data1
│   ├── current
│   │   ├── BP-441466473-192.168.57.101-1551067074181
│   │   │   ├── current
│   │   │   │   ├── finalized
│   │   │   │   ├── rbw
│   │   │   │   └── VERSION
│   │   │   ├── dncp_block_verification.log.curr
│   │   │   └── tmp
│   │   └── VERSION
│   └── in_use.lock
├── data2
│   ├── current
│   │   ├── BP-441466473-192.168.57.101-1551067074181
│   │   │   ├── current
│   │   │   │   ├── finalized
│   │   │   │   ├── rbw
│   │   │   │   └── VERSION
│   │   │   └── tmp
│   │   └── VERSION
│   └── in_use.lock
└── name
├── current
│   ├── edits_inprogress_0000000000000000001
│   ├── fsimage_0000000000000000000
│   ├── fsimage_0000000000000000000.md5
│   ├── seen_txid
│   └── VERSION
└── in_use.lock

1.4. 上传文件测试

上传文件

1
hdfs dfs -put 1.txt /

查看DataNode数据,看到数据只是存放到data1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
$ tree -a tmp/dfs/
tmp/dfs/
├── data1
│   ├── current
│   │   ├── BP-441466473-192.168.57.101-1551067074181
│   │   │   ├── current
│   │   │   │   ├── finalized
│   │   │   │   │   └── subdir0
│   │   │   │   │   └── subdir0
│   │   │   │   │   ├── blk_1073741825 # 数据存放到data1
│   │   │   │   │   └── blk_1073741825_1001.meta
│   │   │   │   ├── rbw
│   │   │   │   └── VERSION
│   │   │   ├── dncp_block_verification.log.curr
│   │   │   ├── dncp_block_verification.log.prev
│   │   │   └── tmp
│   │   └── VERSION
│   └── in_use.lock
├── data2
│   ├── current
│   │   ├── BP-441466473-192.168.57.101-1551067074181
│   │   │   ├── current
│   │   │   │   ├── finalized
│   │   │   │   ├── rbw
│   │   │   │   └── VERSION
│   │   │   └── tmp
│   │   └── VERSION
│   └── in_use.lock
└── name
├── current
│   ├── edits_0000000000000000001-0000000000000000002
│   ├── edits_inprogress_0000000000000000003
│   ├── fsimage_0000000000000000000
│   ├── fsimage_0000000000000000000.md5
│   ├── fsimage_0000000000000000002
│   ├── fsimage_0000000000000000002.md5
│   ├── seen_txid
│   └── VERSION
└── in_use.lock

再上传一个文件

1
hdfs dfs -put 2.txt /

查看DataNode数据,看到数据只是存放到data2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
$ tree -a tmp/dfs/
tmp/dfs/
├── data1
│   ├── current
│   │   ├── BP-441466473-192.168.57.101-1551067074181
│   │   │   ├── current
│   │   │   │   ├── finalized
│   │   │   │   │   └── subdir0
│   │   │   │   │   └── subdir0
│   │   │   │   │   ├── blk_1073741825
│   │   │   │   │   └── blk_1073741825_1001.meta
│   │   │   │   ├── rbw
│   │   │   │   └── VERSION
│   │   │   ├── dncp_block_verification.log.curr
│   │   │   ├── dncp_block_verification.log.prev
│   │   │   └── tmp
│   │   └── VERSION
│   └── in_use.lock
├── data2
│   ├── current
│   │   ├── BP-441466473-192.168.57.101-1551067074181
│   │   │   ├── current
│   │   │   │   ├── finalized
│   │   │   │   │   └── subdir0
│   │   │   │   │   └── subdir0
│   │   │   │   │   ├── blk_1073741826 # 数据存放到data2
│   │   │   │   │   └── blk_1073741826_1002.meta
│   │   │   │   ├── rbw
│   │   │   │   └── VERSION
│   │   │   └── tmp
│   │   └── VERSION
│   └── in_use.lock
└── name
├── current
│   ├── edits_0000000000000000001-0000000000000000002
│   ├── edits_inprogress_0000000000000000003
│   ├── fsimage_0000000000000000000
│   ├── fsimage_0000000000000000000.md5
│   ├── fsimage_0000000000000000002
│   ├── fsimage_0000000000000000002.md5
│   ├── seen_txid
│   └── VERSION
└── in_use.lock
panchaoxin wechat
关注我的公众号
支持一下