【问题标题】:how can I increase hdfs capacity我怎样才能增加hdfs容量
【发布时间】:2017-11-20 21:52:34
【问题描述】:

如何将我的 hadoop DFS 的配置容量从默认的 50GB 增加到 100GB?

我目前的设置是在使用 120GB 和 450GB 的 centOS6 机器上运行的 hadoop 1.2.1。已使用“Hadoop the Definitive Guide 3'rd 建议的 /conf 将 hadoop 设置为伪分布式模式。 hdfs-site.xml 只有一个配置属性:

   <configuration>
    <property>
         <name>dfs.replication</name>
         <value>1</value>
     </property>
 </configuration>

以下行没有给出错误反馈...返回提示。

hadoop dfsadmin -setSpaceQuota 100g  /tmp/hadoop-myUserID

如果我处于再生循环中(已执行

 rm -rf /tmp/hadoop-myUserId  

试图“从头开始”)setSpaceQuota 的这种看似成功的情况仅在我已经执行时才会发生

  start-all.sh
  hadoop namenode -format

我的dfs容量配置失败

 hadoop dfsadmin -report

显示相同的 50GB 配置容量。

如果这是目前获得 100GB hdfs 配置容量的最佳方式,我愿意切换到 hadoop 2.2(现在是稳定版本)。 似乎应该有 hdfs-site.xml 的配置属性,这将允许我使用更多的空闲分区。

【问题讨论】:

  • 你的本地 linux 文件系统表是什么样的? hdfs-site 中 dfs.datanode.data.dir 的值是多少?确保配置为托管数据目录的本地 linux 分区中有 >50GB 的空间。

标签: hadoop hdfs


【解决方案1】:

将 hdfs 的位置设置为具有更多可用空间的分区。 对于 hadoop-1.2.1,这可以通过设置 hadoop.tmp.dir 来完成 hadoop-1.2.1/conf/core-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
   <property>
      <name>fs.default.name</name>
     <value>hdfs://localhost:9000</value>
     </property>
   <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/myUserID/hdfs</value>
    <description>base location for other hdfs directories.</description>
   </property>
</configuration>

跑步

df

曾说过我的 _home 分区是我的硬盘,我的 /
减去 50GB (_root) 分区。 hdfs 的默认位置是 /tmp/hadoop-myUserId 这是在 / 分区。这就是我最初的 50GB hdfs 大小的来源。

hdfs目录的分区位置的创建和确认是由

完成的
mkdir ~/hdfs
df -P ~/hdfs | tail -1 | cut -d' ' -f 1

成功的实现是由

stop-all.sh
start-dfs.sh
hadoop namenode -format
start-all.sh
hadoop dfsadmin -report

它将 hdfs 的大小报告为我的 _home 分区的大小。

感谢 jtravaglini 的评论/线索。

【讨论】:

    【解决方案2】:

    停止所有服务:stop-all.sh

    然后在 hdfs-site.xml 中添加这些属性以增加存储大小:


        <property>
            <name>dfs.disk.balancer.enabled</name>
            <value>true</value>
    </property>
    <property>
            <name>dfs.storage.policy.enabled</name>
            <value>true</value>
    </property>
    <property>
            <name>dfs.blocksize</name>
            <value>134217728</value>
    </property>
    <property>
            <name>dfs.namenode.handler.count</name>
            <value>100</value>
    </property>
     <property>
             <name>dfs.namenode.name.dir</name>
             <value>file:///usr/local/hadoop_store/hdfs/namenode</value>
    </property>
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:///usr/local/hadoop_store/hdfs/datanode,[disk]file:///hadoop_store2/hdfs/datanode</value>
    </property> 
    

    还记得将 [disk] 用于在文件夹中包含额外的磁盘,将 [ssd] 用于专用的额外 ssd 驱动器。永远记得检查目录指向的“///”三重“/”。

    之后,

    通过给出命令格式化namenode以获取Hadoop集群中继承的设置

    hadoop 名称节点格式 然后从头开始服务: start-all.sh

    "/* 请记住,如果不格式化 hdfs,该设置将不会被激活,因为它会在 dfs.datanode.data.dir 中搜索 Blockpool Id (BP_ID),并且不会找到任何新位置BP_ID。 "/*

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 2011-01-10
      • 1970-01-01
      • 1970-01-01
      • 2020-10-12
      • 2017-11-08
      • 2022-12-12
      • 2018-07-15
      相关资源
      最近更新 更多