Hadoop—NN-学习三
2016-01-29 23:39
190 查看
架构图
写入文件原理:
1、 客户端要存文件,先找namenode,namenode返回信息(查询元数据),如果不存在,就给信息可以存,并分配datanode存block。
2、 客户端收到信息,将数据按照NN的分配分别存入datanode(这里要注意保留副本个数,存副本的方式有两种
第一、客户端写入N个副本全部成功才算成功。
第二、写一份成功就算成功,剩下的两个副本由此datanode1向一个datanode2拷贝,datanode2向datanodeN拷贝,如果其中失败他会向NN汇报,然后NN再指定datanode1或者datanode2向其他datanode拷贝)。
注意:写入副本的时候还要按机架(看架构图)
存储大量的小文件,浪费元数据的空间,效率低。
一个block占150byte,差不多1万条才1条。1千万条才1G。
3、 namenode管理元数据原理
如何解决快速响应?
1、 当一个客户端写入文件时,namenode记录一个log条目(edits log)。
2、 Namenode分配datanode,返回信息。
3、 Client开始向datanode写,当写完一份client向NN发过去信息说我写完了。
4、 NN在内存中写入这次上传抄作的元数据信息。
5、 内存和fsimage是互为镜像的,当editslog满的时候,必须把edits log和fsimage合并。
合并过程:
合并是由SN来操作的。
a、当edits条目达到阈值时,通知SN做checkpoint操作。
b、停止往edits log文件中写数据。
C、SN下载fsimage和edits log。
d、进行合并。
e、上传NN。
f、把新的镜像替换到老的。同时把edits log删掉,并重命名。
默认触发时间(值都可以修改。)
查看文件,
当然这种架构也不是100%,万一checkpiont宕机的时候怎么办?
HA可以解决这个问题。
写入文件原理:
1、 客户端要存文件,先找namenode,namenode返回信息(查询元数据),如果不存在,就给信息可以存,并分配datanode存block。
2、 客户端收到信息,将数据按照NN的分配分别存入datanode(这里要注意保留副本个数,存副本的方式有两种
第一、客户端写入N个副本全部成功才算成功。
第二、写一份成功就算成功,剩下的两个副本由此datanode1向一个datanode2拷贝,datanode2向datanodeN拷贝,如果其中失败他会向NN汇报,然后NN再指定datanode1或者datanode2向其他datanode拷贝)。
注意:写入副本的时候还要按机架(看架构图)
存储大量的小文件,浪费元数据的空间,效率低。
一个block占150byte,差不多1万条才1条。1千万条才1G。
3、 namenode管理元数据原理
如何解决快速响应?
1、 当一个客户端写入文件时,namenode记录一个log条目(edits log)。
2、 Namenode分配datanode,返回信息。
3、 Client开始向datanode写,当写完一份client向NN发过去信息说我写完了。
4、 NN在内存中写入这次上传抄作的元数据信息。
5、 内存和fsimage是互为镜像的,当editslog满的时候,必须把edits log和fsimage合并。
合并过程:
合并是由SN来操作的。
a、当edits条目达到阈值时,通知SN做checkpoint操作。
b、停止往edits log文件中写数据。
C、SN下载fsimage和edits log。
d、进行合并。
e、上传NN。
f、把新的镜像替换到老的。同时把edits log删掉,并重命名。
默认触发时间(值都可以修改。)
查看文件,
当然这种架构也不是100%,万一checkpiont宕机的时候怎么办?
HA可以解决这个问题。
相关文章推荐
- kali linux karmetasploit配置
- Hadoop伪分布式安装学习笔记一
- 为什么要超越Hadoop(书摘)
- redhat使用centosYUM源
- VMware on Linux(Centos6.6)
- nginx服务器请求建立链接的过程
- VMware中centos安装kvm
- Linux 技巧:让进程在后台可靠运行的几种方法
- tomcat部署web项目的3中方法
- ubuntu 下eclipse为Tomcat8.0无法添加Server name解决办法
- poj2115-C Looooops -线性同余方程
- CentOS6.4下Mysql数据库的安装与配置
- Linux Traffic Control Implement: The Overview阅读笔记
- centos 安装mysql冲突解决方法
- Ubuntu下开启Apache重写扩展
- 腾讯云 linux系统服务器配置流程
- [常用知识]如何在Eclipse、myEclipse中分别配置Tomcat和JBoss应用服务器
- CentOS6.5 Nginx安装
- Linux防火墙简析
- linux源地址转换(一)