HDFS概述(6)————用户手册
目的
本文档是使用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集群:
- Single Node Setup for first-time users.
- Cluster Setup for large, distributed clusters.
本文档的其余部分假设用户能够使用至少一个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)————用户手册的更多相关文章
- HDFS概述
HDFS概述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS产出背景及定义 1>.HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配 ...
- HDFS概述(一)
HDFS概述(一) 1. HDFS产出的背景及定义 1.1 HDFS产生的背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需 ...
- HDFS概述和Shell操作
大数据技术之Hadoop(HDFS) 第一章 HDFS概述 HDFS组成架构 HDFS文件块大小 第二章 HDFS的Shell操作(开发重点) 1.基本语法 bin/hadoop fs 具体命令 ...
- HDFS概述(5)————HDFS HA
HA With QJM 目标 本指南概述了HDFS高可用性(HA)功能以及如何使用Quorum Journal Manager(QJM)功能配置和管理HA HDFS集群. 本文档假设读者对HDFS集群 ...
- HDFS概述(4)————HDFS权限
概述 Hadoop分布式文件系统(HDFS)的权限模型与POSIX模型的文件和目录权限模型一致.每个文件和目录与所有者和组相关联.该文件或目录将权限划分为所有者的权限,作为该组成员的其他用户的权限.以 ...
- HDFS概述(3)————HDFS Federation
本指南概述了HDFS Federation功能以及如何配置和管理联合集群. 当前HDFS背景 HDFS主要有两层: 1.Namespace (1)包含目录,文件和块. (2)它支持所有命名空间相关的文 ...
- HDFS概述(1)————HDFS架构
概述 Hadoop分布式文件系统(HDFS)是一种分布式文件系统,用于在普通商用硬件上运行.它与现有的分布式文件系统有许多相似之处.然而,与其他分布式文件系统的区别很大.HDFS具有高度的容错能力,旨 ...
- HDFS概述(2)————Block块大小设置
以下内容转自:http://blog.csdn.net/samhacker/article/details/23089157?utm_source=tuicool&utm_medium=ref ...
- Hadoop之HDFS概述
一.HDFS产生背景及定义 1.HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文 ...
随机推荐
- Python学习笔记开篇
已经快30岁了,中专学历,不会什么技术,因为好吃懒做最喜欢的就是吃肉睡觉. 每次想学习技术如PhotoShop,绘声绘影,PHP,易语言,按键精灵都只是3分钟热血. 今天我想在业余时间学习Python ...
- Spring Web MVC(三)之注解
[toc] spring web mvc 基于注解的优化 我写的注解是按照spring web的部件分类写的,这样的话比较方便查看,大家感觉有用的话可以分享个别人,希望对对更多的人有帮助.毕竟零基础开 ...
- Java集合框架学习(一)List
先附一张Java集合框架图. 从上面的集合框架图可以看到,Java集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Coll ...
- java面向对象(一)
[toc] 面向对象 我们都说java是面向对象的编程语言,那什么是面向对象呢?什么是类呢?什么是方法呢? 类.对象.方法 类是对象的抽象定义,对象是类的具体实例. 类:指的是一类东西,比如汽车,人类 ...
- 动态创建angular组件实现popup弹窗
承接上文,本文将从一个基本的angular启动项目开始搭建一个具有基本功能.较通用.低耦合.可扩展的popup弹窗(脸红),主要分为以下几步: 基本项目结构搭建 弹窗服务 弹窗的引用对象 准备作为模板 ...
- SpringBoot学习开篇
"Spring Framework已有十余年的历史了,已成为Java应用程序开发框架的事实标准.在如此悠久的历史背景下,有人可能会认为Spring放慢了脚步,躺在了自己的荣誉簿上,再也做不出 ...
- Swing-JRadioButton用法-入门
JRadioButton是Swing中的单选框.所谓单选框是指,在同一个组内虽然有多个单选框存在,然而同一时刻只能有一个单选框处于选中状态.它就像收音机的按钮,按下一个时此前被按下的会自动弹起,故因此 ...
- 201521123030 《Java程序设计》第8周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4 ...
- 201521123106《java程序设计》第三周学习总结
1. 本周学习总结 2. 书面作业 代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; pub ...
- 201521123003《Java程序设计》第14周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...