Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1216080
  • 博文数量: 259
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 2518
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-13 16:12
个人简介

科技改变世界,技术改变人生。

文章分类

全部博文(259)

分类: HADOOP

2015-10-27 21:53:55

Hadoop中常常需要增加新的节点,或者变更备份系数。

在完成这些操作后,往往出现数据未自动备份,或者数据节点不可用的情况。
 
Hadoop的备份系数是指每个block在hadoop集群中有几份,系数越高,冗余性越好,占用存储也越多。
备份系数在hdfs-site.xml中定义,默认值为3.
 
如何变更备份系数? 
首先stop-all.sh停止节点,修改master节点的hdfs-site.xml文件,设置dfs.relication值为目标值。
启动hadoop集群。

查看文件的备份系数:hadoop dfs -ls [filename]  结果行中的第二列是备份系数
 (注:文件夹信息存储在namenode节点上,所以没有备份,故文件夹的备份系数是横杠) 在操作后会发现,以前文件的备份系数仍是原来的值。
原来hadoop并不会自动的按照新的备份系数调整,我们需要手动完成。

查看hadoop集群的备份冗余情况:hadoop fsck / 我很喜欢的命令,可以方便的看到各种类型block所占比例。

我们发现Average block replication的值仍然为旧值,所以我们需要修改hdfs中文件的备份系数。

修改hdfs文件备份系数:hadoop dfs -setrep [-R]  如果有-R将修改子目录文件的性质。
hadoop dfs -setrep -w 3 -R /user/hadoop 就是把目录下所有文件备份系数设置为3.

如果再fsck时候出错,往往是由于某些文件的备份不正常导致的,可以用hadoop的balancer工具修复

http://blog.sina.com.cn/s/blog_437ee9d00101iymq.html
阅读(2933) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~