- 浏览: 151037 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (113)
- Java工具类 (3)
- Hibernate (1)
- Struts>1&2 (0)
- Spring (0)
- Web前端 (1)
- 数据库 (2)
- 中间件 (3)
- 搜索引擎 (11)
- EJB (1)
- Log日志 (1)
- OS操作系统 (7)
- Java文档 (4)
- Security (1)
- Exception&Error (7)
- 日志&心情 (7)
- 开心一下 (3)
- 云计算 (41)
- Cache缓存 (4)
- MongoDB (1)
- OS操作系统 Linux (7)
- jquery (1)
- 机器学习 (2)
- Plugins (2)
- AJAX (1)
- Java工具 (1)
- WebService (1)
最新评论
-
a420144030:
你好,我想计算n篇文章的相似度,用mahout能处理吗,如何做 ...
mahout使用 -
di1984HIT:
OK,真的很牛啊
hadoop常见错误 -
xwl1991:
还真是这个问题 !
quartz报错java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.ord
hadoop中的balancer
- 博客分类:
- 云计算
对于HDFS集群,经常长时间的运行,尤其是大量的delete操作后,集群中各个Datanode上的空间使用率可能会存在比较大的差异。
所以需要一种机制使各个Datanode保持平衡,防止少数Datanode存储过多的文件。
少数使用率过高的Datanode会导致对其的数据访问效率变低,并且如果该Datanode挂掉,需要更多的时间进行恢复,对集群也会造成更大的影响。
Hadoop中已经提供了balancer的机制。
hadoop
balancer -threshold
<threshold>
通过上面的命令可以是Hadoop对各个Datanode进行评估并使他们保持平衡。
参数threshold表示的平衡的阀值,取值范围在0%到100%之间。
该参数表示每个Datanode中空间使用率与HDFS集群总的空间使用率的差距百分比。
假如当前集群总空间为20T,已经空间为10T,那么对于HDFS集群来说空间使用率为50%。
当前集群有2台Datanode,每台有10T总空间。
Datanode
1已用空间为4T,那么Datanode的空间使用率为40%
Datanode
2已用空间为6T,那么Datanode的空间使用率为60%
如果我设置balancer的阀值为10%,那么此时两台Datanode的使用率与HDFS的总使用率的比值均超过阀值,此时需要执行balancer。
如果我设置balancer的阀值为50%,那么此时两台Datanode的使用率与HDFS的总使用率的比值均未超过阀值,此时不需要执行balancer。
阀值设置的越小,那么HDFS各个Datanode的使用率越接近,整个集群也更加的平衡,但会需要消耗更多的时间和资源来达到该平衡状态。
如果阀值设置的过小,那么对于操作非常频繁的HDFS集群,有可能永远也不会达到该阀值所指定的平衡状态。
阀值设置的越大,那么HDFS各个Datanode的使用率差距越大,但是会较容易达到。
在balancer的过程,hadoop会递归的把BLOCK从使用率高的Datanode转移到那些使用率低的Datanode上。
在每次递归的过程中,单个Datanode转移或者接受的BLOCK不过超过10G或者它存储能力的阀值(根据该Datanode的总空间决定)。
并且每次递归过程也不能执行超过20分钟。
在每次递归过后,会更新Datanode的最新状态信息,决定下一次递归的执行。
通过参数dfs.balance.bandwidthPerSec可以现在balancer过程所占用的网络带宽,单位为每秒字节数,默认值为1M。
如果你的集群比较空闲或者带宽比较大,可以适当的增加该参数,来加速整个balancer过程。
如果你的集群比较繁忙或者带宽比较小,就要调小该参数,但这个balancer过程会变得缓慢。
对该参数的参数,只有在HDFS下次启动后才可以生效。
整个balancer过程还是比较复杂的,首先会计算集群总的使用率,然后分别计算各个活着的Datanode结点的使用率。
根据balancer阀值对各个Datanode进行分类,找到那些使用率过高的和使用率过低的结点。
遍历使用率过高的结点,找到适合迁移BLOCK的目标结点,原则就是最好是同一机架,如果当前机架没有适合的才会考虑其他机架。
把BLOCK从使用率高的结点拷贝到使用率低的结点,完成一次递归过程后重新计算使用率,判断使用需要进行下一次过程。
整个递归过程,最多会执行5次。
转自:http://www.itpub.net/thread-1502029-1-1.html
发表评论
-
用Sqoop把数据从HDFS导入到MYSQL
2012-10-27 23:30 2315转自:http://www.kaifajie.cn/mySQL ... -
大数据的储存:百度HDFS集群的数据压缩
2012-08-30 17:48 11512012年4月13日,由IT168(ITP ... -
用sqoop进行mysql和hdfs系统间的数据互导
2012-07-31 16:32 1878转自:http://abloz.com/2012/07/19/ ... -
从hive将数据导出到mysql
2012-07-31 16:31 1783转自:http://abloz.com/2012/07/20/ ... -
Hive SQL
2012-07-19 13:49 1397转自:http://www.tbdata.org/ ... -
Hive优化总结
2012-07-09 15:18 4264优化时,把hive sql当做ma ... -
hadoop/mapred 优化方法
2012-06-12 11:47 1368从三个方面着手优化 : 1. hadoop配置 2. ... -
hadoop集群dfs.data.dir目录权限问题导致节点无法启动
2012-06-11 18:32 6186安装使用Hive的时候发现文件无法从本地拷贝到hadoo ... -
Hadoop集群上使用Lzo压缩
2012-05-28 11:03 900转自:http://www.tech126.com/hadoo ... -
使用Hive读取Hbase中的数据
2012-05-23 13:12 2239转自:http://www.4ucode.com/Study/ ... -
在XP系统下配置eclipse集成hadoop开发
2012-05-05 11:09 1009一、目的:由于hadoop只能在Linux环境下运行,所以对于 ... -
使用Hive读取Hbase中的数据
2012-04-18 14:24 1053转自:http://www.4ucode.com/Study/ ... -
Web日志分析方法概述 让复杂的数据挖掘变得简单可行
2012-04-13 16:31 834志在计算机系统中是一个非常广泛的概念,任何程序都有可能输出日志 ... -
应用sqoop将MySQL数据库中的数据导入Hbase
2012-04-12 11:31 2033转自:http://www.bwxxkj.com/a/jish ... -
hadoop中的trash机制,恢复删除的文件
2012-03-31 13:46 2153Hadoop回收站trash,默认是关闭的。 1.修改con ... -
Hadoop 和DBMS 的互补性
2012-03-29 12:22 643随着Microsoft 也加入Hadoop 阵营,Hadoop ... -
Hadoop 中的两表join
2012-03-29 12:20 823转自:http://www.gemini52013 ... -
各版本编译hadoop eclipse plugin
2012-03-29 12:19 1349转自:http://www.gemini52013 ... -
hadoop常见错误
2012-03-24 13:04 1619错误1:bin/hadoop dfs 不能正常启动,持续提 ... -
hbase运维
2012-03-23 17:33 1281转自:http://blog.bluedavy.c ...
相关推荐
在windows环境下开发hadoop时,需要配置HADOOP_HOME环境变量,变量值D:\hadoop-common-2.7.3-bin-master,并在Path追加%HADOOP_HOME%\bin,有可能出现如下错误: org.apache.hadoop.io.nativeio.NativeIO$Windows....
Hadoop 2.7.1 中文文档 Hadoop 2.7.1 中文文档 Hadoop 2.7.1 中文文档
hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文...
hadoop 中文手册 Hadoop文档 下面的文档是一些概念介绍和操作教程,可帮助你开始使用Hadoop。如果遇到了问题,你可以向邮件列表求助或者浏览一下存档邮件。 Hadoop快速入门 Hadoop集群搭建 Hadoop分布式文件系统...
NULL 博文链接:https://201201314056.iteye.com/blog/2193117
Hadoop 中的调度
Hadoop中的Flume安装指南,不会的童鞋可以下载哦,有助于学习
在 Hadoop 中,MapReduce 底层的分布式文件系统是独文模块,用户可按照约定 的一套接口实现自己的分布式文件系统,然后经过简单的配置后,存储在该文件 系统上的数据便可以被 MapReduce 处理。 官网下载速度非常缓慢...
Hadoop2.7.1中文文档
Hadoop中单词统计案例运行的代码
hadoop 中文文档 hadoop命令 hadoop入门
windows系统开发hadoop包需要的winutils.exe和hadoop.dll文件
Hadoop权威指南-Hadoop中文文档-第三版本.
实战hadoop,源码,刘鹏,开启通向云计算的捷径
Hadoop 是一种分析和处理大数据的软件平台,是一个用 Java 语言实现的 Apache 的开源软件框架,在大量计算机组成的集群中实现了对海量数据的分布式计算。 Hadoop 采用 MapReduce 分布式计算框架,根据 GFS 原理开发...
《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf...
在Hadoop1.x 时代,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大。 在Hadoop2.x时代,增加了Yarn。Yarn只负责资源的调度,MapReduce 只负责运算。 Hadoop3.x在组成上没有变化Hadoop ...
HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算 ...
windows平台上,使用Eclipse hadoop插件,开发基于hdfs文件的中文分词统计和排序功能,以唐诗三百首为例,找出其中使用频率最高的词语。
Hadoop 云的核心技术 中文帮助手册,快速入门