HDFS的实现思想和概念
来源:互联网 发布:淘宝发货需要身份证 编辑:程序博客网 时间:2024/06/05 10:32
1. 分布式存储
为什么数据需要存储在分布式的系统中哪,难道单一的计算机存储不了吗,难道现在的几个TB的硬盘装不下这些数据吗?事实上,确实装不下。比如,很多的电信通话记录就存储在很多台服务器的很多硬盘中。那么,要处理这么多数据,必须从一台一台服务器分别读取数据和写入数据,太麻烦了!
我们希望有一种文件系统,可以管辖很多服务器用于存储数据。通过这个文件系统存储数据时,感觉不到是存储到不同的服务器上的。当读取数据时,感觉不到是从不同的服务器上读取。如图所示。这就是分布式文件系统。
分布式文件系统管理的是一个服务器集群。在这个集群中,数据存储在集群的节点(即集群中的服务器)中,但是该文件系统把服务器的差异屏蔽了。那么,我们就可以像使用普通的文件系统一样使用,但是数据却分散在不同的服务器中。
在分布式存储系统中,分散在不同节点中的数据可能属于同一个文件,为了组织众多的文件,把文件可以放到不同的文件夹中,文件夹可以一级一级的包含。我们把这种组织形式称为命名空间(namespace)。命名空间管理着整个服务器集群中的所有文件。很明显,命名空间的职责与存储真实数据的职责是不一样的。集群中不同的节点承担不同的职责。负责命名空间职责的节点称为主节点(master node),负责存储真实数据职责的节点称为从节点(slave node)。主节点负责管理文件系统的文件结构,从节点负责存储真实的数据,称为主从式结构(master-slaves)。用户操作时,也应该先和主节点打交道,查询数据在哪些从节点上存储,然后再从从节点读取,如图2-2所示。在主节点,为了加快用户访问的速度,会把整个命名空间信息都放在内存中,当存储的文件越多时,那么主节点就需要越多的内存空间。在从节点存储数据时,有的原始数据文件可能很大,有的可能很小,大小不一的文件不容易管理,那么可以抽象出一个独立的存储文件单位,称为块(block)。数据存放在集群中,可能因为网络原因或者服务器硬件原因造成访问失败,最好采用副本(replication)机制,把数据同时备份到多台服务器中,这样数据就安全了,数据丢失或者访问失败的概率就小了。
在以上的主从式结构中,由于主节点含有整个文件系统的目录结构信息,因为非常重要。另外,由于主节点运行时会把命名空间信息都放到内存中,因此存储的文件越多,主节点的内存就需要的越多。
在hadoop中,分布式存储系统称为HDFS(hadoop distributed file system)。其中,主节点称为名字节点(namenode),从节点称为数据节点(datanode)。
- HDFS的实现思想和概念
- HDFS的实现思想
- 中间件技术的思想、概念和分类
- 中间件技术的思想、概念和分类
- 中间件技术的思想、概念和分类
- HDFS和MapReduce核心思想
- HDFS和MapReduce核心思想
- 思想和概念
- Hadoop中HDFS和MapReduce的概念和机制
- HDFS一些概念的理解
- HDFS一些概念的理解
- 面向对象开发的几个核心的思想和概念
- 中间件技术的思想、概念和分类(ZT)
- 面向对象开发中的几个核心的思想和概念
- 面向对象开发中的几个核心的思想和概念 .
- 面向对象开发中的几个核心的思想和概念
- 栈的概念和实现
- 队列的概念和实现
- 第十周项目—阅读程序,写出执行结果(1)
- IDEA+Maven+Spring+SpringMVC+SpringJDBC整合Demo
- NYOJ 题目860 又见01背包
- java classloader机制
- UML画图总结
- HDFS的实现思想和概念
- UVa 1339 Ancient Cipher
- KVM管理工具:webvirtmgr增加磁盘扩容功能
- 关于堆栈的一点认识
- java junit测试
- js记录
- IPC基础
- [MongoDB学习笔记-01] 入门
- Spring AOP 深入分析