liaoyuxiangqin created HDFS-12302:
-------------------------------------
Summary: FSVolume's getVolumeMap actually do nothing when
Instantiate a FsDatasetImpl object
Key: HDFS-12302
URL: https://issues.apache.org/jira/browse/HDFS-12302
Project: Hadoop HDFS
Issue Type: Improvement
Components: datanode
Affects Versions: 3.0.0-alpha4
Environment: cluster: 3 nodes
os:(Red Hat 2.6.33.20, Red Hat 3.10.0-514.6.1.el7.x86_64,
Ubuntu4.4.0-31-generic)
hadoop version: hadoop-3.0.0-alpha4
Reporter: liaoyuxiangqin
Assignee: liaoyuxiangqin
When i read the code of Instantiate FsDatasetImpl object on DataNode
start process, i find that the getVolumeMap function actually can't get
ReplicaMap info for each fsVolume, the reason is fsVolume's bpSlices hasn't
been initialized in this time, the detail code as follows:
{code:title=FsVolumeImpl.java}
void getVolumeMap(ReplicaMap volumeMap,
final RamDiskReplicaTracker ramDiskReplicaMap)
throws IOException {
LOG.info("Added volume - getVolumeMap bpSlices:" +
bpSlices.values().size());
for(BlockPoolSlice s : bpSlices.values()) {
s.getVolumeMap(volumeMap, ramDiskReplicaMap);
}
}
{code}
Then, i have add some info log and start DataNode, the log info cord with the
code description, the detail log info as follows:
INFO: Added volume - [DISK]file:/home/data2/hadoop/hdfs/data, StorageType:
DISK, getVolumeMap begin
INFO {color:red}Added volume - getVolumeMap bpSlices:0{color}
INFO: Added volume - [DISK]file:/home/data2/hadoop/hdfs/data, StorageType:
DISK, getVolumeMap end
INFO: Added new volume: DS-48ac6ef9-fd6f-49b7-a5fb-77b82cadc973
INFO: Added volume - [DISK]file:/home/data2/hadoop/hdfs/data, StorageType: DISK
INFO: Added volume - [DISK]file:/hdfs/data, StorageType: DISK, getVolumeMap
begin
INFO {color:red}Added volume - getVolumeMap bpSlices:0{color}
INFO: Added volume - [DISK]file:/hdfs/data, StorageType: DISK, getVolumeMap end
INFO: Added new volume: DS-159b615c-144c-4d99-8b63-5f37247fb8ed
INFO: Added volume - [DISK]file:/hdfs/data, StorageType: DISK
At last i think the getVolumeMap process for each fsVloume not necessary when
Instantiate FsDatasetImpl object.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]