HDFS业务类型与相关架构优化措施
低延迟业务
计算密集型业务,低延迟业务,这一类业务通常是对大量NameNode文件目录访问为主的(权限判断,文件存在性,文件信息查询等对NameNode元数据操作为主的)。因此需要针对NameNode的处理能力进行调整。主要可以采取以下措施:
通过新增NameNode引入Federation的方案实现,将高优先级的业务部署在单独的NameNode,以解决资源使用的问题。
调整日志级别,关闭HDFS的审计日志级别和运行日志级别修改为WARN级别(一般开源集群审计日志可能未配置)
硬件能力提升:
提升NameNode节点的CPU主频。
更换DataNode的磁盘为高性能磁盘或者SSD。
减少网络带宽延迟。
高吞吐业务
高吞吐量业务,这一类业务主要是大文件操作,对DataNode的IO需求更高。主要可以采取以下措施:
扩容DataNode节点数量。提高集群的吞吐量。
扩容DataNode节点的磁盘数量,以提高单DataNode的I/O能力。
更换DataNode挂载的磁盘类型,使用更高性能的磁盘或者SSD。
实时业务
实时数据需要HDFS能尽快响应业务请求,对节点性能有较高的要求。为保证业务实时性,一般采用配置高性能的节点,并将业务隔离的方案。主要可以采取以下措施:
采用分级存储,将存储节点按性能分组,由高性能节点为其提供业务。
数据节点采用SSD存储介质。
采用Federation特性,隔离NameNode以及数据节点。
频繁访问数据
频繁访问的数据一般指写入完成后,需要重复读取,偶尔有修改变化的数据。
对于这一类数据,主要可以采取以下措施:
使用Central Cache特性,将对应的文件缓存到内存。(在节点宕机时存在数据丢失风险)
使用分级存储特性,将对应文件存储到SSD介质。
临时数据
临时数据一般是指在写入完成后,立即进行业务处理,处理完成后删除的数据。
对于这一类数据,主要可以采取以下措施:
使用分级存储,将数据分布存储到RAM盘。
将副本数设置为2个,减少系统存储、网络压力。
归档数据
归档数据是指数据存储到集群后,一段时间不再访问的数据:
对于这一类数据,主要可以采取以下措施:
可以设置冷数据归档目录为I/O性能较慢的存储介质上,也可以减少副本数等。
存储数据时,采用HAR格式存储。
使用分级存储特性,将这些数据存储到低性能节点上。