HDFS负载均衡

Hadoop的HDFS集群非常容易出现机器与机器之间磁盘利用率不平衡的情况,例如:当集群内新增、删除节点,或者某个节点机器内硬盘存储达到饱和值。当数据不平衡时,Map任务可能会分配到没有存储数据的机器,这将导致网络带宽的消耗,也无法很好的进行本地计算。
当HDFS负载不均衡时,需要对HDFS进行数据的负载均衡调整,即对各节点机器上数据的存储分布进行调整。从而,让数据均匀的分布在各个DataNode上,均衡IO性能,防止热点的发生。进行数据的负载均衡调整,必须要满足如下原则:

  • 数据平衡不能导致数据块减少,数据块备份丢失
  • 管理员可以中止数据平衡进程
  • 每次移动的数据量以及占用的网络资源,必须是可控的
  • 数据均衡过程,不能影响namenode的正常工作

Hadoop HDFS数据负载均衡原理

数据均衡过程的核心是一个数据均衡算法,该数据均衡算法将不断迭代数据均衡逻辑,直至集群内数据均衡为止。该数据均衡算法每次迭代的逻辑如下:

步骤分析如下:

  1. 数据均衡服务(Rebalancing Server)首先要求 NameNode 生成 DataNode 数据分布分析报告,获取每个DataNode磁盘使用情况
  2. Rebalancing Server汇总需要移动的数据分布情况,计算具体数据块迁移路线图。数据块迁移路线图,确保网络内最短路径
  3. 开始数据块迁移任务,Proxy Source Data Node复制一块需要移动数据块
  4. 将复制的数据块复制到目标DataNode上
  5. 删除原始数据块
  6. 目标DataNode向Proxy Source Data Node确认该数据块迁移完成
  7. Proxy Source Data Node向Rebalancing Server确认本次数据块迁移完成。然后继续执行这个过程,直至集群达到数据均衡标准

HDFS数据负载均衡原理相关推荐

  1. 负载均衡原理与实践详解 第五篇 负载均衡时数据包流程详解

    负载均衡原理与实践详解 第五篇 负载均衡时数据包流程详解 系列文章: 负载均衡详解第一篇:负载均衡的需求 负载均衡详解第二篇:服务器负载均衡的基本概念-网络基础 负载均衡详解第三篇:服务器负载均衡的基 ...

  2. php负载均衡原理_Java开发大型互联网架构深入负载均衡原理之方案分析

    引言 负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性. 负载均衡,英文名称为Load Balan ...

  3. Docker Swarm服务发现和负载均衡原理

    Docker Swarm服务发现和负载均衡原理 Docker使用的是Linux内核iptables和IPVS的功能来实现服务发现和负载均衡.Iptables是Linux内核中可用的包过滤技术,可根据数 ...

  4. 搞懂分布式技术8:负载均衡原理剖析

    负载均衡的重要性无需多说,今天带来:负载均衡原理的解析. 开头先理解一下所谓的"均衡". 不能狭义地理解为分配给所有实际服务器一样多的工作量,因为多台服务器的承载能力各不相同,这可 ...

  5. 使用LVS实现负载均衡原理及安装配置详解

    使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均 ...

  6. Ribbon负载均衡原理,Feign是如何整合Ribbon的?

    文章目录 1. 什么是负载均衡? 2. Ribbon的使用 ①:自定义负载均衡策略 ②:Ribbon的饥饿加载 3. Ribbon的负载均衡原理 ①:收集带有@LoadBalanced注解的RestT ...

  7. 负载均衡原理与实践详解 第三篇 服务器负载均衡的基本概念-网络基础

    负载均衡原理与实践详解 第三篇 服务器负载均衡的基本概念-网络基础 系列文章: 负载均衡详解第一篇:负载均衡的需求 负载均衡详解第二篇:服务器负载均衡的基本概念-网络基础 负载均衡详解第三篇:服务器负 ...

  8. 全网最详细的负载均衡原理图解

    负载均衡由来 在业务初期,我们一般会先使用单台服务器对外提供服务.随着业务流量越来越大,单台服务器无论如何优化,无论采用多好的硬件,总会有性能天花板,当单服务器的性能无法满足业务需求时,就需要把多台服 ...

  9. Nginx负载均衡原理与实战

    Nginx 负载均衡原理与实践 本篇摘自<亿级流量网站架构核心技术>第二章 Nginx 负载均衡与反向代理 部分内容. 当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩 ...

最新文章

  1. LeetCode简单题之删除某些元素后的数组均值
  2. sketch如何做设计稿交互_当屏幕可以折叠,交互设计怎么做
  3. VS2013(Visual Studio 2013)官方中文旗舰版安装激活方法
  4. python递归函数特点_python中对递归函数的理解
  5. 软件工程2017第二次作业
  6. Django新建项目
  7. vue变量传值_VUE 学习——父组件传值给子组件
  8. linux中部分命令及快捷键
  9. 一些编程习惯和问题记录--不定期更新
  10. 电子相框病毒,圣诞死灰复燃
  11. protel 99se快捷键 总结
  12. CF55D: Beautiful Number
  13. CH579 以太网转串口 串口服务器代码!需要自己编程提升能力的非常值得参考的代码
  14. 美国电话卡原生卡和虚商卡区别
  15. python爬虫免登录_爬虫使用cookie免登陆
  16. linux取消上一个命令,Linux简介及最常用命令(简单易学,但能解决95%以上的问题)...
  17. 嵌入式课程设计linux,嵌入式课程设计报告
  18. 树莓派HDMI无输出
  19. cisco packet tracer配置网络路由
  20. 怎么用键盘快捷键将光标定位到浏览器地址栏

热门文章

  1. html 页面打印 分页符,html - 浮动的HTML / CSS打印分页符不起作用(例如:引导程序) - 堆栈内存溢出...
  2. 再次思考矩估计与似然估计的原理
  3. 黄锦诚:前端工程师新手必读
  4. 输入,输出参数 日志监控!
  5. 【读书笔记】《游戏测试精通》思维导图
  6. 12306ByPass抢票短信提醒
  7. Android 音视频深入 十六 FFmpeg 推流手机摄像头,实现直播 (附源码下载)
  8. 携程Java开发工程师春招一面+二面面经
  9. http研究之旅:expires
  10. 使用重心坐标插值三角形顶点的任何属性