参考网站:
http://www.blogjava.net/killme2008/archive/2008/06/05/206043.html
一、Namenode与Datanode
一般配置,一台机器为master,其余N台机器为slavers。master拥有一个Namenode,slaver拥有一个或者多个Datanode,master作为client端发起Job。
- Namenode又称中心服务器,负责管理文件系统的Namespace和客户端对文件的访问。
- Datanode也就是节点,海量数据以及其备份就存在这个地方,其单位为block。
二、从Hadoop最基本的实例程序wordcount来看,目标计数文件在master端,文件首先会按照64MB的大小划分成chunk(不同的chunk放在不同的Datanode上),由master机器上的client提交,master就会返回给client一个Datanode的列表,然后文件就会流水线传递给Datanode。文件在HDFS上为了确保其安全性,会有多个副本,那么这个副本数就称为replication。当副本是3的时候,文件的提交就会从第一个Datanode->在其写入磁盘过程中传递给第二个Datanode->在其写入磁盘过程中传递给第三个Datanode。
三、数据的复制:Namenode全权负责block的复制并周期性地从每个Datanode接受心跳包和一个Blocking report,心跳包是指这个Datanode还活着,Blocking report是指该Datanode上所有block的列表。
四、数据副本的选择:就近原则