`
david.org
  • 浏览: 157151 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hadoop FSDataset中,dfs.datanode.du.reserved 参数选项之BUG

阅读更多
在DN的hadoop-site.xml中配置了选项:
<property>
  <name>dfs.datanode.du.reserved</name>
  <value>1024</value>
</property>


这样是为了保证每个磁盘写入点能预留1K的空间来,而不是让DN将每个磁盘写入点写满,以导致M/R写local文件是发生磁盘空间不够而失败,甚至启动DN时也有可能失败(DN在启动时会初使化本地临时目录)。但是最近发现,这个配置选项并没有生效,还是有很多DN上的磁盘被写满了。究其代码,就发现了问题:
long getCapacity() throws IOException {
-      if (reserved > usage.getCapacity()) {
-        return 0;
-      }
-
-      return usage.getCapacity()-reserved;
+      long remaining = usage.getCapacity() - reserved;
+      return remaining > 0 ? remaining : 0;
     }
long getAvailable() throws IOException {
       long remaining = getCapacity()-getDfsUsed();
-      long available = usage.getAvailable();
+      long available = usage.getAvailable() - reserved;
       if (remaining>available) {
         remaining = available;
       }
      return (remaining > 0) ? remaining : 0;
}


前一个修改是为了避免getCapacity() 被调用两次,该bug也是hadoop jira的一个close掉的bug。

后一个修改就是该bug所在。在比较remaining和available这两个变量的时候,remaining其实是减过reserved的,但available却没有,这样就导致计算磁盘剩余空间的时候出现问题,所以让available也减一下,这样就合理了。

-HADOOP-0.19.2
分享到:
评论
3 楼 xuxm2007 2012-07-04  
david.org 写道
xuxm2007 写道
你使用的版本是0.19.2吗?
这样修复之后起到效果吗?


目前高版本这个bug早改掉了吧。


好像有的版本还没有,
我在看的hadoop-0.20.2-cdh3u0没有
2 楼 david.org 2012-06-07  
xuxm2007 写道
你使用的版本是0.19.2吗?
这样修复之后起到效果吗?


目前高版本这个bug早改掉了吧。
1 楼 xuxm2007 2012-06-07  
你使用的版本是0.19.2吗?
这样修复之后起到效果吗?

相关推荐

    Hadoop(HDFS、YARN、HBase、Hive和Spark等)默认端口表

    9001 dfs.namenode.rpc-address,DataNode会连接这个端口 50070 dfs.namenode.http-address 50470 dfs.namenode.https-address 50100 dfs.namenode.backup.address 50105 dfs.namenode.backup.http-address 50090 ...

    hadoop-3.1.3.tar.gz

    &lt;name&gt;hadoop.tmp.dir &lt;value&gt;/app/hadoop/tmp ``` HDFS配置hdfs-site.xml则涉及NameNode和DataNode的相关参数,如副本数量和数据存储路径: ```xml &lt;name&gt;dfs.replication &lt;value&gt;3 &lt;name&gt;dfs....

    Hadoop2.7.3 Window10 hadoop.dll winutils.exe

    在本文中,我们将深入探讨如何在Windows 10操作系统中使用Hadoop 2.7.3版本进行开发,特别关注“hadoop.dll”和“winutils.exe”这两个关键组件。Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在...

    hadoop常见问题及解决办法

    解决办法是将dfs.datanode.socket.write.timeout的值设为0,然后增加dfs.datanode.handler.count的值,默认为3,增加到8以上。 问题7:java.lang.OutOfMemoryError: Java heap space 问题描述:Hadoop抛出java....

    hadoop-2.7.1.tar.gz.zip

    在安装和配置Hadoop时,你需要修改conf目录下的配置文件,如core-site.xml(定义HDFS的基本属性)、hdfs-site.xml(设置HDFS的参数)、mapred-site.xml(设置MapReduce参数)和yarn-site.xml(配置YARN)。...

    hadoop常见错误以及处理方法详解

    1、hadoop-root-datanode-master.log 中有如下错误:ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in导致datanode启动不了。原因:每次namenode format...

    hadoop-3.1.4.tar.zip

    例如,你需要在`hdfs-site.xml`中指定NameNode和DataNode的地址,在`mapred-site.xml`中设置MapReduce作业的运行方式(本地模式、伪分布式模式或完全分布式模式),并在`yarn-site.xml`中配置YARN的相关参数。...

    各个版本Hadoop,hadoop.dll以及winutils.exe文件下载大合集

    通常,Hadoop是设计在Linux系统上运行的,但开发者为了在Windows上运行Hadoop,会创建像`hadoop.dll`这样的动态链接库文件。这个文件使得Windows系统能够理解Hadoop的某些操作,如与HDFS交互。 `winutils.exe`是另...

    hadoop-2.7.3.tar.gz 下载 hadoop tar 包下载

    在Hadoop的配置中,需要修改`core-site.xml`来定义HDFS的默认FS(文件系统),`hdfs-site.xml`来设置HDFS的相关参数,如副本数量和数据节点位置,以及`mapred-site.xml`来配置MapReduce的相关参数。此外,还需要确保...

    hadoop-3.1.4.tar.gz

    这些文件位于`etc/hadoop`目录下,你需要根据你的集群规模和需求来设定参数,例如副本数量、HDFS的名称节点和数据节点等。 5. 初始化HDFS文件系统:`hadoop namenode -format` 6. 启动Hadoop服务:`start-dfs.sh` 和...

    hadoop-2.7.4.tar.gz

    1. **HDFS(Hadoop Distributed File System)**:HDFS是Hadoop的核心组件之一,是一个分布式文件系统,能够跨多台服务器存储和处理海量数据。它具有高容错性和高可扩展性,确保数据的可靠性和可用性。 2. **...

    hadoop2.6 hadoop.dll+winutils.exe

    标题 "hadoop2.6 hadoop.dll+winutils.exe" 提到的是Hadoop 2.6版本中的两个关键组件:`hadoop.dll` 和 `winutils.exe`,这两个组件对于在Windows环境中配置和运行Hadoop至关重要。Hadoop原本是为Linux环境设计的,...

    hadoop-3.3.1.tar.gz

    Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在大规模集群中高效处理和存储海量数据。Hadoop-3.3.1是Hadoop的最新稳定版本,提供了许多性能优化和新特性。这个“hadoop-3.3.1.tar.gz”文件是一个...

    hadoop-2.7.7.tar.gz

    2. **配置Hadoop**:编辑conf目录下的配置文件如`core-site.xml`, `hdfs-site.xml`, 和 `yarn-site.xml`,设置相关参数,如NameNode和DataNode的地址、内存分配等。 3. **格式化NameNode**:首次启动Hadoop集群时,...

    Hadoop_2.7.2安装包.rar

    1. **HDFS(Hadoop Distributed File System)**:Hadoop的核心组件之一,是一个分布式文件系统,能够将大量数据分布在多台服务器上,提供高容错性和高可用性。 2. **MapReduce**:Hadoop的并行计算模型,主要包含...

    hadoop-2.7.6src.tar.gz的压缩包

    2. **Hadoop HDFS (Hadoop Distributed File System)**: HDFS是Hadoop的核心组件之一,提供了高容错性的分布式文件系统,能够处理PB级别的数据。源代码中包括了HDFS客户端、数据节点(DataNode)、名称节点(NameNode)...

    hadoop2.7.7对应的hadoop.dll,winutils.exe

    总结来说,`hadoop.dll`和`winutils.exe`是Hadoop在Windows环境中的两个关键组件,它们解决了在非Linux平台上运行Hadoop时遇到的兼容性问题。通过将这两个文件放入Hadoop的`bin`目录并正确配置环境变量,用户可以在...

    hadoop-3.2.2.tar.gz

    7. **配置Hadoop集群**:如果要在多节点集群上运行Hadoop,还需要配置core-site.xml、hdfs-site.xml、yarn-site.xml等配置文件,定义如NameNode、DataNode、ResourceManager等服务的地址和参数。 8. **启动与使用**...

    Hadoop2.7.6 在windows下需要的hadoop.dll winutils.exe等文件

    在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分析。Hadoop 2.7.6是该框架的一个稳定版本,它提供了一系列优化和改进,以提高数据处理效率和系统的稳定性。在这个Windows环境下,配置Hadoop...

    hadoop2.7.4 插件 hadoop.dll 和 winutils.exe

    经本人亲自测试,本地可用,hadoop-eclipse-plugin-2.7.4.jar放到eclipse的插件目录,hadoop.dll 请放到system32目录,eclipse版本我本地下载的是Oxygen.1a Release (4.7.1a)。

Global site tag (gtag.js) - Google Analytics