hadoop 起源

涉及到了:lucene,solr,nutch,hadoop

@auther ayy

@date 2014/12/21

 

1、lucene、nutch、solr

  Lucene是由Doug Cutting创建的一个基于java的全文搜索工具包,它是Apache下一个很有名的项目。主要功能有:处理索引、拼写检查、一些分析和分词。

  (lucene最初发布于个人网站和sourceforge,2001年,成为apache的项目jakarta的一个子项目)

  solr和nutch本来也都是lucene下的子项目,但后来nutch成为了一个单独的项目。nutch的主要功能是:抓取数据,提取相关信息,它可以认为是google的一个微型版本。

  solr是基于lucene的server端程序,主要功能为:提供了HTTP,python,xml,json等相关的API和管理的相关功能。

 

2、hadoop本来是nutch下的一个用于分布式处理的子项目,后来成为了apache下的一个项目。之前nutch可以使用hadoop进行分布式的数据抓取和处理。

  (2003-2004 google开放了GFS和MapReduce的实现细节,Doug Cutting用了两年业余时间实现了DFS和MapReduce机制,使得nutch性能得以飙升。

  2005年,hadoop本来属于apache项目lucene的子项目nutch的一部分正式被引入apache子项目。)

 

3、hadoop 子项目家族

  

  最下面是hadoop的核心代码,在核心代码基础上,实现了hadoop的两个支柱MapReduce和HDFS。

  Pig 针对非java程序员,一个轻量级的语言,输入数据处理,数据分析的命令。系统可以转换为MapReduce的程序。

  Hive 相当于SQL到MapReduce的一个映射器。针对数据库工程师,Hive将SQL转化为MapReduce的分布式任务。因此也可以将Hive理解为一个分布式数据库,大概可以支持到SQL92的部分标准。

  HBase 是一个NoSQL、基于列式存储的数据库。好处:提高相应速度,减少IO量。也是目前比较热门的技术。

  zooKeeper 协调工具。

  Chukwa 数据收集器,可以将服务器产生的数据收集起来。

 

4、 hadoop 的架构

  

  HDFS

  Namenode 记录文件是如何被分割成块,以及这些块存在哪些节点上。   缺点:单点故障

  数据读取过程:

  数据写入过程:

  SecondNamenode 与namenode进行通信,并周期性的保存HDFS的元数据。但是目前当namenode遇到故障,需要人工将secondnamenode接入。

  Datanode 将HDFS的数据块写入当前机器的文件系统。

  MapReduce

  JobTracker 决定哪些文件参与处理,将任务切割为task,并分配到相应的节点。hadoop会将task分配到其对应数据的节点。jobtracker还要监控task的进度,向用户汇报,并重启失败的task。

  TaskTracker 与JobTracker交互,并执行任务。

  

  

 

posted on 2014-12-21 21:03  ayy2014  阅读(189)  评论(0编辑  收藏  举报