`

hadoop hdfs balance

阅读更多

转载:http://hi.baidu.com/hovlj_1130/blog/item/20200da530603af99052eed9.html

hadoop hdfs balance

最近集群的某些dump节点容量报警,hadoop dfsadmin -report可以发现,报警的节点,均为日志上传至hdfs的节点,在hadoop fs -put时,大部分hdfs文件都直接保存在了put的节点.
因此需要使用hadoop Balancer Administrator Guide.

下面是E文描述:

The balancer is a tool that  balances disk space usage on an HDFS cluster when some
datanodes become full or when new empty nodes join the cluster. The tool is deployed as
an application program that can be run by the cluster administrator on a live HDFS
cluster while application adding and deleting files.

SYNOPSIS

To start:
bin/start-balancer.sh [-threshold <threshold>]
Example: bin/ start-balancer.sh
start the balancer with a default threshold of 10%
bin/ start-balancer.sh -threshold 5
start the balancer with a threshold of 5%

To stop:
bin/ stop-balancer.sh

DESCRIPTION

The threshold parameter is a fraction in the range of (0%, 100%) with a default value of
10%. The threshold sets a target for whether the cluster is balanced. A cluster is balanced
if for each datanode, the utilization of the node (ratio of used space at the node to total
capacity of the node) differs from the utilization of the cluster (ratio of used space in the
cluster to total capacity of the cluster) by no more than the threshold value. The smaller
the threshold, the more balanced a cluster will become. It takes more time to run the
balancer for small threshold values. Also for a very small threshold the cluster may not be
able to reach the balanced state when applications write and delete files concurrently.

The  tool moves  blocks from  highly utilized datanodes  to  poorly utilized datanodes
iteratively. In each iteration a datanode moves or receives no more than the lesser of 10G
bytes or the threshold fraction of its capacity. Each iteration runs no more than 20
minutes. At the end of each iteration, the balancer obtains updated datanodes information
from the namenode.

A system property that limits the balancer’s use of bandwidth is defined in the default
configuration file:

<property>
<name>dfs.balance.bandwidthPerSec</name>
<value>1048576</value>
<description>  Specifies the maximum bandwidth that each datanode can utilize for the
balancing purpose in term of the number of bytes per second. </description>
</property>

This property determines the maximum speed at which a block will be moved from one
datanode to another. The default value is 1MB/s. The higher the bandwidth, the faster a
cluster  can reach the  balanced  state,  but  with  greater competition   with application
processes. If an administrator changes the value of this property in the configuration file,
the change is observed when HDFS is next restarted.

在使用start-balancer.sh时,如果在hdfs-site.xml里面没有配置dfs.balance.bandwidthPerSec,那么集群hdfs内部默认使用1M/S的速度移动数据(so slowly...),我们可以通过在hdfs-site.xml里面配置dfs.balance.bandwidthPerSec来加快balance的速度。

最开始我们配置的是20m/S
<property>
<name>dfs.balance.bandwidthPerSec</name>
<value>20971520</value>
<description>  Specifies the maximum bandwidth that each datanode can utilize for the balancing purpose in term of the number of bytes per second. </description>
</property>

然后结果是导致job运行变得不稳定,出现一些意外的长map单元,某些reduce时间处理变长(整个集群负载满满的情况下,外加20m/s的balance),在前天的中国hadoop年会上听淘宝调整的为10m/s,需要调整后实验,看看情况如何。

另外再修改dfs.balance.bandwidthPerSec参数后,需要在namenode上运行stop-dfs.sh start-dfs.sh重启hdfs生效。
分享到:
评论

相关推荐

    【小工具】hdfs balance脚本(均衡操作)

    【HDFS Balance 脚本】这个脚本展示了如何使用Shell命令进行HDFS的数据均衡操作。脚本中包含两部分关键指令: 1. `sudo -u hdfs hadoop dfsadmin -setBalancerBandwidth 904857600`:这行命令设置了数据均衡操作的...

    RebalanceDesign6

    ### Hadoop HDFS 集群 Balance 原理详解 #### 一、引言与目标 在Hadoop分布式文件系统(HDFS)中,数据块的均匀分布对于集群性能至关重要。随着节点的加入或退出,集群可能会出现数据分布不均的情况,导致计算任务...

    hadoop集群维护手册.pdf

    在使用 start-balancer.sh 命令时,如果在 hdfs-site.xml 文件中没有配置 dfs.balance.bandwidthPerSec 参数,那么集群将使用默认的 1M/S 速度来平衡数据。 四、Hadoop 版本升级 Hadoop 版本升级需要注意以下几点...

    hadoop和hive调优个人总结

    在使用Hadoop和Hive过程中,可能会遇到一些问题,例如Mapreduce任务结束了,但是Reduce任务停止了,或者HDFS抛出错误等情况。 1. Mapreduce任务结束了,但是Reduce任务停止了 这种情况可能是由于Mapreduce任务的...

    hadoop—集群维护手册分享.pdf

    在使用 start-balancer.sh 时,如果在 hdfs-site.xml 里面没有配置 dfs.balance.bandwidthPerSec,那么集群 hdfs 内部默认使用 1M/S 的速度移动数据,可以通过配置 dfs.balance.bandwidthPerSec 来加快 balance 的...

    java大数据作业_2HDFS

    在Java大数据领域,Hadoop分布式文件系统(HDFS)是核心组件之一,它为大规模数据存储提供了可扩展、可靠的解决方案。下面将详细解答标题和描述中提到的知识点: 1. **检测损坏的文件及文件系统日常检查**: HDFS...

    Hadoop技术介绍与发展.pptx

    HDFS(Hadoop Distributed File System)是 Hadoop 的文件系统,提供了高可靠性和高性能的存储解决方案。HDFS 的主要特点包括: * Erasure Coding:纠错码技术,可以最多几个节点故障,提高数据可靠性。 * 多个 ...

    hadoop命令指南

    hadoop distcp hdfs://src.example.com/data hdfs://dst.example.com/data ``` **2.3 fs** `fs`命令提供了与HDFS交互的各种操作,包括文件和目录的操作。 **命令格式**: ``` hadoop fs [-help] &lt;command&gt; ... ``...

    hadoop—集群维护手册.doc

    此外,可以配置`dfs.balance.bandwidthPerSec`来控制数据移动的速度,以避免对其他作业造成过多影响。通常建议在Namenode上执行`stop-dfs.sh`和`start-dfs.sh`来使配置生效,并使用`stop-balancer.sh`停止平衡任务。...

    数据工程师培训题库 优质文档.docx

    选项B正确,HDFS可以通过balance操作平衡磁盘负载。选项C错误,DataNode之间通常建议数据盘一致以保持平衡。选项D正确,Active和Standby NameNode部署在不同机架上是为了提高高可用性。 2. **HDFS高可靠协调服务**:...

    数据工程师培训题库(四).doc

    - HDFS可以通过balance操作平衡磁盘间的负载(选项B正确),但通常是在NameNode的指导下进行。 - 在规划HDFS集群时,Active和Standby NameNode应该分布在不同的机架上以提高容错性(选项D正确)。 - HDFS的副本数...

    2017最新大数据架构师精英课程

    77_hadoop的hdfs常用的命令 78_hadoop的存储过程 79_hadoop的大数据节点% K S, J! U3 W& o2 d) Q 80_hdfs-maven-hdfs API访问8 s8 J# W* l- i% x, ]: L! L 81_hdfs-maven-idea的集成处理 82_hdfs-block大小-副本数...

    CDH集群常用组件关键参数及修改建议.docx

    1.1.5 **平衡带宽**:`dfs.balance.bandwidthPerSec`限制了在HDFS平衡过程中单个DataNode的最大带宽,避免对集群其他服务造成过大影响。 1.1.6 **系统预留磁盘空间**:`dfs.datanode.du.reserved`参数设定为磁盘总...

    HBase应用最佳实践详解.pdf

    HBase安装需要先安装Hadoop,因为HBase依赖于Hadoop的分布式文件系统(HDFS)。在安装HBase之前,需要确保Hadoop已经安装并且正在运行。 HBase安装有三种模式:本地模式、伪分布模式和集群模式。其中,伪分布模式是...

    基于Flume的美团日志收集系统.pdf

    美团的日志收集系统基于 Flume 设计和搭建而成,负责美团的所有业务日志的收集,并分别给 Hadoop 平台提供离线数据和 Storm 平台提供实时数据流。系统架构分为三层:Agent 层、Collector 层和 Store 层。 Agent 层...

    CDH大数据环境优化.docx

    数据持久化路径应设置为独立的目录,如`/hadoop/zookeeper`和`/hadoop/zookeeper_log`,以保证数据安全和日志记录。session超时时间(`maxSessionTimeout`)可设置为180000毫秒,以适应长时间运行的任务。 HDFS的优化...

    hbase维护操作手册.docx

    HBase,全称为Apache HBase,是一种构建在Apache Hadoop文件系统(HDFS)之上的开源、分布式、列式存储的NoSQL数据库。它为大规模数据集提供了随机、实时的读写访问能力。HBase的设计灵感来源于Google的Bigtable,...

    HBase在淘宝主搜索的Dump中的性能调优

    针对此问题,Apache JIRA上的HDFS-3359问题提供了深入讨论和解决方案,通过优化HDFS与Hadoop CDH3U4的兼容性,可以显著改善这一状况。 ##### RowKey设计与Batch处理优化 RowKey的设计对于数据分布和查询性能至关...

    六大主流大数据采集平台架构分析.docx

    - **架构**:Chukwa包含Adaptor、Collector、Hadoop档案系统(HDFS)和Chukwa Agent,支持复杂的调度和恢复策略。 - **特性**:Chukwa强调数据的持久化和低延迟,适用于监控和故障排查。 5. **Scribe** - **简介**...

Global site tag (gtag.js) - Google Analytics