how can I increase hdfs capacity
如何将我的 hadoop DFS 的配置容量从默认的 50GB 增加到 100GB?
我目前的设置是在使用 120GB 和 450GB 的 centOS6 机器上运行的 hadoop 1.2.1。已将 hadoop 设置为 psudodistributed 模式,并使用 “Hadoop the Definitive Guide 3\\’rd) 建议的 /conf。
hdfs-site.xml 只有一个配置属性:
1
2 3 4 5 6 |
<configuration>
<property> <name>dfs.replication</name> <value>1</value> </property> </configuration> |
以下行没有给出错误反馈…返回提示。
1
|
hadoop dfsadmin -setSpaceQuota 100g /tmp/hadoop-myUserID
|
如果我处于再生循环中(已执行
1
|
rm -rf /tmp/hadoop-myUserId
|
试图”从头开始”) setSpaceQuota 的这种看似成功的情况仅在我执行了
时才会发生
1
2 |
start-all.sh
hadoop namenode -format |
我的dfs容量配置失败由
显示
1
|
hadoop dfsadmin -report
|
显示相同的 50GB 配置容量。
如果这是目前获得 100GB hdfs 配置容量的最佳方式,我愿意切换到 hadoop 2.2(现在是稳定版本)。
似乎应该有 hdfs-site.xml 的配置属性,这将允许我使用更多的空闲分区。
- 你的本地 linux 文件系统表是什么样的? hdfs-site 中 dfs.datanode.data.dir 的值是多少?确保配置为托管数据目录的本地 linux 分区中有 >50GB 的空间。
将 hdfs 的位置设置为具有更多可用空间的分区。
对于 hadoop-1.2.1,这可以通过设置 hadoop.tmp.dir 来完成
hadoop-1.2.1/conf/core-site.xml
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?xml version=”1.0″?>
<?xml-stylesheet type=”text/xsl” href=”configuration.xsl”?> <!– Put site-specific property overrides in this file. –> <configuration> |
跑步
df
曾说过我的 _home 分区是我的硬盘,减去 50GB 用于我的 /
(_root) 分区。 hdfs 的默认位置是
/tmp/hadoop-myUserId
这是在 / 分区。这就是我最初的 50GB hdfs 大小的来源。
hdfs目录的分区位置的创建和确认由
完成
1
2 |
mkdir ~/hdfs
df -P ~/hdfs | tail -1 | cut -d’ ‘ -f 1 |
成功的实现是由
完成的
1
2 3 4 5 |
stop-all.sh
start-dfs.sh hadoop namenode -format start-all.sh hadoop dfsadmin -report |
它将 hdfs 的大小报告为我的 _home 分区的大小。
感谢 jtravaglini 的评论/线索。
停止所有服务:stop-all.sh
然后在 hdfs-site.xml 中添加这些属性以增加存储大小:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<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 名称节点格式
然后从头开始服务:
开始-all.sh
“/* 请记住,如果不格式化 hdfs,该设置将不会被激活,因为它将在 dfs.datanode.data.dir 中搜索 Blockpool Id (BP_ID),而对于新位置,它将找不到任何 BP_ID。 “/*
来源:https://www.codenong.com/19542185/