【问题标题】:Hadoop : HDFS Cluster running out of space even though space is availableHadoop:即使空间可用,HDFS 集群也会用尽空间
【发布时间】:2017-01-19 00:34:39
【问题描述】:

我们有 4 个 datanode HDFS 集群 ...每个数据节点上有大量可用空间,大约 98gb ...但是当我查看 datanode 信息时..它只使用了大约 10gb 并且空间不足。 ..

我们怎样才能让它使用所有的 98gb 而不会用完如图所示的空间

这是磁盘空间配置

这是名称节点上的 hdfs-site.xml

<property>
        <name>dfs.name.dir</name>
        <value>/test/hadoop/hadoopinfra/hdfs/namenode</value>
 </property>

这是数据节点下的hdfs-site.xml

<property>
        <name>dfs.data.dir</name>
        <value>/test/hadoop/hadoopinfra/hdfs/datanode</value>
 </property>

尽管 /test 有 98GB 并且 hdfs 配置为使用它,但它并没有使用它

在进行配置更改时我是否遗漏了什么?我们如何确保使用 98GB?

【问题讨论】:

  • 只是想一想,您的复制因子是否设置为默认值?我知道默认值为 3,但您使用的存储量似乎是 10 倍。我不是 100% 确定块的副本是否算作“实际”使用的存储......
  • 否则,您在dfs.data.dir 属性中指定的目录是否真的存在?根据 Apache 网站......Directories that do not exist are ignored.
  • 它确实存在该目录,如果它不存在...start-dfs.sh 将失败,但它可以正常启动但仍然使用旧的...位置,它有 14gb
  • 现在发布一个潜在的解决方案:)

标签: hadoop hadoop-yarn hadoop2


【解决方案1】:

根据this Hortonworks Community Portal link,修改你的Data Node目录的步骤如下:

  1. 停止集群。
  2. 进入ambari HDFS配置并编辑datanode目录配置:删除/hadoop/hdfs/data和/hadoop/hdfs/data1。添加[new directory location]
  3. 登录到每个数据节点(通过 SSH)并将 /data 和 /data1 的内容复制到新目录中。
  4. 将新目录及其下所有内容的所有权更改为“hdfs”。
  5. 启动集群。

我假设您在技术上已经完成了第 2 步,因为您已经在原始问题中显示了正确配置的 core-site.xml 文件。确保您已完成其他步骤并且所有 Hadoop 服务已停止。从那里,将所有权更改为运行 Hadoop 的用户(通常是 hdfs,但我曾在 root 运行 Hadoop 进程的地方工作),你应该很高兴:)

【讨论】:

  • 这就是我在名称节点 ..stop-dfs.sh 和 start-dfs.sh 上所做的事情,我相信这将重新启动所有 hadoop 服务...如果需要请告诉我任何其他步骤...使用 hadoop 2.7.3
  • 有几件事 - stop-all.shstart-all.sh 是要走的路,因为 stop-dfs.shstart-dfs.sh 只会停止 HDFS 进程 afaik。其次,您是通过 Ambari 管理 UI 更改了 dfs.data.dir 属性(假设您安装了 Ambari)还是通过编辑 XML 文件来更改?如果安装了 Ambari 并且您正在手动编辑 XML,那么当重新启动时,Ambari 可以通过从它使用的数据库实例重新应用配置来恢复更改。另外,我建议使用top 命令检查进程是否停止并检查日志文件。
猜你喜欢
  • 2016-03-29
  • 2016-05-05
  • 1970-01-01
  • 1970-01-01
  • 2021-05-07
  • 1970-01-01
  • 2022-11-27
  • 2018-03-22
  • 1970-01-01
相关资源
最近更新 更多