hadoop初步了解(三)

2014-11-24 16:36:36 · 作者: · 浏览: 2
成一个键/值对)缩小键/值对列表。

这里提供一个示例,帮助您理解它。假设输入域是 one small step for man,one giant leapfor mankind。在这个域上运行 Map 函数将得出以下的键/值对列表:

(one,1) (small,1) (step,1) (for,1) (man,1)

MapReduce 流程的概念流

(one,1) (giant,1) (leap,1) (for,1) (mankind,1)

如果对这个键/值对列表应用 Reduce 函数,将得到以下一组键/值对:

(one,2) (small,1) (step,1) (for,2) (man,1)(giant,1) (leap,1) (mankind,1)

结果是对输入域中的单词进行计数,这无疑对处理索引十分有用。但是,假设有两个输入域,第一个是 one small stepfor man,第二个是 one giant leap for mankind。您可以在每个域上执行 Map 函数和 Reduce 函数,然后将这两个键/值对列表应用到另一个 Reduce 函数,这时得到与前面一样的结果。换句话说,可以在输入域并行使用相同的操作,得到的结果是一样的,但速度更快。这便是 MapReduce 的威力;它的并行功能可在任意数量的系统上使用。图 2 以区段和迭代的形式演示这种思想。

回到 Hadoop 上,它是如何实现这个功能的?一个代表客户机在单个主系统上启动的 MapReduce应用程序称为 JobTracker。类似于 NameNode,它是 Hadoop 集群中惟一负责控制 MapReduce应用程序的系统。在应用程序提交之后,将提供包含在 HDFS 中的输入和输出目录。JobTracker 使用文件块信息(物理量和位置)确定如何创建其他 TaskTracker 从属任务。MapReduce应用程序被复制到每个出现输入文件块的节点。将为特定节点上的每个文件块创建一个惟一的从属任务。每个 TaskTracker 将状态和完成信息报告给 JobTracker。图 3 显示一个示例集群中的工作分布。

Hadoop 的这个特点非常重要,因为它并没有将存储移动到某个位置以供处理,而是将处理移动到存储。这通过根据集群中的节点数调节处理,因此支持高效的数据处理。

8大事记

2013年2月,Wandisco推出了世界第一款可用于实际业务环境的Apache Hadoop 2 -WANdisco Distro(WDD)。[7]

2011年12月27日--1.0.0版本释出。标志着Hadoop已经初具生产规模[8]

2009年4月-- 赢得每分钟排序,59秒内排序500 GB(在1400个节点上)和173分钟内排序100 TB数据(在3400个节点上)。

2009年3月-- 17个集群总共24 000台机器。

2008年10月-- 研究集群每天装载10 TB的数据。

2008年4月-- 赢得世界最快1 TB数据排序在900个节点上用时209秒。

2007年4月-- 研究集群达到两个1000个节点的集群。

2007年1月-- 研究集群到达900个节点。

2006年12月-- 标准排序在20个节点上运行1.8个小时,100个节点3.3小时,500个节点5.2小时,900个节点7.8个小时。

2006年11月-- 研究集群增加到600个节点。

2006年5月-- 标准排序在500个节点上运行42个小时(硬件配置比4月的更好)。

2006年5月-- 雅虎建立了一个300个节点的Hadoop研究集群。

2006年4月-- 标准排序(10 GB每个节点)在188个节点上运行47.9个小时。

2006年2月-- 雅虎的网格计算团队采用Hadoop。

2006年2月-- Apache Hadoop项目正式启动以支持MapReduce和HDFS的独立发展。

2006年1月-- Doug Cutting加入雅虎。

2005年12月-- Nutch移植到新的框架,Hadoop在20个节点上稳定运行。

2004年-- 最初的版本(称为HDFS和MapReduce)由Doug Cutting和Mike Cafarella开始实施。