[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信息)
![[Hadoop03]HDFS详解一 [Hadoop03]HDFS详解一](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzYzOS80OWQ2ZjEzMmVlMWJlOGY5OTg0MDA5ZjNiNTc5OGRlZi5wbmc=)
5、机架:一般每个机架都有对应的ip网段
副本存放策略:
a、第一个副本存放于本地
b、第二个副本存放于不同于第一个副本的机架上
c、第三个副本存放于第二个副本相同机架不同节点上
为什么需要机架:一个机架挂了,文件在别的机架上还有,安全
6、hdfs文件读流程
a、客户端打开dfs文件系统,dfs文件系统建立与NN的RPC通信机制,NN查询所需读取文件的元信息并将其返回给客户端。
b、客户端打开一个输入流,输入流通过文件元信息在DN上查找对应数据块,查找完毕调用关闭输入流并将数据块拼成文件返回给客户端。
7、hdsf文件写流程
a、客户端打开dfs文件系统,dfs文件系统建立与NN的RPC通信机制,向NN请求写入文件,NN此时会创建一个空白文件条目。
b、客户端打开一个输出流,输出流对文件进行切块,再按照特定算法将数据块循环上传到DN上(DN通过水平复制使数据块到达冗余度要求),上传完毕关闭输出流并刷新缓存。
c、上传完毕后客户端通过DFS文件系统RPC通信机制告知NN文件上传完毕。
8、jps进程查看命令详解
a.执行jps进程若显示进程不可用,则可以通过ps -ef|grep pid 查看不可用进程的所属用户,在执行su - 用户名 切换到所属用户执行jps命令,即可查看不可用进程的详细信息。
b.由于某种原因某进程突然被杀死,执行jps命令时该进程依然存在,此时我们只需要进入~/tmp/hsperdata_hadoop(hadoop为用户名)目录下,删除对应的进程文件即可。