微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

0910 hadoop完全分布式 HA 搭建 hdfs工作原理读写模式

1 完全分布式搭建 hdfs-site.xml中指定SNN的位置 在slaves文件中配置DN的位置 即可 4台机器配置文件一致 通过配置文件上的指定来启动不同的jps 

2 HA的搭建 基于zk的zkfc的检测机制 同时也是一种选举机制, 主备间通过对journalnode的主->写 备->读的模式保持主备一致性 

  zk对zkfc进行了心跳的检测 在zk上有生成一个临时的主NN的文件,当主NN or 主zkfc挂掉 临时文件删掉 切换成备用的NN 备用NN   在zk上生成临时文件 变成主机

  HA的环境搭建需要在zk的基础上 更改hadoop的配置文件即可 具体见文档 

  hadoop-daemon.sh start 单节点启动   hadoop-daemon.sh start namenode   hadoop-daemon.sh start journalnode 

  hdfs namenode -bootstrapStandy 同步两个namenode的元数据  

  zkServer.sh start/stop zk的启动关闭   zkCli.sh 链接到zk的客户端

3 hdfs 的写流程

文件在客户端先会被逻辑切割成每个128M的block块 客户端先向NN发起请求 申请空间 审核等 NN完成后会返给block块的地址(包括备份的DN的地址)客户端通过输出流对DN简历链接 会建立两个队列 数据队列 和 确认队列 每一个block块会再次切分成64K大小的包去传输,所有的包都会在数据队列和确认队列中 数据队列中的会发给DN DN去完成备份的操作 都完成了 会返给确认队列 确认队列删掉完成的数据 然后会告知NN 和 客户端完成 每个block块都是如此  当传输时DD挂了 关闭管线 把所有确认队列的包 重新添加到数据队列中  删除该管线上的错误节点 给在正常DN上的block块指定一个新标志 并传回NN 剩余两个DN正常传输  当NN检测到 会创建另一个副本 完成传输任务

4 hdfs 的读流程

客户端去NN上请求block块地址 是通过拓扑排序后的 最新地址 不断的读取block的数据 DD挂了的话 会记住这个DN的地址 之后会绕开DN 去其他副本上读取

5 SNN

SNN完成了 定期镜像文件和日志文件的合并  

合并检查时间点

1、认情况下,SecondaryNameNode每个小时进行一次checkpoint合并

由dfs.namenode.checkpoint.period设置,单位秒

 

2、在不足一小时的情况下,如果edits log存储的事务达到了1000000个也进行一次checkpoint合并

由dfs.namenode.checkpoint.txns设置事务数量

 

3、事务数量检查认每分钟进行一次

由dfs.namenode.checkpoint.check.period设置,单位秒。

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐