关于Hadoop HDFS数据均衡。
来源:互联网 发布:sql与数据库系统的关系 编辑:程序博客网 时间:2024/05/16 15:23
在hadoop集群中,当有新节点增加或者删除原有节点时,如果不启用数据均衡服务(负载均衡),则会造成数据在集群中分布不均匀。由此而带来的问题是无法有效的利用MR本地化计算的优势,通俗来说就是A节点上运行的map任务所需数据不在A节点上,在B节点上。这就避免不了跨节点进行数据读取,造成了网络带宽的不必要消耗。为了解决这样的问题,引入数据均衡机制,也就是使用该服务达到集群中数据的均匀分布的目的。但是在达到该目的的过程中,需要遵循如下原则而不至于给原有集群带来不必要的麻烦:
1.原有数据块不会减少
2.可随时终止该服务
3.数据移动不能占用过多的资源
4.不能够影响namenode的工作
均衡负载原理图:
大致过程为:
1.数据均衡服务要求namenode根据集群中datanode的数据分布做汇总。
2.根据该汇总情况形成数据块迁移路线图。
3.开始数据块迁移任务
4.迁移完成,通知namenode删除原有数据块。
实际应用中可能需要每天定时做一次数据均衡,在crontab中定时执行start-balancer.sh命令,当然还可以随时终止stop-balancer.sh.
start-balancer.sh中可使用参数 -t 如start-balancer.sh -t 5%,默认10%。该参数的意思是集群中各节点的hdfs磁盘使用率和集群中总的hdfs磁盘使用率的差值都应该小于该参数值,就达到了数据均衡,越小表明集群中的数据越均衡。在数据库迁移的过程中,还可以设置其移动的速度在hdfs-site.xml中设置(需重启hdfs服务)
<property><name>dfs.balance.bandwidthPerSec</name><value>1048576</value> =>1M/s</property></span>
该值越大意味着数据均衡完成的速度越快,但要同时考虑到MR的任务运行不会受到影响,在实际应用中由于对文件不断的进行读写操作,可能无法达到设定的阀值。另一方尽量保持集群中各个节点的磁盘容量一致。
参考文章:http://www.ibm.com/developerworks/cn/data/library/bd-1506-hdfsdatabalance/index.html
http://www.aboutyun.com/thread-7354-1-1.html
- 关于Hadoop HDFS数据均衡。
- Hadoop HDFS负载均衡
- Hadoop HDFS负载均衡
- Hadoop:HDFS负载均衡
- Hadoop HDFS负载均衡
- Hadoop HDFS数据完整性
- Hadoop:HDFS数据组织
- 【Hadoop】数据存储----HDFS
- Hadoop:HDFS的数据复制
- 大数据之hadoop【hdfs】
- hadoop数据上传hdfs出错
- 关于HDFS数据存储路径
- 关于hadoop 在浏览器中看hdfs
- 关于hadoop中datanode节点不同的dfs.data.dir之间数据均衡问题
- hadoop分析之一HDFS元数据解析
- Hadoop分析之一HDFS元数据解析
- hadoop分析之一HDFS元数据解析
- Hadoop之客户端读取HDFS中的数据
- 时间转换
- HTML 样式
- php curl函数请求链接获得结果
- python调用matlab的m自定义函数
- iOS开发性能优化———UITableView的优化
- 关于Hadoop HDFS数据均衡。
- iOS开发中app之间的跳转
- LeetCode 43 - Multiply Strings
- Spring 4.2.4.RELEASE MVC 学习笔记 - 6.3 - 中文乱码(咋个办呢 zgbn)
- iOS字体相关知识
- Android数据库Realm学习(一)基本使用
- 视频
- 网址收藏
- MYSQL 查询数据库中所有表及表中是否存在指定列方法