赞
踩
1.HDFS的存储机制(读写流程)?
HDFS存储机制,包括HDFS的写入过程和读取过程两个部分
2.HDFS中大量小文件带来的问题以及解决的方案
问题:
hadoop中目录,文件和块都会以对象的形式保存在namenode的内存中,大概每个对象会占用150bytes.小文件数量多会大量占用namenode的内存;使namenode读取元数据速度变慢,启动时间延长;还因为占用内存过大,导致gc时间增加等.
解决办法:
两个角度,一是从根源解决小文件的产生,二是解决不了就选择合并.从数据来源入手,如每小时抽取一次改为每天抽取一次等方法来积累数据量.如果小文件无可避免,一般就采用合并的方式解决.可以写一个MR任务读取某个目录下的所有小文件,并重写为一个大文件.
3.HDFS三个核心组件时什么,分别有什么作用?
1-NameNode.集群的核心,是整个文件系统的管理节点.维护着
a)文件系统的文件目录结构和元数据信息
b)文件与数据块列表的对应关系
2-DataNode.存放具体数据块的节点,主要负责数据的读写,定期向NameNode发送心跳3-SecondaryNameNode.辅助节点,同步NameNode中的元数据信息,辅助NameNode对fsimage和editsLog进行合并.
4.fsimage和editlogs是做什么用的?
fsimage文件存储的是Hadoop的元数据文件,如果namenode发生故障,最近的fsimage文件会被载入到内存中,用来重构元数据的最近状态,再从相关点开始向前执行editlogs文件中记录的每个事务.
文件系统客户端执行写操作时,这些事务会首先记录到日志文件中.
在namenode运行期间,客户端对hdfs的写操作都保存到edit文件中,久而久之就会造成edit文件变得很大,这对namenode的运行没有影响,但是如果namenode重启,它会将fsimage中的内容映射到内存中,然后再一条一条执行edit文件中的操作,所以日志文件太大会导致重启速度很慢.所以在namenode运行的时候就要将editlogs和fsimage定期合并.
5.namenode的工作机制?
第一阶段:NameNode启动
第二阶段:SecondaryNameNode工作
(4)将滚动前的编辑日志和镜像文件拷贝到SecondaryNameNode。
(5)SecondaryNameNode加载编辑日志和镜像文件到内存,并合并。
(6)生成新的镜像文件fsimage.chkpoint。
(7)拷贝fsimage.chkpoint到NameNode。
(8)NameNode将fsimage.chkpoint重新命名成fsimage。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。