什么是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 是一个由软件开发人员和贡献者组成的全球社区。

  • 能够快速存储和处理大量任何类型的数据。随着数据量和品种的不断增加,特别是来自社交媒体和物联网(IoT),这是一个关键考虑因素。
  • 计算能力。Hadoop 的分布式计算模型可以快速处理大数据。您使用的计算节点越多,您拥有的处理能力就越强。
  • 容错。数据和应用程序处理可防止硬件故障。如果节点发生故障,作业将自动重定向到其他节点,以确保分布式计算不会失败。自动存储所有数据的多个副本。
  • 灵活性。与传统的关系数据库不同,您不必在存储数据之前对其进行预处理。您可以根据需要存储尽可能多的数据,并决定以后如何使用它。这包括非结构化数据,如文本,图像和视频。
  • 低成本。开源框架是免费的,使用商用硬件来存储大量数据。
  • 可扩展性。只需添加节点,您就可以轻松扩展系统以处理更多数据。需要很少的管理。

MapReduce 编程并不适合所有问题。这对于简单的信息请求和可以分成独立单元的问题是有益的,但对迭代和交互式分析任务来说效率不高。MapReduce 是文件密集型的。由于除了通过排序和混洗之外,节点不相互通信,因此迭代算法需要多个 map-shuffle / sort-reduce 阶段才能完成。这会在 MapReduce 阶段之间创建多个文件,对于高级分析计算来说效率很低。

有一个广为人知的人才缺口。很难找到具有足够 Java 技能的入门级程序员,以便通过 MapReduce 提高工作效率。这就是分销商正在竞相将关系(SQL)技术置于 Hadoop 之上的原因之一。找到具有 SQL 技能而不是 MapReduce 技能的程序员要容易得多。而且,Hadoop 管理似乎是部分艺术和部分科学,需要对操作系统,硬件和 Hadoop 内核设置的低级知识。

数据安全。另一个挑战是围绕分散的数据安全问题,尽管新的工具和技术正在浮出水面。Kerberos 身份验证协议是使 Hadoop 环境安全的重要一步。

完善的数据管理和治理。Hadoop 没有易于使用的全功能工具来进行数据管理,数据清理,治理和元数据。特别缺乏的是数据质量和标准化的工具。

一个有趣的事实:“Hadoop”是一个黄色玩具大象的名字,由其一位发明家的儿子拥有。

(0)

相关推荐