5. Data Replication
block size/replication factor configurable per
file
namenode receive Heartbeat/Blockreport
from datanodes
Heartbeat
Blockreport
replica placement
Policy
Rack
6. Data Replication(Cont.)
replica selection - closest to reader
safemode(namenode)
on startup
no replication
exit after namenode data block check > x%
replicate
7. Persistence of File System
Metadata
Editlog
FsImage
Checkpoint
datanode
each block a file
on starup, scan local > blockreport
9. Robustness
failures
NameNode failure
DataNode failure
network partitions
data disk failure/heartbeats/re-replication
cluster rebalancing - free space, threshold
data integrity – checksum
meatadata disk failure
snapshot(HDFS not support yet)
10. Data Organization
data blocks
replication pipelining – write
1. namenode receive list of datanode by algorism
2. client write to 1st datanode
3. 1st datanode receive small portions(4KB)
4. 1st datanode copy this portion to 2nd datanode
hflush make unclosed file readable append opening a closed file to add Portable hardware and software
Blockreport - list of all blocks on datanode rack - namenode determine rack id of each datanode ex. 3 replica - 1 local rack - 1 remote rack - 1 same remote rack, different node
meatadata disk failure - namenode support multi-FsImage/EditLog - sync degrage - manual snapshot(HDFS not support yet) - for rollback
data blocks write-once-read-many 64MB
HDFS provide - Java API for application - C wrapper for Java API - WebDAV protocol for HTTP browser FS Shell - CLI ex. bin/hadoop dfs -mkdir /foodir ex. bin/hadoop dfs -rmr /foodir ex. bin/hadoop dfs -cat /foodir/myfile.txt DFSAdmin - command set - administrator ex. bin/hadoop dfsadmin -safemode enter // cluster ex. bin/hadoop dfsadmin -repost // generate list of datanodes Browser in typical HDFS install
delete 1. user delete file 2. rename file to /trash (can be restored) 3. remain for 6hr(configurable) 4. namenode delete 5. free associated blocks undelete - if in /trash decrease replication factor - namenode select - setReplication