目的

本文档是使用Hadoop分布式文件系统(HDFS)作为Hadoop集群或独立通用分布式文件系统的一部分的用户的起点。虽然HDFS旨在在许多环境中“正常工作”,但HDFS的工作知识有助于在特定集群上进行配置改进和诊断。

概述

HDFS是Hadoop应用程序使用的主要分布式存储。HDFS集群主要由一个NameNode来管理文件系统元数据和存储实际数据的DataNodes。HDFS架构指南详细介绍了HDFS。本用户指南主要处理用户和管理员与HDFS集群的交互。HDFS架构图描述了NameNode,DataNode和客户端之间的基本交互。客户联系NameNode进行文件元数据或文件修改,并直接使用DataNodes执行实际的文件I / O。

以下是许多用户可能感兴趣的一些突出特征:

  Hadoop,包括HDFS,非常适合于使用商品硬件的分布式存储和分布式处理。它是容错的,可扩展的,非常简单的扩展。由于其简明易用且适用于大型分布式应用程序,MapReduce是Hadoop的一个组成部分。

  HDFS是高度可配置的,默认配置非常适合许多安装。大多数情况下,配置需要仅针对非常大的集群进行调整。

  Hadoop是用Java编写的,在所有主要平台上都支持。

  Hadoop支持类shell命令直接与HDFS进行交互。

  NameNode和Datanodes内置了Web服务器,可以方便地检查集群的当前状态。

  在HDFS中经常实施新功能和改进。以下是HDFS中有用功能的一个子集:

      文件权限和身份验证。

        机架感知:在调度任务和分配存储时考虑节点的物理位置。

      Safemode:维护的管理模式。

      fsck:用于诊断文件系统运行状况的实用程序,以查找丢失的文件或块。

      fetchdt:一个用于获取DelegateToken并将其存储在本地系统上的文件中的实用程序。

      平衡器:数据在DataNodes之间不均匀分布时平衡集群的工具。

      升级和回滚:软件升级后,如果出现意外问题,可以在升级之前回滚到HDFS状态。

      Secondary NameNode:执行命名空间的定期检查点,并帮助将包含HDFS修改日志的文件的大小保留在NameNode的某个限制内。

      检查点节点:执行命名空间的定期检查点,并帮助最小化包含HDFS更改的NameNode中存储的日志大小。替换先前由Secondary NameNode填充的角色,尽管尚未使用。NameNode允许多个Checkpoint节点同时进行,只要没有备份节点注册到系统。

      备份节点:Checkpoint节点的扩展。除了检查点之外,它还从NameNode接收编辑流,并维护其自己的命名空间的内存中副本,该副本始终与活动的NameNode命名空间状态同步。只能一个备份节点可以一次注册到NameNode。

准备工作

以下文档介绍如何安装和设置Hadoop集群:

本文档的其余部分假设用户能够使用至少一个DataNode来设置和运行HDFS。为了本文档的目的,NameNode和DataNode都可以在同一物理机上运行。

Web服务

NameNode和DataNode都会运行一个内部Web服务器,以显示有关集群当前状态的基本信息。使用默认配置,NameNode首页位于http://namenode-name:50070/。它列出了集群中的DataNodes和集群的基本统计信息。Web界面也可用于浏览文件系统(使用NameNode首页上的“浏览文件系统”链接)。

Shell命令

Hadoop包括与Hadoop支持的HDFS和其他文件系统直接交互的各种shell命令。命令bin / hdfs dfs -help列出了Hadoop shell支持的命令。此外,命令bin / hdfs dfs -help命令名显示命令的更详细的帮助。这些命令支持大多数正常的文件系统操作,如复制文件,更改文件权限等。它还支持几个HDFS特定操作,如更改文件复制。有关详细信息,请参阅File System Shell Guide.

DFSAdmin Command

bin / hadoop dfsadmin命令支持几个与HDFS管理相关的操作。bin / hadoop dfsadmin -help命令列出了当前支持的所有命令。例如:

-report:报告HDFS的基本统计资料。这些信息中的一些也可以在NameNode首页上找到。

-safemode:虽然通常不需要,管理员可以手动输入或离开Safemode。

-finalizeUpgrade:删除上一次升级过程中创建的群集的先前备份。

-refreshNodes:使用允许连接到namenode的数据库集更新namenode。Namenodes重新读取由dfs.hosts dfs.hosts.exclude定义的文件中的datanode主机名。dfs.hosts中定义的主机是作为集群一部分的数据库。如果dfs.hosts中有条目,则只允许其中的主机向namenode注册。dfs.hosts.exclude中的条目是需要停用的数据。当所有副本从其复制到其他数据库时,Datanodes完全退役。退出的节点不会自动关闭,也不会被选择用于写入新的副本。

-printTopology:打印集群的拓扑。显示由NameNode查看的附加到轨道的机架和数据库的树。

For command usage, see dfsadmin.

Secondary NameNode

NameNode将对文件系统的修改作为附加到本机文件系统文件的日志进行编辑。当NameNode启动时,它从快照文件fsimage中读取HDFS状态,然后应用编辑日志文件中的编辑。然后将新的HDFS状态写入fsimage,并使用空的编辑文件启动正常操作。由于NameNode仅在启动期间合并fsimage和edits文件,编辑日志文件可能会在繁忙的群集中随着时间的推移而变得非常大。较大编辑文件的另一个副作用是下次重新启动NameNode需要更长时间。

辅助NameNode定期合并fsimage和编辑日志文件,并将编辑日志大小保留在限制内。它通常在与主NameNode不同的机器上运行,因为其内存要求与主NameNode的顺序相同。

辅助NameNode上的检查点进程的开始由两个配置参数控制:

    dfs.namenode.checkpoint.period,默认设置为1小时,指定两个连续检查点之间的最大延迟,

    dfs.namenode.checkpoint.txns,默认设置为100万,定义NameNode上的未检查点事务数,这将强制执行紧急检查点,即使尚未达到检查点周期。

辅助NameNode将最新的检查点存储在与主NameNode的目录相同方式构造的目录中。因此,如果必要,检查指向的图像总是准备好被主NameNode读取。

For command usage, see secondarynamenode.

Checkpoint Node

NameNode使用两个文件保留其命名空间:fsimage,它是命名空间的最新检查点;edits,自检查点以来的命名空间更改的日志(日志)。当NameNode启动时,它会合并fsimage和edits journal,以提供文件系统元数据的最新视图。NameNode然后用新的HDFS状态覆盖fsimage并开始一个新的编辑日志。

Checkpoint节点定期创建命名空间的检查点。它从活动的NameNode下载fsimage和编辑,将其本地合并,并将新图像上传回活动的NameNode。Checkpoint节点通常在与NameNode不同的机器上运行,因为它的内存要求与NameNode的顺序相同。Checkpoint节点由配置文件中指定的节点上的bin / hdfs namenode -checkpoint启动。

Checkpoint(或Backup)节点及其附带的Web界面的位置通过dfs.namenode.backup.address和dfs.namenode.backup.http-address配置变量进行配置。

Checkpoint节点上的检查点进程的开始由两个配置参数控制。

    dfs.namenode.checkpoint.period,默认设置为1小时,指定两个连续检查点之间的最大延迟

    dfs.namenode.checkpoint.txns,默认设置为100万,定义NameNode上的未检查点事务数,这将强制执行紧急检查点,即使尚未达到检查点周期。

Checkpoint节点将最新的检查点存储在与NameNode的目录结构相同的目录中。这样,如果需要,这个检查点图像总是可以被NameNode读取。请参阅导入检查点。

可以在集群配置文件中指定多个检查点节点。

For command usage, see namenode.

Backup Node

备份节点提供与检查点节点相同的检查点功能,以及维护始终与活动NameNode状态同步的文件系统命名空间的内存中最新副本。随着从NameNode接受文件系统编辑的日志流并将其持续到磁盘,Backup节点也将这些编辑应用于内存中自己的命名空间副本,从而创建命名空间的备份。

备份节点不需要从活动的NameNode下载fsimage和edits文件,以便创建检查点,如Checkpoint节点或Secondary NameNode所要求的,因为它已经具有命名空间状态的最新状态在记忆中。备份节点检查点进程更有效,因为它只需要将命名空间保存到本地fsimage文件中并重置修改。

由于备份节点在内存中维护命名空间的副本,因此其RAM要求与NameNode相同。NameNode一次支持一个备份节点。如果备份节点正在使用中,则不会注册检查点节点。将来会支持同时使用多个备份节点。备份节点的配置方式与Checkpoint节点相同。它以bin / hdfs namenode -backup开头。

备份(或检查点)节点及其附带的Web界面的位置通过dfs.namenode.backup.address和dfs.namenode.backup.http-address配置变量进行配置。使用备份节点提供运行NameNode的选项,不带持久存储,将所有命名空间的状态委托给Backup节点。为此,请使用-importCheckpoint选项启动NameNode,并且不会为NameNode配置指定类型为dfs.namenode.edits.dir的持久性存储目录。

有关创建Backup节点和Checkpoint节点的动机的完整讨论see HADOOP-4539. For command usage, see namenode.

HDFS概述(6)————用户手册的更多相关文章

  1. HDFS概述

    HDFS概述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS产出背景及定义 1>.HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配 ...

  2. HDFS概述(一)

    HDFS概述(一) 1. HDFS产出的背景及定义 1.1 HDFS产生的背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需 ...

  3. HDFS概述和Shell操作

    大数据技术之Hadoop(HDFS) 第一章 HDFS概述 HDFS组成架构 HDFS文件块大小 第二章 HDFS的Shell操作(开发重点) 1.基本语法 bin/hadoop fs 具体命令    ...

  4. HDFS概述(5)————HDFS HA

    HA With QJM 目标 本指南概述了HDFS高可用性(HA)功能以及如何使用Quorum Journal Manager(QJM)功能配置和管理HA HDFS集群. 本文档假设读者对HDFS集群 ...

  5. HDFS概述(4)————HDFS权限

    概述 Hadoop分布式文件系统(HDFS)的权限模型与POSIX模型的文件和目录权限模型一致.每个文件和目录与所有者和组相关联.该文件或目录将权限划分为所有者的权限,作为该组成员的其他用户的权限.以 ...

  6. HDFS概述(3)————HDFS Federation

    本指南概述了HDFS Federation功能以及如何配置和管理联合集群. 当前HDFS背景 HDFS主要有两层: 1.Namespace (1)包含目录,文件和块. (2)它支持所有命名空间相关的文 ...

  7. HDFS概述(1)————HDFS架构

    概述 Hadoop分布式文件系统(HDFS)是一种分布式文件系统,用于在普通商用硬件上运行.它与现有的分布式文件系统有许多相似之处.然而,与其他分布式文件系统的区别很大.HDFS具有高度的容错能力,旨 ...

  8. HDFS概述(2)————Block块大小设置

    以下内容转自:http://blog.csdn.net/samhacker/article/details/23089157?utm_source=tuicool&utm_medium=ref ...

  9. Hadoop之HDFS概述

    一.HDFS产生背景及定义 1.HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文 ...

随机推荐

  1. 史上最全前端面试题(含答案)-A篇

    HTML+CSS1.对WEB标准以及W3C的理解与认识标签闭合.标签小写.不乱嵌套.提高搜索机器人搜索几率.使用外 链css和js脚本.结构行为表现的分离.文件下载与页面速度更快.内容能被更多的用户所 ...

  2. Java面试准备之集合框架

    集合框架 Collection:List列表,Set集 Map:Hashtable,HashMap,TreeMap Collection 是单列集合 List 元素是有序的(元素存取是有序).可重复 ...

  3. struts分页实现

  4. 代码精简之Lombok

    JavaWeb项目开发中,JavaBean总是不可避免的出现,随之而来的就是大量的getter.setter方法,虽然大部分的开发工具(比如Eclipse等)都支持自动生成这些东西,但是一旦Bean里 ...

  5. Varnish后端主机的健康状态检查

    author:JevonWei 版权声明:原创作品 配置后端主机的Health Check 环境 Varnish 192.168.198.139 图片服务端 192.168.198.120 程序服务端 ...

  6. TP 3.2 笔记 (1)

    1.配置文件分布在好多子模块中 2.I方法 使用指定过滤方法来过滤变量,第三个参数如果是函数名,则会调用该函数进行过滤,(在变量是数组的情况下自动使用array_map进行过滤处理),否则会调用 PH ...

  7. setTimeout,setInterval你不知道的…

    javascript线程解释(setTimeout,setInterval你不知道的事) 标签: javascript引擎任务浏览器functionxmlhttprequest 2011-11-21 ...

  8. 转:【Java并发编程】之九:死锁(含代码)

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/17200937 当线程需要同时持有多个锁时,有可能产生死锁.考虑如下情形: 线程A当前持有互 ...

  9. 团队作业4--第一次项目冲刺(Alpha版本) 5

    一.Daily Scrum Meeting照片 二.燃尽图 三.项目进展 对前两天完成的功能进行整合 测试完成功能(测试算法是否有bug,界面设计是否人性化,适合用户使用.) 四.困难与问题 在对前两 ...

  10. Windows环境下JDK的下载与安装

    根据极客学院上的网课做的学习笔记,网课地址:http://www.jikexueyuan.com/course/205.html 1.首先检查一下本机是否有安装java.按win+R,在弹出窗口中输入 ...