2021/8/14
Hadoop Distributed File System 分布式文件系统
优点
高可用, 快速自动恢复发生错误的节点, 保证数据拷贝设定的副本数量
高吞吐, 流式访问数据集,批处理而非交互, 延迟高
数据块存储, 默认128M/块,可修改
数据一致性, 一写多读,可追加不可修改
移动计算比移动数据划算, 将计算任务移动至最近的数据
通过namenode统一管理,维护目录树和文件的块id和datanode节点地址
支持元数据快照, 将失效集群回滚到之前的时间点
提供web接口, 统一从根目录出发
工作原理
客户端与namenode通信获取可写入的datanode地址
客户端按块传递给相应datanode
完成第一个节点写入后,datanode负责向其他节点拷贝副本
客户端发送读取文件路径给namenode
namenode返回文件元数据给客户端
客户端根据元数据找到相应datanode按块读取合并整个文件
secondary namenode定期完成namenode的备份,用于恢复元数据
datanode负责存储数据,定期发送心跳给namenode判断是否正常工作,错误则由namenode重新分配新的节点并进行数据拷贝
2. Yarn
Yet Another Resource Negotiator 另一个资源协调器
通用资源管理系统, 为上层应用提供统一的资源管理和调度
将JobTracker和TaskTracker分离, 由ResourceManager管理全局资源,NodeManager管理各个节点, 应用是ApplicationMaster表示,一个应用拥有多个容器在节点管理器上运行
3. MapReduce
用于大规模数据集并行运算的编程模型
map端, 根据InputFormat分割文件为多个splits,一个split作为一个输入, 每个map task存在一个环形内存缓冲区, 中间结果写入缓冲区至阈值后启动一个线程将溢出数据写入磁盘. 对key进行快排, 多个溢写文件最后会合并为一个文件,等待下一步处理
reduce端, 等待map端全部任务完成, 形成多个文件, 默认按key的哈希值分配reduce task, 对Key进行归并排序, reduce端处理后,将输出写入HDFS