NameNode元数据管理机制

泪湿孤枕 提交于 2020-03-05 10:36:49
  • 副本的生成一般有两种:

    1.客户端直接生成多个副本,缺点就是需要网络传输,比较影响效率;或者是在存储过程中,出现某个副本失败,那么整个存储就是失败;

    2.client只生成block,副本是异步进行生成;如果block没有复制成功,会向NN汇报,NN重新指定一个datanode;

  • 为什么HDFS存储小数据会浪费?

        因为datanode上不会变化,namenode会占用,namenode空间是一定的,如果存储多个小文件,会过多占用(无论大小占用namenode与数量有关好像)

  • NN管理机制流程

  1. Client向NN申请上传文件;
  2. NN向Client返回DN;
  3. Client向DN写入block数据(分割是有client管理)
  • NN元数据的存储,可以放到磁盘中,但是访问慢,放到内存中,如果NN党宕机,则数据都会丢失,如何解决这个问题?

 //磁盘存储fsimage

//内存中用于client的查询,这样很快

//edits log

//内存需要与fsimage同步,保持数据一致性,是内存每存1条数据就更新到fsimage,还是隔一段时间在加?

    在edits log存满之前进行把内存元数据与fsimage同步

//edits与内存是同步的,在edits存满时候与fsimage合并,他们的格式不一样,这个工作是由NN来操作吗,那么就增加了NN的负荷,因此具体的合并是由secondaryNamenode管理

//以下保证了断电时候不会丢失数据,对数据的可靠性比较高,fsimage有大量元数据,最新的在edits 有最新的,同时在内存中查询速度较快,但是这个也存在一个问题,就是宕机这段时间NN无法提供服务了。需要HA机制

  • 元数据存储细节

  • 什么时候checkpoint?

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!