HDFS业务类型与相关架构优化措施

南墨1年前技术文章311

低延迟业务

计算密集型业务,低延迟业务,这一类业务通常是对大量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格式存储。

  • 使用分级存储特性,将这些数据存储到低性能节点上。


相关文章

Python 装饰器

1、闭包自由变量:未在本地作用域中定义的变量。例如定义在内层函数外的外层函数的作用域中的变量。闭包:就是一个概念,出现在嵌套函数中,指的是内层函数引用到了外层函数的自由变量,就形成了闭包。很多语言都有...

Elasticsearch写入优化

1.1 基本优化手段Elasticsearch默认的设置和参数配置下,是综合考虑了数据的可靠性、搜索实时性、写入速度等因素。但在安平实际场景中,业务对数据的可靠性和搜索实时性要求并不高,反而对写入速度...

MySQL 8.0 Clone 备份恢复演练

前言上一篇文章中,我们介绍了使用 Clone 插件进行备份,相关的恢复流程将在本篇文章介绍。MySQL 8.0 Clone Plugin 详解恢复增量数据的方法,使用的是伪装为 relay log 通...

某客户k3s网络故障案例

某客户k3s网络故障案例

1、出现问题     在我们吃饭的过程中,小丫告诉我客户的系统出现问题了,我们赶快吃完饭回去帮忙排查。当我们回去的时候,被告知问题已经被修复了,但是问题根源没有找到。故障原因给出的是:  服务重启后对...

MySQL优化器特性(七)成本估算常数

成本估算常数表示执行一些MySQL基础操作时的成本,如读取一个页面,创建一个临时表,比较一条记录,解析一行记录等操作。mysql.engine_cost和mysql.server_cost表分别记录存...

Redis 哨兵机制

Redis 哨兵机制

前言Redis 主从复制模式下,一旦主节点出现了故障不可达,需要人工干预进行故障转移,无论对于 Redis 的应用方还是运维方都带来了很大的不便。对于应用方来说无法及时感知到主节点的变化,必然会造成一...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。