Hadoop的源起----lucene

来源:互联网 发布:nginx 文件下载服务器 编辑:程序博客网 时间:2024/05/02 15:14

背景:

Doug Cutting开创的开源软件,用java书写代码,实现类似google的搜索。


2003-2004年,google公开了部分GFS和Mapreduce思想的细节,以此为基础DougCutting等人用了2年业余时间实现DFS和Mapreduce机制。


Yahoo诏安Doug Cutting及其项目


Hadoop于2005年秋天作为Lucene的子项目Nutch的一部分证书引入apache基金会。2006年3月份,Map-reduce和Nutch Distribe File System(NDFS

)分别被纳入称为hadoop的项目中


名字来源来自Doug Cutting儿子的玩具,hadoop中。


2.hadoop高度:

1)实现云计算的事实标准开源软件

2)包含数十个具有强大生命力的子项目(HDFS、MapReduce  、Pig、Hive、Hbase(Nosql数据库)、HIve(数据库查询工具,支持sql一般),)。

3)已经在数千节点上运行,处理数据量和排序时间不断打破世界纪录。


3后台进程

NameNode

Secondary namenode 辅助名称节点

JobTracker  作业跟踪器,MapReduce的总控作用,用来处理用户提交的作业,提交的代码。把job切割成一个一个task并分配节点;

监控task,重启失败的task;每个集群只有为一个一个jobtracker;位于master节点里面。

TaskTracker, 位于slave节点,与datanode结合;每个节点只有一个tasktracker,但一个tasktracker可以启动多个JVM,用于并行执行Map或reduce任务。;

与jobtracker交换。


NameNode


1.管理文件系统的命名空间

2.记录每个文件数据块在各个dataNode上的位置和副本信息。

3.协调客户端对文件的访问

4.记录命名空间内的改动或空间本身属性的改动。

5.NameNode使用事务日志记录HDFS元数据的变化,使用映像文件存储文件系统的命名空间,报考文件映射,文件属性等。


DATANode


1.复制所在物理节点的存储管理

2.一次写入,多次读取(不修改)

3.文件由数据块组成,典型的快大小是64mb

4,数据块尽量散布道各个节点



读取数据流程


1.客户端要访问HDFS中的一个文件

2.首先从namenode获得组成这个文件的数据块位置列表

3.根据列表知道存储数据块的datanode

4.访问datanode 获取数据

5.namenode 并不参与数据实际传输



HDFS的可靠性


1.冗余副本策略


可以在hdfs-site.xml中设置复制因子指定副本数量


所有数据块独有副本


dataNode启动时,遍历本地文件系统,产生一份hdfs数据块和本地文件的对应关系列表blockreport汇报给namenode。



2.机架策略


A 集群一般放在不同机架上,机架间带宽要比机架内带宽要小


B   HDFS的“机架感知”   节点之间传递字节包,获得机架信息。


C  一般在本机架存放一个副本,在其他机架再存放别的副本,这样可以防止机架失效时丢失数据, 也可以提高带宽利用率。




3.心跳机制


A  NameNode 周期性从datanode 接收心跳信号和块报告

B  NameNode根据块报告验证元数据

C 没有按时发送心跳的datanode会被标记为宕机,不会再给他任何IO请求。

D 如果datanode 失效造成副本数量下降,并且低于预先设置的阀值,namenode会检测出这些

数据块,并在合适的时机进行重新复制。


E 引发重新复制的原因还包括数据副本本身损坏、磁盘错误、复制因子被增大等。



4.安全模式


A NameNode 启动时会先经过一个“安全模式” 阶段


B  安全模式阶段不会产生数据写


C 在此阶段NameNode 收集各个datanode 的报告,当数据块达到最小副本数以上时候,

会被认为是“安全”的


D 在一定比例(可设置)的数据块被确认为“安全”后,再过诺干时间,安全模式结束。


E 当检测到副本数不足的数据块时,该块会被复制直到达最小副本数。



5.校验和


每个数据块都参数校验和

校验和会作为单独一个隐藏文件保存在命名空间下



6.回收站


删除文件时候,其实是放入回收站、trash


回收站里的文件可以快速恢复


可以设置时间阀值,当回收站里面的文件存放时间超过这个阀值,就会被永久删除,并且释放占用的数据块。



7.元数据保护


 映像文件刚和事务日志是namenode的核心数据,可以配置为拥有多个副本


副本会降低NameNode的处理速度,但增加安全性


NameNode依然是单点的,如果发生故障,要手工切换。




8,快照机制


支持存储某个时间点的映像,需要时可以使数据重返这个时间点的状态
 Hadoop目前还不支持快照,已经列入开发计划















原创粉丝点击