Hadoop是一个开源软件框架,用于在商用硬件集群上存储数据和运行应用程序。它为任何类型的数据提供海量存储,巨大的处理能力以及处理几乎无限的并发任务或作业的能力。
Hadoop 是一个开源软件框架,用于在商用硬件集群上存储数据和运行应用程序。它为任何类型的数据提供海量存储,巨大的处理能力以及处理几乎无限的并发任务或作业的能力。
随着万维网在 20 世纪后期和 21 世纪初的发展,创建了搜索引擎和索引,以帮助在基于文本的内容中定位相关信息。在早期,搜索结果由人类返回。但随着网络从几十页增长到数百万页,需要自动化。创建了网络爬虫,其中许多是大学主导的研究项目,搜索引擎初创公司起飞(雅虎,AltaVista 等)。
其中一个项目是一个名为 Nutch 的开源网络搜索引擎 – Doug Cutting 和 Mike Cafarella 的创意。他们希望通过在不同计算机之间分配数据和计算来更快地返回 Web 搜索结果,从而可以同时完成多个任务。在此期间,另一个名为 Google 的搜索引擎项目正在进行中。它基于相同的概念 – 以分布式,自动化的方式存储和处理数据,以便更快地返回相关的 Web 搜索结果。
2006 年,Cutting 加入了雅虎并带来了 Nutch 项目以及基于谷歌早期工作的想法,自动化分布式数据存储和处理。Nutch 项目被划分 – 网络爬虫部分仍然是 Nutch,分布式计算和处理部分变成了 Hadoop(以 Cutting 的儿子的玩具大象命名)。2008 年,雅虎发布了 Hadoop 作为开源项目。今天,Hadoop 的框架和技术生态系统由非盈利的 Apache 软件基金会(ASF)管理和维护,ASF 是一个由软件开发人员和贡献者组成的全球社区。
MapReduce 编程并不适合所有问题。这对于简单的信息请求和可以分成独立单元的问题是有益的,但对迭代和交互式分析任务来说效率不高。MapReduce 是文件密集型的。由于除了通过排序和混洗之外,节点不相互通信,因此迭代算法需要多个 map-shuffle / sort-reduce 阶段才能完成。这会在 MapReduce 阶段之间创建多个文件,对于高级分析计算来说效率很低。
有一个广为人知的人才缺口。很难找到具有足够 Java 技能的入门级程序员,以便通过 MapReduce 提高工作效率。这就是分销商正在竞相将关系(SQL)技术置于 Hadoop 之上的原因之一。找到具有 SQL 技能而不是 MapReduce 技能的程序员要容易得多。而且,Hadoop 管理似乎是部分艺术和部分科学,需要对操作系统,硬件和 Hadoop 内核设置的低级知识。
数据安全。另一个挑战是围绕分散的数据安全问题,尽管新的工具和技术正在浮出水面。Kerberos 身份验证协议是使 Hadoop 环境安全的重要一步。
完善的数据管理和治理。Hadoop 没有易于使用的全功能工具来进行数据管理,数据清理,治理和元数据。特别缺乏的是数据质量和标准化的工具。
一个有趣的事实:“Hadoop”是一个黄色玩具大象的名字,由其一位发明家的儿子拥有。