【问题标题】:Multiple volume & limit disk usage with HadoopHadoop 的多卷和限制磁盘使用
【发布时间】:2017-05-05 12:26:31
【问题描述】:

我正在使用 Hadoop 处理大量数据。我设置了一个hadoop节点来使用多个卷:其中一个是具有10To磁盘的NAS,另一个是来自服务器的本地磁盘,存储容量为400 GB。
问题是,如果我理解的话,数据节点将尝试在每个卷中放置等量的数据。因此,当我在大量数据上运行作业时,400 GB 的磁盘很快就满了,而 10 To 磁盘有足够的空间。然后我的 Hive 生成​​的 map-reduce 程序冻结了,因为我的集群打开了安全模式...
我试图设置限制数据节点磁盘使用的属性,但它什么也没做:我仍然有同样的问题。 希望有人可以帮助我。

看来我的 mapreduce 程序打开了安全模式,因为:

The ratio of reported blocks 0.0000 has not reached the threshold 0.9990.

我在 namenode Web 界面上看到了该错误。我想用属性dfs.safemode.threshold.pct禁用这个选项,但不知道是不是解决的好办法?

【问题讨论】:

  • 我不确定我是否正确理解了您的问题,但我的印象是您不了解 HDFS。在我看来,您的服务器不应该共享任何内容。本地磁盘存储由数据节点使用,但不应使用 NAS。另一个非常重要的问题是:你有多少个数据节点?
  • 我有四个数据节点。我正在使用 NAS,因为我的程序的输出对于本地磁盘来说太大了。我希望 Hadoop 可以处理不同大小的 dfs.data.dir 设备。
  • 我使用的是 Hadoop-0.20.203.0 和 Hive-0.7.1。

标签: hadoop hive


【解决方案1】:

我想你可以向dfs.datanode.fsdataset.volume.choosing.policy寻求帮助。

<property><name>dfs.datanode.fsdataset.volume.choosing.policy</name><value>org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy</value>

【讨论】:

    【解决方案2】:

    使用$HADOOP_HOME/conf/hdfs-site.xml 中的dfs.datanode.du.reserved 配置设置来限制磁盘使用。

    Reference

    <property> 
        <name>dfs.datanode.du.reserved</name> 
        <!-- cluster variant --> 
        <value>182400</value> 
        <description>Reserved space in bytes per volume. Always leave this much space free for non dfs use. 
      </description> 
      </property> 
    

    【讨论】:

      猜你喜欢
      • 2014-11-23
      • 1970-01-01
      • 2015-02-07
      • 2023-03-31
      • 2017-09-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-06
      • 2014-05-04
      相关资源
      最近更新 更多