Linux系统中Hadoop数据通过分布式文件系统(HDFS)存储,核心机制如下:
-
存储架构
- NameNode:管理元数据(文件名、目录结构、数据块位置等),存储在内存中。
- DataNode:实际存储数据块,执行创建、删除、复制等操作,数据保存在本地磁盘。
- Secondary NameNode:定期合并NameNode的元数据快照,辅助恢复。
-
数据存储流程
- 写入:客户端将文件切分为固定大小的数据块(默认128MB,可配置),NameNode分配存储位置,DataNode接收并存储数据块,同时创建多个副本(默认3个,分布在不同节点)。
- 读取:客户端通过NameNode获取数据块位置,直接从DataNode并行读取数据块并重组为完整文件。
-
关键特性
- 高容错:通过副本机制(默认3副本)和机架感知策略(优先本地机架存储,跨机架冗余),保障数据可靠性。
- 高吞吐:适合大规模数据批量处理,支持并行读写。
- 存储格式:支持多种格式,如文本(TextFile)、列式(Parquet、ORCFile)等,可按需选择。
操作前提:需先安装Java环境、下载Hadoop并配置核心文件(如hdfs-site.xml、core-site.xml),格式化HDFS后启动集群。