要点
- View File System (ViewFs)
- 快速的 HDFS 版本升级
- NameNode 垃圾回收 调优
- 限制系统中小文件数量
- 提供了 HDFS 加载管理服务
- 以及增加了一个 NameNode 的只读副本
主要查询方式:hive or presto 各自50%的请求
用户场景或者组织架构层面去做集群的拆分
独立的日志收集集群
YARN 的日志收集 单独搭建了一套 HDFS 集群 降低小文件数量及降低写请求,依赖 https://issues.apache.org/jira/browse/YARN-3269
选用了多个 HDFS 集群的方案,而没有采纳 Hadoop 官方提供的 HDFS Federation
增加了namenode的运维陈本,物理层面的隔离降低问题发生的概率
HDFS的升级
基于 Puppet 以及 Jenkins 构建了自己的部署系统,在线升级的方式
NameNode 垃圾回收 调优 (160G)
年轻代的堆大小从 1.5GB 调整到 16GB 以及将 ParGCCardsPerStrideChunk 大小指定为 32768
XX:+UnlockDiagnosticVMOptions
XX:ParGCCardsPerStrideChunk=32768 -XX:+UseParNewGC
XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled
XX:CMSInitiatingOccupancyFraction=40
XX:+UseCMSInitiatingOccupancyOnly
XX:+CMSParallelRemarkEnabled -XX:+UseCondCardMark
XX:+DisableExplicitGC
控制小文件的数量
会导致客户端发起的RPC请求过多
小文件合并工具,保持文件大小在1G
严格的空间配额控制
调整 Hive auto-merge 配置和 reducers 的数量
HDFS 负载管理服务
NameNode 会输出一份审计日志,然后通过 Flink 和 Kafka 进行实时处理。审计日志分析结果可以通过系统面板进行查看,并且自动禁用那些导致 HDFS 性能下降的账户,或者直接干掉有问题的工作流
观察者(Observer) NameNode
多一个namenode https://issues.apache.org/jira/browse/HDFS-12975
数据块上报同时也上报到这个地方
目前的发展
基于路由的 HDFS 联邦集群
ViewFs是通过客户端的路径来区分集群的,不是很灵活,在2.9的版本中 HDFS-10467, HDFS-12615 支持了服务端的请求路由
各集群之上提供一个负载均衡工具,联邦集群(federation)能支持在子集群之前的数据无缝迁移,从而降低某个子集群上的负载,还能够实现分层存储
分层存储
区分冷热数据
将冷数据迁移到高密度存储介质上,同时启用EC,降低存储压力
0 条评论。