[转]HDFS用户指南(中文版)

目的

本文档可以作为使用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集群的安装和设置:

  • Hadoop Quickstart ,给初次使用用户
  • Hadoop Cluster Setup 大规模、分布式集群

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

Web接口

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

Shell命令

Hadoop包括了多种shell风格的命令,用于跟HDFS或者Hadoop支持的其他文件系统交互。命令 bin/hadoop fs -help 可以列出Hadoop shell支持的命令。更进一步,bin/hadoop fs -help command 可以展现特定命令command的帮助细节。这些命令支持一般文件系统的操作,例如拷贝文件、修改文件权限等。同时也支持了部分HDFS特有的命令,例如修改文件的replication因子。

DFSAdmin命令

'bin/hadoop dfsadmin' 命令支持一些HDFS管理功能的操作。'bin/hadoop dfsadmin -help'可以列出所有当前支持的命令。例如:

  • -report : 报告HDFS的基本统计信息。部分信息同时展现在Namenode的web首页上。
  • -safemode : 尽管通常并不需要,管理员还是可以通过手工操作进入或者离开safemode状态
  • -finalizeUpgrade : 移除上一次升级时集群所做的备份。

二级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

HDFS的数据可能不会总是在Datanode之间分布得很一致。一个常见的原因是往现有的集群中加入了新的Datanode。当分配block的时候,Namenode依据几个参数来决定哪个datanode来接受这些block。一些需要考虑的因素如下:

1)一个block的副本存放在正在写该block的节点上

2)需要将一个block的副本扩展到其他机架上,防止因为整个机架故障导致的数据丢失。

3)副本之一通常放在同一个机架的另一个节点上,减少跨机架的网络IO

4)将HDFS数据均匀一致地分布在集群中的datanode上。

基于这些相互竞争的因素,数据可能不会在Datanode之间扩展得一致。HDFS给管理员提供了一个工具,用来分析block的分配情况和在datanode之间重新平衡数据。这个功能暂未实现,它的描述可以在这个 PDF 文档中看到,记录编号HADOOP-1652 .

Rack Awareness

典型的大规模Hadoop集群是部署在数个机架上的,那么显然同一个机架内的节点间的网络通讯比之不同机架间节点间的网络通讯更可取。另外,Namenode会尝试将block的副本分布在数个机架中以提高容错性。Hadoop让集群管理员来决定某个节点从属于哪个机架,通过配置变量dfs.network.script来实现。当这个脚本有配置的时候,每个节点都运行该脚本来决定它的rackid。默认安装假设所有的节点从属于同一个机架。这个特性和配置进一步的阐述在这个PDF 文档,编号为 HADOOP-692 。

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

文件许可和安全

文件许可的设计与其他平台(如linux) 的文件系统类似。在当前实现,安全被限制在简单的文件许可上。启动Namenode的用户被作为HDFS的超级用户。HDFS的未来版本将支持网络验证,例如Kerberos方案(译注:MIT开发的一个验证系统)的用户验证以及数据传输的加密。更详细的讨论参考Permissions User and Administrator Guide

伸缩性

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

关联文档

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

  • Hadoop Home Page : Hadoop一切的起始页。
  • Hadoop Wiki :由社区维护的wiki文档。
  • FAQ from Hadoop Wiki.
  • Hadoop JavaDoc API .
  • Hadoop User Mailing List : core-user[at]hadoop.apache.org .
  • 浏览conf/hadoop-default.xml 文件,它包括了当前可用配置变量的概括介绍。

转载于:https://www.cnblogs.com/napoleon_liu/archive/2011/09/29/2195155.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422748.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【离散数学中的数据结构与算法】九 鸽巢原理

鸽巢原理是非常著名的原理,生活正用的也很多。 文章目录1 简单鸽巢原理的应用2 定理(一般性鸽巢原理)2.1 应用3 总结1 简单鸽巢原理的应用 定理(鸽巢原理) 若有 n 个鸽巢, n1 个鸽子,则至少有…

【离散数学中的数据结构与算法】十 汉诺塔

汉诺塔也是经典的算法问题 文章目录1 汉诺塔问题1 汉诺塔问题 法国数学家卢卡斯(Edouard Lucas)在1883年提出了一个数学游戏: 传说在世界中心贝拿勒斯(印度北部)的圣庙里,一块黄铜板上有三根宝石柱。印度…

cross-domain policy file

A cross-domain policy file is an XML document that grants a web client—such as Adobe Flash Player, Adobe Reader, etc.—permission to handle data across multiple domains. When a client hosts content from a particular source domain and that content makes re…

markdown编辑器中数学公式的基本命令

原创链接:https://blog.csdn.net/holdrenminbi/article/details/78229488 常见的Markdown编辑器中数学公式使用 相比于初入Markdown编辑器的小白来说,数学公式的使用是必须要掌握的一门技能。本内容大体的介绍结构如下: 插入公式常用数学运…

Java程序练习-螺旋矩阵

螺旋矩阵时间限制: 1500ms内存限制: 1000kB描述生成一个NxN(N>0)的旋转矩阵,N从键盘输入,每4个字符输出一个数字,右对齐,从1开始至NxN,顺时针成螺旋状,例如:输入4则生成1--16的矩…

【离散数学中的数据结构与算法】十一 错排问题

错排问题比较难,但是也是经典算法问题 文章目录1 错排问题2 总结1 错排问题 家中阳台有10盆不同的花,为保持新鲜感,希望每天重新摆放,使得每盆花都不在第一天放的位置。那么最多可以保持多少天每天摆法都不同? 这是一…

Jquery的ajax在IE提交数据乱码解决方法

IE的编码和ff,chrome都不同,ajax提交数据乱码,尤其是中文,解决方法其实很简单首先,保持utf-8编码和post提交数据是必要的。其次将参数用escape编码再发送。比如xxx.aspx?uescape(username) 转载于:https://www.cnblog…

数据结构与算法实战-C++实现

学习交流加(可免费帮忙下载CSDN资源):个人微信: liu1126137994学习交流资源分享qq群1(已满): 962535112学习交流资源分享qq群2: 780902027 推荐一个数据结构实战课程,学习…

ie6 7下 relative absolute无法冲破的等级问题解决办法

最近做垂直市场遇见这样一个问题,在标准浏览器下如图一,所有地区列表正常显示,以下拉形式浮在最上层,可是在IE6、7下如图二就会被下面的图片所遮盖,z-index设置多大都不起作用。图一 (标准浏览器 和 IE8&am…

使用说明 思迅收银系统_使用自助收银系统让消费者自助结算更便捷高效?

很多超市的人工收银台,在客流的高峰期,如节假日、活动促销时间段、周末等,结账慢且客流量大,容易出现顾客排长队等待结账的情况。这样会有结账慢、收银员收银压力大的影响,进而影响顾客的购物体验。在超市使用自助收银…

【Linux进程、线程、任务调度】四多核下负载均衡 中断负载均衡,RPS软中断负载均衡 cgroups与CPU资源分群分配 Linux为什么不是硬实时 preempt-rt对Linux实时性的改造

学习交流加 个人qq: 1126137994个人微信: liu1126137994学习交流资源分享qq群: 962535112 上一篇文章(点击链接:点击链接阅读上一篇文章)讲了: CPU/IO消耗型进程吞吐率 vs. 响应SCHED_FIFO算法…

清除error.log、access.log并限制Apache日志文件大小的方法

清除error.log、access.log并限制Apache日志文件大小的方法Apache下的access.log和error.log文件从安装服务器到现在没有动过,今天突然discuz 的MYSQL数据库连接错误,提示2003 错误,检查发现原来是error.log、access.log爆满,文件…

主机关机后第二天就无法开机_iphone没电自动关机后无法充电和开机的解决办法!(亲身经历)...

问题记录时间: 2020年5月21日地点: 北京市朝阳区XXX写字楼​ 今天下午工作太忙,突然发现我的iphone8(ios13)还剩下1%的电量,赶紧去找充电器,没找到!抓紧借!回来的时候为时已晚,我的小8已经电量耗尽关机了.插上源电尝试开机,我心里想着千万不要出问题,结果还是怕什么来什么,手机…

推荐学习-Linux性能优化实战

学习交流加(可免费帮忙下载CSDN资源):个人微信: liu1126137994学习交流资源分享qq群1(已满): 962535112学习交流资源分享qq群2: 780902027 推荐一个学习资源:Linux性能优…

微软应提前发布专用于ARM处理器的Windows 8平板电脑系统

首先让我们来看一下理波士顿咨询集团最近做的一个关于平板电脑的调查,调查显示:虽然基于 iOS 的 ipad 非常流行,但是依然有 42% 的被调查者愿意购买可以运行 Windows 应用程序的平板产品,而 Android 平板只被 20% 的人接受&#x…

创业冲突的五种解决方法是_失眠原因不同,中医五种调理方法解决问题!

请点击上面 免费关注...中国健康养生堂,关注国人健康,每天与你分享健康资讯、保健常识、心理健康、中医养生、健康饮食、养生食疗、健康知识、生活常识、两性健康,远离亚健康,健康是一种心态!懂点健康养生,…

C++从入门到进阶近100本书推荐电子书pdf

学习交流加(可免费帮忙下载CSDN资源): 个人微信: liu1126137994 学习交流资源分享qq群1(已满): 962535112 学习交流资源分享qq群2(已满): 780902027 学习…

HTML5学习笔记

HTML5可以做的事情 1. 制作时尚的表单 2. 构建实用的HTML5框架 3. 开发丰富多彩的游戏 4. 以更直观的方式让数据可视化呈现 5. HTML5的未来 – 惊艳的HTML5示例和实验 HTML的新特点 新特性 HTML5 中的一些有趣的新特性: 用于绘画的 canvas 元素 用于媒介回放的 v…

特别慢_这款“爱豆”很特别,它带你重温旧时光,体验慢生活的时代

说到浪漫之都的法国巴黎,就不得不让人想到卢浮宫、凡尔赛宫、凯旋门等古老建筑,当然还有让全世界震惊的埃菲尔铁塔,这些名胜古迹无一不让法国人民感到骄傲。如果问及法国巴黎有着华人家乡味道的,就不得不说到一间不起眼的老式港式…

MarkDown编辑器中数学公式与符号-LaTeX 各种数学命令,符号

函数、符号及特殊字符 声调 语法效果语法效果语法效果\bar{x}\acute{\eta}\check{\alpha}\grave{\eta}\breve{a}\ddot{y}\dot{x}\hat{\alpha}\tilde{\iota}函数 语法效果语法效果语法效果\sin\theta\cos\theta\tan\theta\arcsin\frac{L}{r}\arccos\frac{T}{r}\arctan\frac{L}{T…