Hadoop(一)-HDFS
2017-03-12 12:22
113 查看
HDFS(Hadoop Distirbuted File System)hadoop分布式文件系统。
1.HDFS的设计理念
存储大文件:这里的大文件是指GB甚至TB级别的文件
高效的访问模式:一次写入,多次读取(流式数据访问)
运行在普通廉价的服务器上:能运行在普通的硬件上,即使硬件出现故障,也可以通过容错策略来保证数据的完整性
注:由于HDFS是为高数据吞吐量应用而设计的,必然以高延迟为代价所以不会将hdfs用于对数据访问要求低延迟的场景;hdfs的元数据存储在namenode的内存中,而namenode是单节点,小文件的数量大到一定的程度,namenode的内存就吃不消,所以也不可用来存储大量的小文件。
2.HDFS的基本概念
Block:在HDFS中,大文件是被分割成多个block进行存储的,一般block的大小默认是64MB(2.0版本后是128MB也可以自己设置)。而每个block会在多个datanode上存储多份副本,默认是3份(一般和datanode的个数有关)。
Namenode:存储元数据信息,管理数据块的映射;处理客户端的读写请求;配置副本策略;管理hdfs的名称空间等。
SeconaryNamenode:Namenode的备份;当namenode节点死亡,迅速启动接替namenode的工作;合并fsimage和edits log与namenode保持一致。
Datanode:负责存储client发来的数据块block;执行数据块的读写操作。
fsimage:元数据的镜像文件。
edits:元数据的操作日志
3.HDFS的实现思想
hdfs通过分布式集群来存储文件
文件存储到hdfs集群中去的时候是被分切成若干的block
文件的block存放在若干台的datanode节点上
hdfs文件系统的文件与真实的文件block之间有映射关系,由namode管理
每个block在集群中都会存储多个副本
4.HDFS的基本架构
这里的rack是指机柜(包含若干台服务器)。上面的图其实并不能完全说明HDFS的工作机制,下面以往hdfs上面存放大文件为例,说明写操作的机制。
在这里,客户端将本地文件test.txt写到hdfs上(路径:hdfs://nn:9000/xudong, hadoop fs -put test.txt /xudong),首先大文件test.txt被切分成3个block(block1,block2,block3),然后分别存储到三台datanode节点上,每个block有几个备份放在其他的datanode节点上,上面只画了block1的2个备份。Namenode负责管理这些节点上的block。
5.NameNode元数据管理机制
namenode管理元数据是有自己的机制的,为了配套上面的客户端写文件到hdfs,下面举例说明NN管理上传文件的过程:
1客户端上传文件时,NN首先往edits log文件中记录元数据的操作日志
2客户端上传开始上传文件,完成后并返回成功信息给NN,NN就在内存中写入这次上传操作新产生的元数据。
3每当edits log写满时,需要将这段时间的元数据刷到fsimage中去。
在NomeNode中元数据存储的细节:
NameNode(FileName,replicas,block_ids,idhost……..)
/xudong/test.txt,3,{blk_1,blk_2,blk_3},blk_1:[h0,h1,h3]},{blk_2:[h1,h2,h3],{blk_3:h0,h2,h3}}
到这里,HDFS的基本知识就结束了,以后遇到更全的知识会陆续补充。下一篇将会介绍hadoop的第二个核心mapreduce。
1.HDFS的设计理念
存储大文件:这里的大文件是指GB甚至TB级别的文件
高效的访问模式:一次写入,多次读取(流式数据访问)
运行在普通廉价的服务器上:能运行在普通的硬件上,即使硬件出现故障,也可以通过容错策略来保证数据的完整性
注:由于HDFS是为高数据吞吐量应用而设计的,必然以高延迟为代价所以不会将hdfs用于对数据访问要求低延迟的场景;hdfs的元数据存储在namenode的内存中,而namenode是单节点,小文件的数量大到一定的程度,namenode的内存就吃不消,所以也不可用来存储大量的小文件。
2.HDFS的基本概念
Block:在HDFS中,大文件是被分割成多个block进行存储的,一般block的大小默认是64MB(2.0版本后是128MB也可以自己设置)。而每个block会在多个datanode上存储多份副本,默认是3份(一般和datanode的个数有关)。
Namenode:存储元数据信息,管理数据块的映射;处理客户端的读写请求;配置副本策略;管理hdfs的名称空间等。
SeconaryNamenode:Namenode的备份;当namenode节点死亡,迅速启动接替namenode的工作;合并fsimage和edits log与namenode保持一致。
Datanode:负责存储client发来的数据块block;执行数据块的读写操作。
fsimage:元数据的镜像文件。
edits:元数据的操作日志
3.HDFS的实现思想
hdfs通过分布式集群来存储文件
文件存储到hdfs集群中去的时候是被分切成若干的block
文件的block存放在若干台的datanode节点上
hdfs文件系统的文件与真实的文件block之间有映射关系,由namode管理
每个block在集群中都会存储多个副本
4.HDFS的基本架构
这里的rack是指机柜(包含若干台服务器)。上面的图其实并不能完全说明HDFS的工作机制,下面以往hdfs上面存放大文件为例,说明写操作的机制。
在这里,客户端将本地文件test.txt写到hdfs上(路径:hdfs://nn:9000/xudong, hadoop fs -put test.txt /xudong),首先大文件test.txt被切分成3个block(block1,block2,block3),然后分别存储到三台datanode节点上,每个block有几个备份放在其他的datanode节点上,上面只画了block1的2个备份。Namenode负责管理这些节点上的block。
5.NameNode元数据管理机制
namenode管理元数据是有自己的机制的,为了配套上面的客户端写文件到hdfs,下面举例说明NN管理上传文件的过程:
1客户端上传文件时,NN首先往edits log文件中记录元数据的操作日志
2客户端上传开始上传文件,完成后并返回成功信息给NN,NN就在内存中写入这次上传操作新产生的元数据。
3每当edits log写满时,需要将这段时间的元数据刷到fsimage中去。
在NomeNode中元数据存储的细节:
NameNode(FileName,replicas,block_ids,idhost……..)
/xudong/test.txt,3,{blk_1,blk_2,blk_3},blk_1:[h0,h1,h3]},{blk_2:[h1,h2,h3],{blk_3:h0,h2,h3}}
到这里,HDFS的基本知识就结束了,以后遇到更全的知识会陆续补充。下一篇将会介绍hadoop的第二个核心mapreduce。
相关文章推荐
- Hadoop(02) HDFS
- Hadoop学习——HDFS数据备份与放置策略
- 【Hadoop】集群之外的机器如何连接到集群并与HDFS交互,提交作业给Hadoop集群
- Hadoop HDFS的Java操作
- Hadoop HDFS (4) Hadoop Archives
- Hadoop技术内幕HDFS-笔记4之压缩
- hadoop 学习笔记 三 ---HDFS hadoop分布式文件系统
- Hadoop和HDFS
- hadoop fs {args}、hadoop dfs {args}、hdfs dfs {args}三者的区别
- Hadoop HDFS概念学习系列之fs中相关API接口的说明(二十一)
- Hadoop学习(三)— hdfs : NameNode与DataNode的实现机制
- Indexing and Searching on a Hadoop Distributed File System (如何在HDFS文件上建索引)
- ORACLE连接HADOOP(2) - HDFS专用SQL连接器ODCH
- 2-2.HDFS的shell操作(Hadoop系列day02)
- 一起艳学大数据Hadoop(三)——java操作HDFS的增删改查
- Hadoop分布式文件系统HDFS:架构和设计(转)
- hadoop 2.x之HDFS HA讲解之十二基于已有HDFS集群配置NN HA
- Hadoop HDFS 编程
- hadoop系列学习之合并文件后放入HDFS中
- hadoop程序问题:java.lang.IllegalArgumentException: Wrong FS: hdfs://.... expected file:///