Erik’s Blog

Erik’s Blog

cloudera training > mapreduce and hdfs > hdfs

leave a comment »

ref: http://www.cloudera.com/hadoop-training-mapreduce-hdfs

- redundant storage of massive amounts of data on unreliable computers
- advantages over existing file system:
– handles much bigger data sets
– different workload and design priorities
- it’s conceptually comparable (very roughly) to zip file structure
- assumptions
– high component failure rate
– modest number (~1000) of huge (100mb) files
– files are write-once and then appended to
– large streaming reads, instead of seeks
— disks are really good at streaming, but bad at seeking
– high sustained throughput > low latency
- design decisions
– files stored as blocks
— block replication is asynch (this is why there is no updates)
– reliability through replication
– single master (namenode)
— a simple architecture, but also a single point of failure
– no data caching
– data nodes periodically heartbeat w/ the namenode
– creating a file flow: start transaction > define metadata > end transaction
– intermediate files are written locally to mapper, and then reducers fetch that data
- based on gfs architecture
– all data fetched over http
- metadata
– single namenode stores all metadata in memory
– two data structures on disk
— a snapshot of metadata
— a log of changes since snapshot
– the “secondary namenode”, which has a terrible name (should be something like “namenode helper”), updates the snapshot and informs namenode of new snapshot
– namenode snapshot should be written to an nfs-mounted location, so if the namenode fails, the snapshot will survive
— google has optimized linux kernel for gfs, but cloudera just uses x3(?), and others use xfs
– datanodes store opaque file contents in “block” objects on underlying local filesystem
- conclusions
– tolerates failure
– interface is customized for the job, but familiar to developers
– reliably stores terabytes and petabytes of data

Written by Erik

June 11, 2009 at 11:10 am

Posted in notes

Tagged with ,

Leave a Reply