奇趣闻 > 数码科技 > \

大数据开发之HDFS分布式文件存储系统详解

原标题:大数据开发之HDFS分布式文件存储系统详解

HDFS(Hadoop Distributed File System)分布式文件存储系统,主要为各类分布式计算框架如Spark、MapReduce等提供海量数据存储服务,同时HBase、Hive底层存储也依赖于HDFS。HDFS提供一个统一的抽象目录树,客户端可通过路径来访问文件。HDFS集群分为两大角色:Namenode、Datanode(非HA模式会存在Secondary Namenode)

Namenode

Namenode是HDFS集群主节点,负责管理整个文件系统的元数据,所有的读写请求都要经过Namenode。

元数据管理

Namenode对元数据的管理采用了三种形式:

1) 内存元数据:基于内存存储元数据,元数据比较完整

2) fsimage文件:磁盘元数据镜像文件,在NameNode工作目录中,它不包含block所在的Datanode 信息

3) edits文件:数据操作日志文件,用于衔接内存元数据和fsimage之间的操作日志,可通过日志运算出元数据

fsimage + edits = 内存元数据

注意:当客户端对hdfs中的文件进行新增或修改时,操作记录首先被记入edit日志文件,当客户端操作成功后,相应的元数据会更新到内存元数据中

可以通过hdfs的一个工具来查看edits中的信息

bin/hdfs oev -i edits -o edits.xml

查看fsimage

bin/hdfs oiv -i fsimage_0000000000000000087 -p XML -o fsimage.xml

元数据的checkpoint(非HA模式)

Secondary Namenode每隔一段时间会检查Namenode上的fsimage和edits文件是否需要合并,如触发设置的条件就开始下载最新的fsimage和所有的edits文件到本地,并加载到内存中进行合并,然后将合并之后获得的新的fsimage上传到Namenode。checkpoint操作的触发条件主要配置参数:

dfs.namenode.checkpoint.check.period=60 #检查触发条件是否满足的频率,单位秒

dfs.namenode.checkpoint.dir=file://${hadoop.tmp.dir}/dfs/namesecondary

dfs.namenode.checkpoint.edits.dir=${dfs.namenode.checkpoint.dir}

#以上两个参数做checkpoint操作时,secondary namenode的本地工作目录,主要处理fsimage和edits文件的

HDFS(Hadoop Distributed File System)分布式文件存储系统,主要为各类分布式计算框架如Spark、MapReduce等提供海量数据存储服务,同时HBase、Hive底层存储也依赖于HDFS。HDFS提供一个统一的抽象目录树,客户端可通过路径来访问文件。HDFS集群分为两大角色:Namenode、Datanode(非HA模式会存在Secondary Namenode)

Namenode

Namenode是HDFS集群主节点,负责管理整个文件系统的元数据,所有的读写请求都要经过Namenode。

元数据管理

Namenode对元数据的管理采用了三种形式:

1) 内存元数据:基于内存存储元数据,元数据比较完整

2) fsimage文件:磁盘元数据镜像文件,在NameNode工作目录中,它不包含block所在的Datanode 信息

3) edits文件:数据操作日志文件,用于衔接内存元数据和fsimage之间的操作日志,可通过日志运算出元数据

fsimage + edits = 内存元数据

注意:当客户端对hdfs中的文件进行新增或修改时,操作记录首先被记入edit日志文件,当客户端操作成功后,相应的元数据会更新到内存元数据中

可以通过hdfs的一个工具来查看edits中的信息

bin/hdfs oev -i edits -o edits.xml

查看fsimage

bin/hdfs oiv -i fsimage_0000000000000000087 -p XML -o fsimage.xml

元数据的checkpoint(非HA模式)

Secondary Namenode每隔一段时间会检查Namenode上的fsimage和edits文件是否需要合并,如触发设置的条件就开始下载最新的fsimage和所有的edits文件到本地,并加载到内存中进行合并,然后将合并之后获得的新的fsimage上传到Namenode。checkpoint操作的触发条件主要配置参数:

dfs.namenode.checkpoint.check.period=60 #检查触发条件是否满足的频率,单位秒

dfs.namenode.checkpoint.dir=file://${hadoop.tmp.dir}/dfs/namesecondary

dfs.namenode.checkpoint.edits.dir=${dfs.namenode.checkpoint.dir}

#以上两个参数做checkpoint操作时,secondary namenode的本地工作目录,主要处理fsimage和edits文件的

显示全文

相关文章