Google的“三驾马车”奠定了大数据技术基础,其开源实现对应HDFS、Hadoop MapReduce和HBase,分别解决海量数据存储、计算与在线访问问题。
HDFS:分布式文件存储
HDFS由NameNode和DataNode构成。NameNode管理文件元数据(路径、数据块位置等),DataNode负责存储实际数据块。文件被切分为若干Block,每个Block默认复制三份,存储在不同节点甚至机架上,以保证磁盘、服务器或交换机故障时的数据高可用。客户端可并行访问不同数据块,实现高吞吐读写。
Hadoop MapReduce:分布式计算框架
MapReduce兼具编程模型与计算框架特性。开发者实现map和reduce函数:map处理输入数据分片,输出键值对;框架自动将相同Key的中间结果归并(shuffle),交由reduce求和等操作,完成统计。运行过程中,JobTracker全局调度任务,TaskTracker启动并监控各节点上的map/reduce进程,通常与DataNode同机部署,实现数据本地计算。
HBase:面向实时访问的分布式数据库
HBase基于HDFS构建,以HRegion为单位管理数据,每个HRegion负责一段Key区间。应用程序通过ZooKeeper获取主HMaster地址,再查询目标Key所在的HRegionServer,然后直接与该HRegion通信读写。当数据量超阈值,HRegion自动分裂,并在HMaster协调下迁移至负载较低的节点,实现线性扩展。HMaster可多实例部署,通过ZooKeeper选主以保证高可用。HRegion数据最终以HFile格式存储于HDFS,保证可靠性与分布式访问能力。
这三者各司其职又紧密配合:HDFS提供底层可靠存储,MapReduce进行批量离线计算,HBase支撑在线实时读写,共同构成大数据生态的核心。