分布式储存HDFS

hdfs数据块的复制策略?

  • 数据安全:在某个节点发生故障时,不会丢失数据备份;
  • 网络传输开销:在备份数据同步过程中,尽量减少网络传输中的带宽开销;

hdfs调整块的大小会带来哪些影响?

  • hdfs块太小,会增加程序启动的map数量,增加执行时间,对程序不好,一方面存放大量小文件会占用NameNode中大量内存来存储元数据,而NameNode的内存是有限的,不可取;另一方面文件块过小,寻址时间增大,导致程序一直在找block的开始位置
  • hdfs块大减少了寻址开销(就是寻找文件的速度快)一方面,从磁盘传输数据的时间会明显大于寻址时间,导致程序在处理这块数据时,变得非常慢;另一方面,mapreduce中的map任务通常一次只处理一个块中的数据,如果块过大运行速度也会很慢。
    总结
    文件块越大,寻址时间越短,但磁盘传输时间越长;
    文件块越小,寻址时间越长,但磁盘传输时间越短。

HDFS namenode启动过程

  • namenode在磁盘上的两类文件组成:
    fsimage文件:保存文件系统至上次checkpoint为止目录和文件元数据。
    edits文件:保存文件系统从上次checkpoint起对hdfs的所有操作记录日志信息。
    一、首此启动hdfs过程:
    1,启动namenode:
    2,读取fsimage生成内存中元数据镜像。
    3,启动datanode:
    4,向namenode注册;
    5,向namenode发送blockreport。
    启动成功后,client可以对HDFS进行操作将被记录在edits文件中。
    二、之后启动HDFS文件系统过程:
    启动namenode:
    1,读取fsimage元数据镜像文件,加载到内存中。
    2,读取editlog日志文件,加载到内存中,使当前内存中元数据信息与上次关闭系统时保持一致。然后在磁盘上生成一份同内存中元数据镜像相同的fsimage文件,同时生成一个新的null的editlog文件用于记录以后的hdfs文件系统的更改。
    3,启动datanode:
    4,向namenode注册;
    5,向namenode发送blockreport。
    启动成功后,client可以对HDFS进行操作将被记录在edits文件中。

namenode HA

详情见官网(journalnode,zk)

secondary namenode作用?

它的职责是合并NameNode的edit logs到fsimage文件中,从而减少hdfs重启的时间。什么时候合并取决于配置,

hdfs常用文件格式有哪些?各有什么优缺点?

//todo

如何扩展hdfs的容量?

//todo

猜你喜欢

转载自blog.csdn.net/qq_40228214/article/details/84937999