Javen-Studio 咖啡小屋

http://javenstudio.org - C++ Java 分布式 搜索引擎
Naven's Research Laboratory - Thinking of Life, Imagination of Future

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  24 随笔 :: 57 文章 :: 170 评论 :: 4 Trackbacks
 

1          Hadoop是什么

Hadoop原来是Apache Lucene下的一个子项目,它最初是从Nutch项目中分离出来的专门负责分布式存储以及分布式运算的项目。简单地说来,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。下面列举hadoop主要的一些特点:

 

1         扩容能力(Scalable:能可靠地(reliably)存储和处理千兆字节(PB)数据。

2         成本低(Economical:可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。

3         高效率(Efficient:通过分发数据,hadoop可以在数据所在的节点上并行地(parallel)处理它们,这使得处理非常的快速。

4         可靠性(Reliablehadoop能自动地维护数据的多份复制,并且在任务失败后能自动地重新部署(redeploy)计算任务。

 

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFSHDFS有着高容错性(fault-tolerent)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relaxPOSIX的要求(requirements)这样可以流的形式访问(streaming access)文件系统中的数据。

 

Hadoop还实现了MapReduce分布式计算模型。MapReduce将应用程序的工作分解成很多小的工作小块(small blocks of work)HDFS为了做到可靠性(reliability)创建了多份数据块(data blocks)的复制(replicas),并将它们放置在服务器群的计算节点中(compute nodes),MapReduce就可以在它们所在的节点上处理这些数据了。

如下图所示:

 

Hadoop API被分成(divide into)如下几种主要的包(package

 

          org.apache.hadoop.conf     定义了系统参数的配置文件处理API

          org.apache.hadoop.fs          定义了抽象的文件系统API

          org.apache.hadoop.dfs       Hadoop分布式文件系统(HDFS)模块的实现。

          org.apache.hadoop.io         定义了通用的I/O API,用于针对网络,数据库,文件等数据对象做读写操作。

          org.apache.hadoop.ipc       用于网络服务端和客户端的工具,封装了网络异步I/O的基础模块。

          org.apache.hadoop.mapred         Hadoop分布式计算系统(MapReduce)模块的实现,包括任务的分发调度等。

          org.apache.hadoop.metrics        定义了用于性能统计信息的API,主要用于mapreddfs模块。

          org.apache.hadoop.record 定义了针对记录的I/O API类以及一个记录描述语言翻译器,用于简化将记录序列化成语言中性的格式(language-neutral manner)。

          org.apache.hadoop.tools    定义了一些通用的工具。

          org.apache.hadoop.util       定义了一些公用的API

 

下面逐个从源代码中剖析这几个主要模块的框架以及运作原理



作者:naven 2008-02-21
posted on 2008-02-22 00:53 Javen-Studio 阅读(7361) 评论(7)  编辑 收藏 引用

评论

# re: Annotated Hadoop: 第一节 Hadoop是什么 2008-09-20 14:06 路人A
PB 是千GB,不是千兆  回复  更多评论
  

# re: Annotated Hadoop: 第一节 Hadoop是什么 2008-09-21 20:40 Javen-Studio
谢谢提醒,不过应该是PB=1024TB=1024*1024GB  回复  更多评论
  

# re: Annotated Hadoop: 第一节 Hadoop是什么 2009-03-12 13:54 hadoop中文
欢迎大家到http://cn.hadoop.org/
讨论,国内研究这个的人太少  回复  更多评论
  

# re: Annotated Hadoop: 第一节 Hadoop是什么 2009-11-25 11:02 terrs
为什么是java实现,有c 实现的吗?
  回复  更多评论
  

# re: Annotated Hadoop: 第一节 Hadoop是什么[未登录] 2010-06-14 04:53 yang
@hadoop中文
哎 都在研究别人的东西
自己没有开发能力吗  回复  更多评论
  

# re: Annotated Hadoop: 第一节 Hadoop是什么 2010-06-17 17:15 Javen-Studio
研究别人成功的产品, 然后开发自己想法的东西, 本人一直以研发为主:)  回复  更多评论
  

# re: Annotated Hadoop: 第一节 Hadoop是什么 2011-05-10 05:23 achilis
是1024TB@路人A
  回复  更多评论
  


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理