三、HDFS——Hadoop分布式文件系统

一、hdfs的设计目标

1.1、硬件错误是常态而不是异常。Hadoop的设计理念之一就是它可以运行在廉价的普通PC机上,因而硬件故障是常态。在硬件故障时,可通过容错机制保证数据的正确性、完整性,从而保证系统的正常运行。

1.2、大文件存储。hdfs存储的文件大小一般在GB~TB的级别。

1.3、流式数据访问。由于hadoop处理的都是大文件,因此流式数据访问方式更适合。流式数据访问是指一次性地读取一大块文件后再做处理,其特点是吞吐率高,延迟高;与之相反的是随机数据访问,特点是随机性地读取数据,延迟低。

1.4、一次写入、多次读取。用户需要对文件实行一次写、多次读的访问模式。文件一旦上传到hdfs,便不能再做修改,如需修改,需删除文件重新上传。在上传完数据之后,便在该数据集上进行长时间的数据分析,也避免了数据一致性的问题。

二、hdfs的缺点

2.1、高延迟。

2.2、不适合存储大量小文件。

三、hdfs的基本架构图

3.1、几个重要概念

(1)NameNode。NameNode负责管理整个dfs文件系统的元数据,即,存储所有的文件目录、每个文件的具体信息(即:每个文件被分了多少块、每块文件的大小及存放位置)等。

(2)DataNode。DataNode负责存放具体数据内容。

(3)其他。Block是数据块,通常以64MB为单位,具有多个冗余副本。Rack表示机柜,一个数据块的多个副本被分散在多个机柜中,以便机柜宕机时,可及时复原数据。

3.2、读数据流程

client在向hdfs读数据时,首先向NameNode发出请求,获取文件的每个数据块的存放位置,然后client再去指定的DataNode读取数据,最后通知NameNode关闭文件。

3.3、写数据流程

client在向hdfs写数据时,首先告知NameNode创建文件,NameNode经过一系列的检查,反馈给client一个DataNode列表进行写数据操作。然后,client再去找特定的DataNode进行写数据,最后关闭文件。

client在写入某一块特定的数据时,要同时备份多份数据块,假设要备份3份,则写数据的流程如下:

client只向第一个DataNode写数据,随后的备份操作由DataNode传递下去,这样做的目的是减小client的读写压力,当备份完最后一块数据时,由最后一块数据所在DataNode向前一个DataNode发送ack确认包,此操作一直传递到client那里,这样,一份数据块的备份操作结束。

四、hadoop2.6中的hdfs的常用命令

hdfs官方命令查询:http://hadoop.apache.org/docs/r2.6.4/hadoop-project-dist/hadoop-common/FileSystemShell.html#mkdir

4.1、ls——查看文件列表

hadoop fs -ls /

列出hdfs文件系统根目录下的目录和文件。

hadoop fs -ls -R /

列出hdfs文件系统所有的目录和文件。

hadoop fs -ls /input

列出hdfs文件系统中input目录中的目录和文件。

4.2、put——上传文件到hadoop

hdfs dfs -put localfile /input/file1

将本地文件localfile拷贝到hadoop文件系统的input目录下的file1。

hdfs dfs -put localfile1 localfile2 /input

将本地文件localfile1、localfile2拷贝到hadoop文件系统的input目录下。

4.3、get——下载文件到本地

hdfs dfs -get /input/file localfile

将hfds文件系统input目录下的file文件拷贝到本地localfile文件中。

4.4、mkdir——创建目录

hadoop fs -mkdir /input

在hdfs文件系统的根目录下创建input文件夹。该方式只能一级一级地创建目录,父目录必须存在。

hadoop fs -mkdir -p /dir1/dir2

递归创建目录,如果父目录不存在就创建该父目录。

4.5、rm——删除文件、文件夹

hdfs dfs -rm /input/file1

删除文件。

hdfs dfs -rm -R /input
或: hdfs dfs -rm -r /input

删除文件夹。

4.6、cp——复制文件

hdfs dfs -cp /input/file1 /input/file2

重命名文件,file1、file2都会存在。

hdfs dfs -cp /input/file1 /another/file2

不同目录下拷贝文件。

hdfs dfs -cp /input/file1 /input/file2 /another

拷贝多个文件到another目录下。

4.7、mv——移动文件

hdfs dfs -mv /input/file1 /another/file2

不同目录下移动文件。

hdfs dfs -mv /input/file1 /input/file2 /another

移动多个文件到another目录下。

4.8、cat——打印文件内容

hdfs dfs -cat /input/file1

打印/input/file1文件的内容。

4.9、查看hdfs系统状态

hdfs dfsadmin -report

查看hdfs文件系统的基本信息:存储空间使用情况、datanode节点信息等。

时间: 2024-10-11 15:59:47

三、HDFS——Hadoop分布式文件系统的相关文章

HDFS——Hadoop分布式文件系统深度实践pdf

下载地址:网盘下载 <高可用性的HDFS:Hadoop分布式文件系统深度实践>专注于Hadoop分布式文件系统(HDFS)的主流HA解决方案,内容包括:HDFS元数据解析.Hadoop元数据备份方案.Hadoop Backup Node方案.AvatarNode解决方案以及最新的HA解决方案Cloudrea HA Name Node等.其中有关Backup Node方案及AvatarNode方案的内容是该书重点,尤其是对AvatarNode方案从运行机制到异常处理方案的步骤进行了详尽介绍,同时

深入理解HDFS:Hadoop分布式文件系统

文本详细介绍了HDFS中的许多概念,对于理解Hadoop分布式文件系统很有帮助. 1. 介绍 在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储.统一管理分布在集群上的文件系统称为分布式文件系统.而一旦在系统中,引入网络,就不可避免地引入了所有网络编程的复杂性,例如挑战之一是如果保证在节点不可用的时候数据不丢失. 传统的网络文件系统(NFS)虽然也称为分布式文件系统,但是其存在一些限制.由于NFS中,文件是存储在单机上,因此无法提供可靠性保证,当很多客户端同时访问NFS Serve

Hadoop分布式文件系统(HDFS)设计

Hadoop分布式文件系统是设计初衷是可靠的存储大数据集,并且使应用程序高带宽的流式处理存储的大数据集.在一个成千个server的大集群中,每个server不仅要管理存储的这些数据,而且可以执行应用程序任务.通过分布式存储和在各个server间交叉运算,集群和存储可以按需动态经济增长.以下的设计原则和经验是根据yahoo通过HDFS管理的40PB得来的. 1. HDFS简介 HDFS是一个分布式文件系统,并且为MapReduce分布式算法提供了一分析和传输大数据的框架.HDFS使用java编写,

Hadoop分布式文件系统HDFS的工作原理详述

Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.它能提供高吞吐量的数据访问,非常适合大规模数据集上的应用.要理解HDFS的内部工作原理,首先要理解什么是分布式文件系统. 1.分布式文件系统 多台计算机联网协同工作(有时也称为一个集群)就像单台系统一样解决某种问题,这样的系统我们称之为分布式系统. 分布式文件系统是分布式系统的一个子集,它们解决的问题就是数据存储.换句话说,它们是横跨在多台计算机上的存

【HDFS】Hadoop分布式文件系统:架构和设计

引言 前提和设计目标 硬件错误 流式数据访问 大规模数据集 简单的一致性模型 "移动计算比移动数据更划算" 异构软硬件平台间的可移植性 Namenode 和 Datanode 文件系统的名字空间 (namespace) 数据复制 副本存放: 最最开始的一步 副本选择 安全模式 文件系统元数据的持久化 通讯协议 健壮性 磁盘数据错误,心跳检测和重新复制 集群均衡 数据完整性 元数据磁盘错误 快照 数据组织 数据块 Staging 流水线复制 可访问性 DFSShell DFSAdmin

【转载】Hadoop分布式文件系统HDFS的工作原理详述

转载请注明来自36大数据(36dsj.com):36大数据 » Hadoop分布式文件系统HDFS的工作原理详述 转注:读了这篇文章以后,觉得内容比较易懂,所以分享过来支持一下. Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的 机器上.它能提供高吞吐量的数据访问,非常适合大规模数据集上的应用.要理解HDFS的内部工作原理,首先要理解什么是分布式文件系统. 1.分布式文件系统 多台计算机联网协同工作(有时也

Hadoop分布式文件系统HDFS的工作原理

Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.它能提供高吞吐量的数据访问,非常适合大规模数据集上的应用.要理解HDFS的内部工作原理,首先要理解什么是分布式文件系统. 1 .分布式文件系统 多台计算机联网协同工作(有时也称为一个集群)就像单台系统一样解决某种问题,这样的系统我们称之为分布式系统. 分布式文件系统是分布式系统的一个子集,它们解决的问题就是数据存储. 换句话说,它们是横跨在多台计算机上

Hadoop分布式文件系统-HDFS

Hadoop历史 雏形开始于2002年的Apache的Nutch,Nutch是一个开源Java 实现的搜索引擎.它提供了我们运行自己的搜索引擎所需的全部工具.包括全文搜索和Web爬虫. 随后在2003年Google发表了一篇技术学术论文谷歌文件系统(GFS).GFS也就是google File System,google公司为了存储海量搜索数据而设计的专用文件系统. 2004年Nutch创始人Doug Cutting基于Google的GFS论文实现了分布式文件存储系统名为NDFS. 2004年G

大数据笔记04:大数据之Hadoop的HDFS(分布式文件系统)

1.HDFS是什么? Hadoop分布式文件系统(HDFS),被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.它和现有的分布式文件系统有很多共同点. 2.HDFS中的基本概念 (1)块(block)     " 块 " 是固定大小的存储单元,HDFS的文件被分成块进行存储,HDFS的块默认大小是64MB.文件传递过来之后,HDFS会把文件拆分成块进行管理," 块"就是文件存储处理的逻辑单元. (2)HDFS有两类节点: Name