hadoop生态圈-- 个人笔记学习05 HDFS优化

DFSClient和DN在一个节点 —— local reads,远程阅读 Remote reads。 处理方式是一样的

  1. DN读数据
  2. 通过RPC(TCP协议)把数据给DFSClient。DN在中间会做中转,处理简单但是性能收影响 (Local read的情况下,会希望绕过DN直接读取Data,这就是 短路

短路本地读取

  1. DFSClient自行打开文件读取数据,需要配置白名单定义可读取数据的User —— 安全漏洞,不建议使用
  2. 两个进程socket方式通讯,普通数据甚至是文件描述符传递给B,B读取文件内容({即使B没有权限)
    3. A为DN,B为DFSClient,读取文件 安全性稍微好点

负载平衡器 Balancer

让block放信息,在整个DN节点之间平衡数据 (无法在单个DN的各个卷之间平衡

命令

hdfs balancer

设置平衡数据传输带宽

hdfs dfsadmin -setBlancerBandwidth newbandwidth

修改阈值

hdfs balancer -threshold 5

表示阈值为5%,默认10%,每个DN磁盘使用率与cluster总体使用了相差不超过5%。 EXM: 所有DN总体使用率是集群磁盘容量的40%,program要确保每个DN磁盘使用率在这个DN磁盘存储容量的35%到45%之间

磁盘均衡器 HDFS disk balancer

对比个人PC, server可以通过挂在对磁盘扩大单机存储能力

  • DN负责数据block存储,在机器上磁盘之间分配数据块。写入新的block的时候,DN根据选择策略选择block磁盘

** 循环策略**:新的block均匀分布在可用磁盘上(默认
可用空间策略: 数据写入有更多空间磁盘(按百分比

如果基于可用空间的策略:新写入会放入空磁盘 —— 其他磁盘idle, 新磁盘有瓶颈 —— 需要intra DataNode Balancing机制解除 DataNode偏斜 —— 磁盘更换, 随机写入 删除发生的

功能

报告、平衡

比较数据在节点不同卷的分布情况:密度允许在节点之间比较 —— 根据used / capcity保存容量,最好保持70%

指令
plan

hdfs diskbalancer -plan <datanode>
-out输出位置
-bandwidth最大带宽 默认带宽10 MB/s
-thresholPercentage定义磁盘开始参与数据重新分配或平衡操作的值。默认的thresholdPercentage值为10%,这意味着仅当磁盘包含的数据比理想存储值多10%或更少时,磁盘才用于平衡操作
-maxerror它允许用户在中止移动步骤之前为两个磁盘之间的移动操作指定要忽略的错误数。
-v详细模式,指定此选项将强制plan命令在stdout上显示计划的摘要。
-fs此选项指定要使用的NameNode。如果未指定,则Disk Balancer将使用配置中的默认NameNode。

设定好计划后,execute

hdfs diskbalancer -execute <JSON file path>

对DN执行计划

查询

hdfs diskbalancer -query <datanode>

cancel取消计划

EC 纠删码技术

添加链接描述

优化方案

  • 动态扩容 —— 原有cluster加新的DN节点
  • 缩容,cluster停止某些机器的HDFS服务
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值