大数据相关技术

Hdfs

2019-07-29  本文已影响0人  ThomasAAnderson

Hdfs特点:

1存储大文件-切块

2及时响应-心跳

3可靠-复本

4不建议小文件

5高吞吐量

6一次写入,多次读取,不支持修改

7不支持事务

基本概念

数据切块为block,1.0是64m。2.0是128m,不足128是多少就多少

(数据节点)Datanode:存数据

(名字节点)namenode:1管理元数据(记录操作),2管理datanode

元数据(文件存放路径,切块数,复本数,副本和datanode的关系)

元数据两份,内存为了快速查找,在磁盘中为了崩溃恢复

元数据的在磁盘的存储文件是edits(写操作)和fsimage(元数据),edits(写操作)和fsimage合并时机:

1过指定时间,2到达指定大小3重启4手动指定

复本(数据备份),默认为3

Namenode通过心跳管理datanode

副本放置策略:

第一个复本:内部,哪里上传就放哪里,外部,选相对空闲的

第二个副本:放在和第一个复本不同的机架上

第三个:放在第二个复本机架的的不同节点上

回收站策略 

1. 在HDFS中,当删除文件或者目录的时候是立即删除,这是因为Hadoop中回收站策略默认是不开启 

2. 可以在core-site.xml中添加属性fs.trash.interval来指定回收间隔时间,默认单位是分钟

SecondaryNameNode

既不管理DataNode也不负责存储元数据,并不是NameNode的热备份,在早期版本中只是辅助NameNode进行元数据的合并 - edits和fsimage在Hadoop1.0中合并时发生在SecondaryNameNode上,但是在Hadoop的2.0的完全分布式中,舍弃了SecondaryNameNode,为了保证NameNode的高可用,通过舍弃SecondaryNameNode的方式来设置2个NameNode,所以在Hadoop2.0的完全分布式中,元数据的合并是发生在NameNode上,只是在Hadoop2.0的伪分布式中依然存在SecondaryNameNode

dfs相关

每一次写入操作的时候,会分配一个递增的事务id

hdfs一旦上传完就不能修改

Hdfs读写、删除流程

删除:

1客户端发起rpc请求到namenode

2namenode查询元数据,并进行权限校验

3校验通过,操作记录到edits,删除文件,给客户端返回成功删除的信号

4发起心跳时,才真正的删除

读取:

1客户端发起RPC请求到NameNode

2NameNode收到请求之后,查询元数据,获取到这个文件的block存储地址,将这些地址放入一个队列中返回给客户端

3客户端在取到地址之后,会选择一个较近的节点来读取数据

4当读完这一批所有的Block之后,客户端户给NameNode发送信息要下一批Block的地址

5直到读取完所有的Block,客户端给NameNode发送信息,NameNode收到之后会去关闭文件(关闭流)

写入

1客户端发起RPC请求到NameNode

2校验是否存在和用户权限

3namedode计算大小,分配存储节点,存入队列返回客户端

4客户端上传到最近节点,然后复本自动备份

5写完所有block后,告知namenode,namenode关流

上一篇 下一篇

猜你喜欢

热点阅读