HDFS | 青训营笔记

114 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第1天 HDFS 的架构 HDFS 的主要服务端主要组件是 NameNode 和 DataNode,两者通过定时心跳通信。 NameNode(NN)负责维护目录树、文件和块的关系、各个块的副本放置位置等元信息。 DataNode(DN)负责维护数据副本,执行 NameNode 下发的副本迁移、副本删除等操作。 HDFS Client 属于是胖客户端(fat/rich client),客户端中实现了数据读写的容错等较为复杂的逻辑。 HDFS 的读写路径 数据读取:Client 从 NN 上获取到文件信息和块的位置(getFileInfo+getBlockLocation),从对应 DN 上读取数据。当一个 DN 读取失败时,会去尝试块的其他 DN。 数据写入:Client 要求 NN 创建文件(create),并依次获得不同的 DN 来写入数据块(addBlock)。Client 通过链式写入来同时写入数据到多个 DN。在整个写入完成后,会让 NN 关闭文件(complete)。 元数据高可用 高可用:系统在困境(adversity,比如硬件故障、软件故障、人为错误)中仍可正常工作(正确完成功能,并能达到期望的性能水准) 容灾:在相隔较远的异地,建立两套或多套功能相同的系统,互相之间可以进行健康状态监视和功能切换,当一处系统因意外(如火灾、地震等)停止工作时,整个应用系统可以切换到另一处,使得该系统功能可以继续正常工作。 故障度量的指标 MTTR(Mean Time To Repair):平均修复时间,系统能多快恢复。 MTTF(Mean Time To Failure):平均失效时间,运行到故障间的时间,一般用于不可修复的系统(制造业)。 MTBF(Mean Time Between Failures):平均无故障时间,两次故障间的间隔,一般用于可修复的系统(软件)。 全年不可用时间:系统运行一整年的不可用时间的目标。 备份方式 冷备份:备份服务的数据,可以和数据归档相结合。在主服务故障时,利用备份的数据重启。 热备份:主服务和备服务同时运行,在主服务故障时,随时可以切换到备服务。 切换方式: 人工切换:在故障发生时,运维人员接收报警后,手动执行服务切主操作。一般较慢,难以满足全年不可用时间的目标。