TellWorldAI 世界档案
问档案English

首页›产品

产品

Apache Hadoop

Apache Hadoop 是一组开源软件工具,用 Hadoop 分布式文件系统存储数据、用 MapReduce 模型并行处理大数据,2006 年首次发布,源自 Nutch 搜索项目。

时代 统计学习

发布日期

是什么

Apache Hadoop 是一组开源软件工具,用于可靠、可扩展的分布式计算[1]。它提供一套框架,用 MapReduce 编程模型完成大数据的分布式存储和处理[1]。所谓分布式,就是把一份数据和一项计算拆到多台机器上;Hadoop 要解决的是这样做时如何不出错、如何扩大规模的问题。

怎么工作

Hadoop 的核心由两部分组成:存储部分是 Hadoop 分布式文件系统(Hadoop Distributed File System,HDFS),处理部分使用 MapReduce 编程模型[1]。

HDFS 把大文件切成数据块,分别放在不同机器上,并且每块保留多个副本。某台机器出问题时,可以从别的副本读回数据。MapReduce 是一种写并行程序的约定:程序员把计算写成 map 和 reduce 两个阶段,map 阶段对每一块数据各自独立地计算,reduce 阶段把 map 产生的中间结果归并、汇总。因为 map 阶段各块之间互不依赖,工作就可以分发到很多台机器上同时跑,最后再把结果收拢。

整套框架有一个贯穿始终的设计前提:所有模块都假定硬件故障是常见的,并且应当由框架自动处理[1]。机器数量一多,总有一些机器在坏;与其要求每台机器都特别可靠,不如让软件把故障当作常态——任务失败就在别处重跑,副本丢失就从其他副本补回来。这个前提决定了 Hadoop 的许多行为方式。

Hadoop 用 Java 实现,采用 Apache License 2.0 授权[1]。最初的作者是 Doug Cutting 和 Mike Cafarella,开发者是 Apache 软件基金会(Apache Software Foundation),首次发布于 2006 年 4 月 1 日[1]。

由来

Hadoop 是从一个网页搜索项目里长出来的。2002 年,Cutting 和 Cafarella 开始做 Nutch 搜索项目,它的分布式平台建立在 Google 的 GFS 和 MapReduce 论文之上,由这项工作产生的代码后来成了 HDFS 和 Hadoop 的 MapReduce[2]。

2006 年,Yahoo! 雇用 Cutting 并采用 Hadoop,Nutch 的存储部分和处理部分被拆分出来,形成作为开源 Apache 项目的 Hadoop[2]。也就是说,Hadoop 最出名的两样东西——分布式文件系统和并行处理模型——最初是为了让一个搜索引擎在多台机器上索引网页而写的,等一家大型网络公司要用它处理自己的数据时,它才被单独命名、单独发布。

在发展中的位置

Hadoop 的意义在于,它把 Google 的 GFS 和 MapReduce 论文里描述的做法变成了可以下载、可以自己搭起来运行的开源软件[1][2]。一个团队因此不必从头设计一套分布式存储和批处理系统,就能处理一台机器装不下的数据。

对今天学习这门技术的人来说,Hadoop 仍然是一个好的参照物。它有两个思路值得先弄清楚:一是把系统分成分布式存储层和批处理层,二是在设计时就假定机器会坏,而不是设法让机器不出错。把 HDFS 理解为「存多份副本,由框架自己修」,把 MapReduce 理解为「先对每一块做 map,再把结果 reduce 起来」,比记住某个组件的名字更有用。

注释与来源

  1. Apache Hadoophttps://en.wikipedia.org/wiki/Apache_Hadoop
  2. Big Data and the Hadoop Ecosystem (book excerpt)https://www.odbms.org/wp-content/uploads/2014/04/978-1-118-61193-7.excerpt.pdf

引用本页: Apache Hadoop. TellWorld, https://www.tellworld.net/zh/products/hadoop. 更新于 2026-11-07