hadoop实现原理
来源:互联网 发布:链接转手机淘宝淘口令 编辑:程序博客网 时间:2024/05/16 11:09
与单机的文件系统不同,分布式文件系统不是将这些数据放在一块磁盘上,由上层操作系统来管理。而是存放在一个服务器集群上,由集群中的服务器,各尽其责,通力合作,提供整个文件系统的服务。其中重要的服务器包括:主控服务器(Master/NameNode),数据服务器(ChunkServer/DataNode),和客户服务器。HDFS和GFS都是按照这个架构模式搭建的。个人觉得,其中设计的最核心内容是:文件的目录结构独立存储在一个主控服务器上,而具体文件数据,拆分成若干块,冗余的存放在不同的数据服务器上。存储目录结构的主控服务器,在GFS中称为Master,在HDFS中称为NameNode。这两个名字,叫得都有各自的理由,是瞎子摸象各表一面。 Master是之于数据服务器来叫的,它做为数据服务器的领导同志存在,管理各个数据服务器,收集它们的信息,了解所有数据服务器的生存现状,然后给它们分配任务,指挥它们齐心协力为系统服务;而NameNode是针对客户端来叫的,对于客户端而言,主控服务器上放着所有的文件目录信息,要找一个文件,必须问问它,由此而的此名。。。
主控服务器在整个集群中,同时提供服务的只存在一个,如果它不幸牺牲的话,会有后备军立刻前赴后继的跟上,但,同一时刻,需要保持一山不容二虎的态势。这种设计策略,避免了多台服务器间即时同步数据的代价,而同时,它也使得主控服务器很可能成为整个架构的瓶颈所在。因此,尽量为主控服务器减负,不然它做太多的事情,就自然而然的晋升成了一个分布式文件系统的设计要求。。。
每一个文件的具体数据,被切分成若干个数据块,冗余的存放在数据服务器。通常的配置,每一个数据块的大小为64M,在三个数据服务器上冗余存放(这个64M,不是随便得来的,而是经过反复实践得到的。因为如果太大,容易造成热点的堆叠,大量的操作集中在一台数据服务器上,而如果太小的话,附加的控制信息传输成本,又太高了。因此没有比较特定的业务需求,可以考虑维持此配置...)。数据服务器是典型的四肢发达头脑简单的苦力,其主要的工作模式就是定期向主控服务器汇报其状况,然后等待并处理命令,更快更安全的存放好数据。。。
此外,整个分布式文件系统还有一个重要角色是客户端。它不和主控服务和数据服务一样,在一个独立的进程中提供服务,它只是以一个类库(包)的模式存在,为用户提供了文件读写、目录操作等APIs。当用户需要使用分布式文件系统进行文件读写的时候,把客户端相关包给配置上,就可以通过它来享受分布式文件系统提供的服务了。
- hadoop实现原理
- Hadoop Shell命令实现原理
- Hadoop的MapReduce实现原理解释
- JobConrol实现原理 ---《hadoop技术内幕》读书笔记
- hadoop实现原理(一)配置信息处理
- hadoop实现原理 (二)序列化
- hadoop实现原理 (三) 远程过程调用
- 看懂Hadoop集群原理与实现方式
- 看懂Hadoop集群原理与实现方式
- hadoop ha 高可用实现原理
- Cloudera Hadoop架构及Hadoop Common实现原理
- hadoop原理
- hadoop原理
- hadoop原理
- Hadoop 2.0中用户安全伪装/模仿机制实现原理
- Hadoop 2.0中用户安全伪装/模仿机制实现原理
- Hadoop 基于protobuf 的RPC的服务器端实现原理
- Hadoop 基于protobuf 的RPC的客户端实现原理
- js 单对象扩展
- TCP服务器/客户机开发“框架”
- 如何用Net::SMTP发送邮件
- Android APK反编译详解(附图)
- new sample released after I have left All-In-OneCode-Framework project 2012-02-18
- hadoop实现原理
- js多对象扩展
- 关于typedef的用法总结
- JDK源码中ClassLoader的浅析
- ARMLINUX网卡驱动分析
- poj1503
- iOS-通过消息响应者链找到UIView所在的UIViewController
- mysql cluster安装
- asp.net Repeater取得CheckBox选中的某行某个值的c#写法