[Hadoop03]HDFS详解一

hdfs详解一


1、hdfs的三个进程:
       NameNode:接受客户端请求、管理hdfs、维护文件元信息和操作日志
       DataNode:存储数据块和数据块校验和、通过水平复制使文件冗余度满足要求
       Secondary NameNode:对文件元信息(fsimage文件)和操作日志(edits文件)进行合并

2、数据块大小blocksize
       hadoop 1.x  blocksize=64MB
       hadoop 2.x  blocksize=128MB
       dfs.blocksize的大小可在hdfs-site.xml文件中修改

3、副本数replication
       hadoop 2.x  replication=3
       hadoop 3.x  replication=1+0.5
       dfs.replication的大小可在hdfs-site.xml文件中修改

4、hdfs架构设计
      NameNode:存储文件的命名空间,比如
          a.文件对应哪些数据块,这些数据块位于哪些节点上
          b.文件名称、文件属性、目录结构等

       b为持久化存储,a为非持久化存储,而是在集群启动和运行时,由DataNode定期将block信息发送给NameNode,由NameNode在内存中动态维护
  
       Secondary NameNode:对文件元信息(fsimage文件)和操作日志(edits文件)进行合并,合并时机为当hdfs发生检查点时。检查点时机:按时间60分钟一次,按edits文件大小,当其达到64MB时。
      检查点时机大小时间均可在hdfs-site.xml文件中中配置

       DataNode:存储数据块和数据块校验和、与NameNode通信(3秒发送一次心跳,30秒发送一次block信息)

5、机架:一般每个机架都有对应的ip网段
      副本存放策略:
            a、第一个副本存放于本地
            b、第二个副本存放于不同于第一个副本的机架上
            c、第三个副本存放于第二个副本相同机架不同节点上
       为什么需要机架:一个机架挂了,文件在别的机架上还有,安全

6、hdfs文件读流程
      a、客户端打开dfs文件系统,dfs文件系统建立与NN的RPC通信机制,NN查询所需读取文件的元信息并将其返回给客户端。
      b、客户端打开一个输入流,输入流通过文件元信息在DN上查找对应数据块,查找完毕调用关闭输入流并将数据块拼成文件返回给客户端。
[Hadoop03]HDFS详解一

7、hdsf文件写流程
       a、客户端打开dfs文件系统,dfs文件系统建立与NN的RPC通信机制,向NN请求写入文件,NN此时会创建一个空白文件条目。
      b、客户端打开一个输出流,输出流对文件进行切块,再按照特定算法将数据块循环上传到DN上(DN通过水平复制使数据块到达冗余度要求),上传完毕关闭输出流并刷新缓存。
      c、上传完毕后客户端通过DFS文件系统RPC通信机制告知NN文件上传完毕。
    [Hadoop03]HDFS详解一

8、jps进程查看命令详解
       a.执行jps进程若显示进程不可用,则可以通过ps -ef|grep pid 查看不可用进程的所属用户,在执行su - 用户名 切换到所属用户执行jps命令,即可查看不可用进程的详细信息。
       b.由于某种原因某进程突然被杀死,执行jps命令时该进程依然存在,此时我们只需要进入~/tmp/hsperdata_hadoop(hadoop为用户名)目录下,删除对应的进程文件即可。