在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
分享到:
相关推荐
### Hadoop默认端口清单详解 #### Hadoop概述 Hadoop是一个开源软件框架,用于分布式存储和处理大型数据集。其核心组件包括HDFS(Hadoop Distributed File System)、MapReduce和YARN(Yet Another Resource ...
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 ...
<name>hadoop.tmp.dir <value>/app/hadoop/tmp ``` HDFS配置hdfs-site.xml则涉及NameNode和DataNode的相关参数,如副本数量和数据存储路径: ```xml <name>dfs.replication <value>3 <name>dfs....
在本文中,我们将深入探讨如何在Windows 10操作系统中使用Hadoop 2.7.3版本进行开发,特别关注“hadoop.dll”和“winutils.exe”这两个关键组件。Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在...
在安装和配置Hadoop时,你需要修改conf目录下的配置文件,如core-site.xml(定义HDFS的基本属性)、hdfs-site.xml(设置HDFS的参数)、mapred-site.xml(设置MapReduce参数)和yarn-site.xml(配置YARN)。...
1、hadoop-root-datanode-master.log 中有如下错误:ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in导致datanode启动不了。原因:每次namenode format...
例如,你需要在`hdfs-site.xml`中指定NameNode和DataNode的地址,在`mapred-site.xml`中设置MapReduce作业的运行方式(本地模式、伪分布式模式或完全分布式模式),并在`yarn-site.xml`中配置YARN的相关参数。...
通常,Hadoop是设计在Linux系统上运行的,但开发者为了在Windows上运行Hadoop,会创建像`hadoop.dll`这样的动态链接库文件。这个文件使得Windows系统能够理解Hadoop的某些操作,如与HDFS交互。 `winutils.exe`是另...
在Hadoop的配置中,需要修改`core-site.xml`来定义HDFS的默认FS(文件系统),`hdfs-site.xml`来设置HDFS的相关参数,如副本数量和数据节点位置,以及`mapred-site.xml`来配置MapReduce的相关参数。此外,还需要确保...
这些文件位于`etc/hadoop`目录下,你需要根据你的集群规模和需求来设定参数,例如副本数量、HDFS的名称节点和数据节点等。 5. 初始化HDFS文件系统:`hadoop namenode -format` 6. 启动Hadoop服务:`start-dfs.sh` 和...
1. **HDFS(Hadoop Distributed File System)**:HDFS是Hadoop的核心组件之一,是一个分布式文件系统,能够跨多台服务器存储和处理海量数据。它具有高容错性和高可扩展性,确保数据的可靠性和可用性。 2. **...
标题 "hadoop2.6 hadoop.dll+winutils.exe" 提到的是Hadoop 2.6版本中的两个关键组件:`hadoop.dll` 和 `winutils.exe`,这两个组件对于在Windows环境中配置和运行Hadoop至关重要。Hadoop原本是为Linux环境设计的,...
Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在大规模集群中高效处理和存储海量数据。Hadoop-3.3.1是Hadoop的最新稳定版本,提供了许多性能优化和新特性。这个“hadoop-3.3.1.tar.gz”文件是一个...
2. **配置Hadoop**:编辑conf目录下的配置文件如`core-site.xml`, `hdfs-site.xml`, 和 `yarn-site.xml`,设置相关参数,如NameNode和DataNode的地址、内存分配等。 3. **格式化NameNode**:首次启动Hadoop集群时,...
总结来说,`hadoop.dll`和`winutils.exe`是Hadoop在Windows环境中的两个关键组件,它们解决了在非Linux平台上运行Hadoop时遇到的兼容性问题。通过将这两个文件放入Hadoop的`bin`目录并正确配置环境变量,用户可以在...
7. **配置Hadoop集群**:如果要在多节点集群上运行Hadoop,还需要配置core-site.xml、hdfs-site.xml、yarn-site.xml等配置文件,定义如NameNode、DataNode、ResourceManager等服务的地址和参数。 8. **启动与使用**...
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分析。Hadoop 2.7.6是该框架的一个稳定版本,它提供了一系列优化和改进,以提高数据处理效率和系统的稳定性。在这个Windows环境下,配置Hadoop...
经本人亲自测试,本地可用,hadoop-eclipse-plugin-2.7.4.jar放到eclipse的插件目录,hadoop.dll 请放到system32目录,eclipse版本我本地下载的是Oxygen.1a Release (4.7.1a)。
在搭建Hadoop环境的过程中,经常会遇到一些特定的依赖问题,比如缺少`hadoop.dll`和`winutils.exe`这两个关键组件。本文将详细介绍这两个文件及其在Hadoop生态系统中的作用,以及如何解决它们缺失的问题。 首先,`...