NameNode元数据的管理机制(三)
2016-07-22 15:52
387 查看
元数据的管理:
第一步:客户端通过DistributedFilesystem 对象中的creat()方法来创建文件,此时,RPC会 通过一个RPC链接协议来调用namenode,并在命名空间中创建一个新文件,namenode执行各种权限以及文件isexist 的检查,dfs返回一个输出流,否则抛出 IOEXCEPTION。输出流控制一个DFSoutPutstream,负责处理数据节点和名称节点之间的通信
第二步:客户端开始通过输出流写入数据,DFSoutPutstream将客户端写入的数据分成一个个的数据包包,然后写入到dfs中的一个queue,这些queue中的数据包被dfs中的数据流管理,数据流通过一定的分发机制,将这些数据包形成副本并存放在datanode上,当前例如我们设置的dfs.replication=3,则需要将副本放在三个datanode上,这三个datanode会通过一个管线连接,数据流将包分流给管线中第一个的datanode,这个节点会存储包并且发送给管线中的第二个datanode。同样地,第二个数据节点存储包并且传给管线中第三个datanode
因为hadoop方便快速查询很多东西东西放在内存里,当内存溢出,宕机,停电时会对系统的实时数据造成损害,因此就有解决此类问题,在 处理服务器宕机,停电,内存溢出等灾难,主要实行实时日志记录,等灾难发生可以通过记录的日志快速恢复服务。
第一步:客户端通过DistributedFilesystem 对象中的creat()方法来创建文件,此时,RPC会 通过一个RPC链接协议来调用namenode,并在命名空间中创建一个新文件,namenode执行各种权限以及文件isexist 的检查,dfs返回一个输出流,否则抛出 IOEXCEPTION。输出流控制一个DFSoutPutstream,负责处理数据节点和名称节点之间的通信
第二步:客户端开始通过输出流写入数据,DFSoutPutstream将客户端写入的数据分成一个个的数据包包,然后写入到dfs中的一个queue,这些queue中的数据包被dfs中的数据流管理,数据流通过一定的分发机制,将这些数据包形成副本并存放在datanode上,当前例如我们设置的dfs.replication=3,则需要将副本放在三个datanode上,这三个datanode会通过一个管线连接,数据流将包分流给管线中第一个的datanode,这个节点会存储包并且发送给管线中的第二个datanode。同样地,第二个数据节点存储包并且传给管线中第三个datanode
因为hadoop方便快速查询很多东西东西放在内存里,当内存溢出,宕机,停电时会对系统的实时数据造成损害,因此就有解决此类问题,在 处理服务器宕机,停电,内存溢出等灾难,主要实行实时日志记录,等灾难发生可以通过记录的日志快速恢复服务。
相关文章推荐
- nodejs--process
- How To Work With JSON In Node.js / JavaScript
- Node.js:常用工具util
- JavaScript之firstChild属性、lastChild属性、nodeValue属性学习
- mac使用homebrew手动管理node版本
- node.js 使用createServer创建最基础的node应用。
- Node log4js
- LeetCode 237. Delete Node in a Linked List
- LeetCode 24. Swap Nodes in Pairs
- nodejs安装express遇到的坑
- Nodejs使用mailer发送邮件(未测试)
- Keep a node.js server up with Forever
- 建议直接从inode 获取设备号
- nodejs与Sublime相结合
- Node.js:全局对象
- Node.js 上传文件formidable时使用fs.renameSync报错
- 在腾讯云(windows)上搭建node.js服务器
- inode获取设备号
- webstorm中配置nodejs环境及npm
- Node.js:回调函数