This document provides an overview of Hadoop and its core components HDFS and MapReduce. It describes how HDFS uses a master/slave architecture with a single NameNode master and multiple DataNode slaves to store and retrieve data in a fault-tolerant manner. The NameNode manages the filesystem namespace and monitors data replication, while DataNodes store data blocks and perform read/write operations. It also discusses high availability techniques for the NameNode and core functions like block placement, garbage collection and stale replica detection in HDFS.