`

HDFS用户指南(翻译)

    博客分类:
  • java
阅读更多

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

目的

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

概览

HDFS是Hadoop应用的主要分布式存储。一个HDFS集群由一个管理文件系统元数据的NameNode,和存储实际 数据的一些Datanode组成。HDFS的架构在这里有详细描述。这个用户指南主要提供给需要跟HDFS集群打交道的用户或者管理员。HDFS架构文章 中的图描绘了Namenode、Datanode和客户端们之间的基本交互。本质上,客户端与Namenode通讯获取或者修改文件的元数据,与 Datanode进行实际的IO操作。

下面的列表应该是大多数用户关心的HDFS突出特点。斜体字的术语将在后面详细描述。

1)Hadoop,包括HDFS,非常适合廉价机器上的分布式存储和分布式处理。它是容错的、可伸缩的,并且非常易于扩展。并且,以简单性和适用性著称的Map-Reduce是Hadoop不可或缺的组成部分。

2)HDFS的默认配置适合于大多数安装的应用。通常情况下,只有在一个非常大规模的集群上才需要修改默认配置。

3)HDFS是用java编写的,支持大多数平台。

4)支持shell命令行风格的HDFS目录交互。

5)Namenode和Datanode都内建了web服务器,可以方便地查看集群的状态

6)HDFS经常性地实现新的特性和改进,下面是HDFS中的一些有用特性的子集:

   文件许可和授权

   Rack awareness :当调度任务和分配存储的时候将节点的物理位置考虑进去。

   Safemode(安全模式) :用于维护的一个管理状态

   fsck : 诊断文件系统的一个工具,用来查找丢失的文件或者block

   Rebalancer :当数据在Datanode间没有均匀分布的时候,用于重新平衡集群的工具

   升级和回滚 :当Hadoop软件升级,在升级遇到不可预期的问题的时候,可以回滚到HDFS升级前的状态

   二级Namenode :帮助Namenode维持包含了HDFS修改的日志的文件(edits日志文件,下文谈到)大小在限制范围内。

前提条件

下面的文档描述了一个Hadoop集群的安装和设置:


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

Web接口

Namenode和Datanode分别跑了一个内置的web服务器,来展现集群当前状态的一些基本信息。在默认配置 下,Namenode的首页地址是http://namenode:50070(namenode就是Namenode节点所在机器IP或者名称)。这个 页面列出了集群中的所有datanode以及集群的基本统计。web接口同样可以用于浏览文件系统(点击Namenode首页上的“Browse the file system"链接)。

Shell命令

二级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配置文件里配置的节点上。

Rebalancer

Rack Awareness

Safemod(安全模式)

当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参数配置,单位是毫秒。

Fsck

HDFS提供了fsck命令用来检测各种各样的不一致性。fsck被设计用来报告各种文件的问题,例如某个文件丢失的 block,block的副本数目是否低于设置等。不同于传统的一般原生文件系统的fsck命令,hdfs的fsck命令并不修正所检测到的错误。通常情 况下,Namenode会自动修正大多数可以被修复的错误,HDFS的fsck不是Hadoop shel的命令,可以通过'bin/hadoop fsck'执行,可以运行在整个文件系统上或者一个文件子集上。

升级和回滚

当升级某个集群的Hadoop的时候,正如任何软件的升级一样,可能会引入新的bug或者不兼容的修改导致现有的应用出 现过去没有发现的问题。在所有重要的HDFS安装应用中,是不允许出现因丢失任何数据需要从零开始重启HDFS的情况。HDFS允许管理员恢复到 Hadoop的早期版本,并且将集群的状态回滚到升级前。HDFS的升级细节请参考 upgrade wiki 。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正运行在成千上万个节点的集群上。 PoweredBy Hadoop 列 出了一些部署Hadoop在大规模集群上的组织和机构。HDFS在每个集群上只有一个Namenode节点,Namenode节点上可用内存是当前伸缩性 的主要限制。在非常大规模的集群上,增加HDFS中存储的文件的平均大小,将可以帮助提高集群的大小而不用增加Namenode的内存需求。默认的配置可 能不适合非常大规模的集群应用。Hadoop FAQ 页列出了对于大规模Hadoop集群的配置改进建议。

关联文档

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


分享到:
评论
3 楼 LIMIMGJIE 2008-09-16  
文章不错,有没有详细介绍安装PIG和使用PIG的文章呀!期待LZ的继续。。。。。
2 楼 dennis_zane 2008-08-15  
beijing.josh 写道

http://www.hadoop.org.cn


这个网站是你的blog?很棒哦,很丰富的资料,感谢
1 楼 beijing.josh 2008-08-15  
翻译的不错。如加上NN内存的介绍就相当完美了:

File,Derectory,Block在内存中的大小
    * File:122 + fileName.length
    * Directory:152 + fileName.length
    * Block:112 + 24*replication


http://www.hadoop.org.cn

相关推荐

    阿里云 专有云企业版 V3.8.1 文件存储HDFS 运维指南 20190910

    该指南提供了阿里云专有云企业版V3.8.1文件存储HDFS的运维指南,旨在帮助用户更好地理解和使用阿里云专有云企业版V3.8.1文件存储HDFS。 法律声明 -------- 阿里云提醒用户在阅读或使用本文档之前仔细阅读、充分...

    阿里云 专有云企业版 V3.8.2 文件存储HDFS 开发指南 20200417.pdf

    本开发指南主要面向开发者,旨在提供全面的API参考和技术指导,帮助用户更好地理解和利用HDFS服务。在使用此指南之前,用户需仔细阅读并理解法律声明,确保合法合规地使用文档内容。 1. **法律声明**: - 用户应...

    ambari官方安装指南-中文翻译版-程序员人工翻译,非机器翻译.docx

    Ambari 安装指南中文翻译版 Ambari 是一个基于 Apache 的开源集群管理平台,能够帮助用户快速部署、管理和监控 Hadoop 集群。下面是根据给定文件信息生成的相关知识点: Apache Ambari 概述 Apache Ambari 是一个...

    阿里云 专有云企业版 V3.7.0 E-MapReduce 用户指南 20181201.pdf

    4. **操作指南**:E-MapReduce用户指南会详细解释如何创建和管理集群,配置网络,提交和监控作业,以及如何使用各种组件如HDFS、YARN、HBase等。用户可以学习到如何进行数据导入导出、资源调度、日志查看等日常运维...

    阿里云 专有云企业版 V3.7.1 分布式文件系统 DFS用户指南 20190124.pdf

    在V3.7.1版本的用户指南中,主要涵盖了DFS系统的特性和使用方法。 1. **分布式文件系统DFS**: 分布式文件系统DFS是一种基于云计算技术的文件存储服务,它能够在多个节点间透明地分布数据,实现数据的冗余备份和...

    阿里云 专有云企业版 V3.6.2 DataWorks 用户指南 - 20181228.pdf

    在V3.6.2版本的用户指南中,重点介绍了DataWorks的功能、使用方法以及注意事项。 1. **法律声明**: - 用户需通过阿里云官方渠道获取并仅用于合法合规的业务活动,同时文档内容受保密协议约束,不得向第三方披露。...

    阿里云 专有云企业版 V3.7.1 分布式文件系统 DFS开发指南 20190322.pdf

    **阿里云专有云企业版分布式文件系统DFS开发指南**是针对阿里云V3.7.1版本的一个详细文档,旨在帮助开发者和用户理解和使用阿里云的文件存储HDFS服务。以下是该指南涵盖的一些关键知识点: 1. **法律声明**: - ...

    hive官方翻译文档

    同时,《HDFS用户指南》和《EasyHadoop实战手册》为理解Hive的底层存储和操作Hadoop环境提供了补充知识。 总之,《Hive官方翻译文档》是学习和实践Hive不可或缺的资源,无论你是初学者还是经验丰富的开发者,都能...

    最新 Hadoop权威指南 第四版 中文(绝非水军)

    《Hadoop权威指南》第四版是Hadoop领域的经典著作,对于深入理解分布式计算系统...尽管原版书籍可能存在质量问题,但中文版的翻译为国内用户提供了便捷的学习途径,帮助他们更好地理解和应用这一强大的大数据处理框架。

    Hadoop权威指南 中文PDF扫描版

    这本书的中文PDF扫描版为读者提供了便捷的阅读方式,特别是对于中文环境下的学习者来说,无需翻译就能直接理解其中的专业术语和概念。108MB的文件大小表明该版本包含了丰富的内容和高质量的图像,确保了阅读体验。 ...

    Hadoop权威指南 中文版

    《Hadoop权威指南 中文版》是由Apache Hadoop项目的主要开发者之一汤姆·怀特(Tom White)所著,该书由曾大聃和周傲英翻译成中文。本书详细介绍了大数据处理框架Hadoop的各个方面,适合从新手到专家不同层次的读者...

    《Hive编程指南》英文文字版 非扫描版 带标签 超清晰

    HiveQL语句会被Hive编译器翻译成一个或多个MapReduce任务,并在Hadoop集群上执行。 本书内容从Hadoop和MapReduce的基本概念入手,逐步深入到Hive在Hadoop生态中的角色和功能,然后介绍了Hive的安装和配置,包括如何...

    HBase权威指南中文版+官方文档

    - **快速开始**:指导用户如何快速搭建HBase环境。 - **配置**: - **Java环境配置**:确保Java版本兼容HBase的要求。 - **操作系统配置**:针对不同操作系统提供优化建议。 - **Hadoop配置**:介绍Hadoop集群与...

    Hadoop官方中文文档

    首先,文档标题为“Hadoop官方中文文档”,这意味着文档是Apache Hadoop项目的官方指南,且已经被翻译成中文,以便中文读者更容易理解和使用。Apache Hadoop是一个开源的分布式存储和计算框架,它允许用户存储大量...

    阿里云 专有云企业版 V3.12.0 E-MapReduce 运维指南 20200619.pdf

    - 文档内容未经许可不得摘抄、翻译或传播。 - 阿里云有权随时更新文档,用户需关注最新版本。 - 文档仅供参考,阿里云不对内容的准确性、完整性等提供保证,且不承担任何间接损失的责任。 - 阿里云文档的知识...

    flume1.30userguide中文翻译

    《Flume 1.3.0 用户指南》中文翻译提供了对Apache Flume这一分布式日志收集系统的详尽解析。Flume作为一个高度可信赖且具有弹性的系统,主要用于高效地从多源收集、聚合并传输大规模的日志数据至中央存储中心。此...

    hbase权威指南

    - **中文版文档**: 这份文档是针对Apache HBase的官方文档进行中文翻译整理的版本,旨在为中文用户提供更方便的学习资料。 - **版权信息**: 版权归2012年Apache Software Foundation所有,该版本为中文翻译版。 - **...

    阿里云 专有云Enterprise版 V3.5.0 E-MapReduce 产品简介 - 20180710.pdf

    文档还包括详细的目录结构,方便用户快速定位所需信息,涵盖产品介绍、使用指南、API参考、故障排查等内容。 综上所述,阿里云专有云Enterprise版V3.5.0的E-MapReduce是针对企业大数据需求设计的一款综合解决方案,...

    flume1.30developerguide中文翻译

    开发用户自定义组件是Flume的一个重要特性,允许用户根据需求扩展Flume的功能。例如,你可以创建自定义的Source、Sink或Channel来适应特定的日志格式或数据传输需求。客户端(Client)则负责生成原始事件并使用Flume...

Global site tag (gtag.js) - Google Analytics