Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1158653
  • 博文数量: 253
  • 博客积分: 5892
  • 博客等级: 大校
  • 技术积分: 1942
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-24 14:20
文章分类

全部博文(253)

文章存档

2012年(98)

2011年(155)

分类: 云计算

2012-02-14 23:16:25

原文地址:http://hadoop.apache.org/core/docs/current/hdfs_user_guide.html
译者:dennis zhuang(killme2008@gmail.com),有错误请指正,多谢。

目的

本文档可以作为使用Hadoop分布式文件系统用户的起点,无论是将HDFS应用在一个Hadoop集群中还是作为一个单独的分布式文件系统使用。HDFS被设计成可以马上在许多环境中工作起来,那么一些HDFS的运行知识肯定能大大地帮助你对一个集群做配置改进和诊断。


本文档的剩余部分假设你已经搭设并运行了一个至少拥有一个Datanode的HDFS。基于本文档的目的,Namenode和Datanode可以运行在同一台机器上。

二级Namenode

Namenode将对文件系统的修改存储在一个原生文件系统文件中(名为edits的文件)。当Namenode启动的时 候,它从映像文件(fsimage)读取HDFS的状态,然后将edits日志文件中的修改作用在此内存状态上,接着将得到的新的HDFS状态写回 fsimage,后续的正常操作开始于一个空的edits日志文件。由于Namenode仅仅在启动的时候将fsimage和edits合并,因此在一个 大的集群上经过一定时间操作后,edits文件将会非常大。由此带来的一个副作用就是下次Namenode的重新启动将花费很长时间。二级 Namenode就是为了解决这个问题,它会周期性地合并fsimage和edits日志文件,并且将edits日志文件的大小保持在限制范围内。通常它 会跑在另一个机器上,因为它的内存要求跟主namenode一样。二级Namenode可以通过'bin/start-dfs.sh'启动在conf /masters配置文件里配置的节点上。

PDF 文档中看到,记录编号 .

PDF 文档,编号为  。

当Namenode启动的时候,它从fsimage和edits日志两个文件中加载文件系统的状态。然后等待 datanode报告他们的block信息,以便防止Namenode在确认block副本是否足够前过早地开始复制block。这段时间的 Namenode就是处于所谓safemode状态。处于safemode的Namenode也是HDFS集群的只读模型,此时不允许任何对文件系统或者 block的修改。正常情况下,Namenode会在开始后自动退出safemode。如果有需要,HDFS可以通过'bin/hadoop dfsadmin -safemode'命令显式地进入safemode状态。Namenode的web首页显示当前的safemode是否打开。更详细的描述和配置可以参 考setSafeMode() 方法的JavaDoc。

译 注:详细介绍下safemode的配置参数,在safemode状态,Namenode会等待所有的datanode报告他们自己的block信息,看看 所有的block的副本是否达到最低要求的数目,这个数目可以通过dfs.replication.min参数配置,默认是1,也就是至少要求有一个副 本。当报告合格的Datanode的数目达到一定百分比,Namenode才会离开safemode状态。这个百分比也是可配置的,通过 dfs.safemode.threshold.pct参数,默认是0.999f(也就是要求99.9%的Datanode 合格)。Namenode在合格的datanode数目达到要求的时候,并不是马上离开safemode状态,会有一个扩展时间,让剩余的 datanode来报告block信息,这个扩展时间默认是30秒,可以通过 dfs.safemode.extension参数配置,单位是毫秒。

 。HDFS在任何时间只能有一个备份,因此在升级前,管理员需要通过'bin/hadoop dfsadmin -finalizeUpgrade'命令移除现有的备份。下面简要描述了典型的升级过程:

1)在升级Hadoop前,如果已经存在备份,需要先结束(finalize)它。可以通过'dfsadmin -upgradeProgress status'命令查询集群是否需要执行finalize

2)停止集群,分发部署新版本的Hadoop

3)执行新版本的hadoop,通过添加 -upgrade 选项,例如/bin/start-dfs.sh -upgrade

4)大多数情况下,集群在升级后可以正常运行。一旦新的HDFS在运行若干天的操作后没有出现问题,那么就可以结束(finalize)这次升级。请注意,在升级前删除的文件并不释放在datanode上的实际磁盘空间,直到集群被结束(finalize)升级前。

5)如果有需要回到老版本的Hadoop,那么可以:

   a)停止集群,分发部署老版本的Hadoop

   b)通过rollback选项启动集群,例如bin/start-dfs.sh -rollback

文件许可和安全

 列 出了一些部署Hadoop在大规模集群上的组织和机构。HDFS在每个集群上只有一个Namenode节点,Namenode节点上可用内存是当前伸缩性 的主要限制。在非常大规模的集群上,增加HDFS中存储的文件的平均大小,将可以帮助提高集群的大小而不用增加Namenode的内存需求。默认的配置可 能不适合非常大规模的集群应用。 页列出了对于大规模Hadoop集群的配置改进建议。

关联文档

 本用户指南可作为使用HDFS很好的一个起点,在本文档持续改进的同时,有一些非常有价值的关于Hadoop和HDFS的文档资料可供参考。下列资料可作为进一步探索的起点:

  •  : Hadoop一切的起始页。
  •  :由社区维护的wiki文档。
  •  from Hadoop Wiki.
  • Hadoop JavaDoc API .
  • Hadoop User Mailing List :  .
  • 浏览conf/hadoop-default.xml 文件,它包括了当前可用配置变量的概括介绍。
阅读(1791) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~