什么是Hadoop?

什么是 Hadoop?

 

Hadoop是一个开源的、基于 Java 的框架,用于存储和处理大数据。数据存储在作为集群运行的廉价商品服务器上。它的分布式文件系统支持并发处理和容错。Hadoop 由 Doug Cutting 和 Michael J. Cafarella 开发,使用 MapReduce 编程模型来更快地从其节点存储和检索数据。该框架由 Apache Software Foundation 管理,并在 Apache License 2.0 下获得许可。

多年来,虽然应用服务器的处理能力不断提高,但数据库由于容量和速度有限而落后。然而,今天,由于许多应用程序正在生成要处理的大数据,Hadoop 在为数据库世界提供急需的改造方面发挥着重要作用。

从商业的角度来看,也有直​​接和间接的好处。通过在主要位于云(有时在本地)中的廉价服务器上使用开源技术,组织可以显着节省成本。

此外,收集海量数据的能力,以及从处理这些数据中获得的洞察力,可以在现实世界中做出更好的业务决策——例如能够专注于正确的消费者群体、清除或修复错误的流程、优化地板操作、提供相关搜索结果、执行预测分析等。

Hadoop 如何改进传统数据库

Hadoop 解决了传统数据库的两个关键挑战:

1.容量:Hadoop存储大量数据。

通过使用称为 HDFS(Hadoop 分布式文件系统)的分布式文件系统,数据被分成块并保存在商品服务器集群中。由于这些商品服务器是用简单的硬件配置构建的,因此随着数据的增长,这些服务器既经济又易于扩展。

2.速度:Hadoop存储和检索数据更快。

Hadoop 使用MapReduce 函数式编程模型来执行跨数据集的并行处理。因此,当向数据库发送查询时,不是按顺序处理数据,而是将任务拆分并在分布式服务器上并发运行。最后,所有任务的输出被整理并发送回应用程序,大大提高了处理速度。

Hadoop 对大数据的 5 大好处

对于大数据和分析,Hadoop 是救命稻草。收集的有关人员、流程、对象、工具等的数据只有在出现有意义的模式时才有用,而这些模式反过来又会导致更好的决策。Hadoop 有助于克服海量大数据带来的挑战:

  1. 弹性——存储在任何节点中的数据也会复制到集群的其他节点中。这确保了容错性。如果一个节点出现故障,集群中总会有可用数据的备份。
  2. 可扩展性——与对数据存储有限制的传统系统不同,Hadoop 是可扩展的,因为它在分布式环境中运行。随着需求的增加,可以轻松扩展设置以包括更多服务器,这些服务器可以存储高达数 PB 的数据。
  3. 低成本——由于 Hadoop 是一个开源框架,无需购买许可证,因此与关系数据库系统相比,成本要低得多。使用廉价的商品硬件也有利于保持解决方案的经济性。
  4. 速度——Hadoop 的分布式文件系统、并发处理和 MapReduce 模型可以在几秒钟内运行复杂的查询。
  5. 数据多样性——HDFS 能够存储不同的数据格式,例如非结构化(例如视频)、半结构化(例如 XML 文件)和结构化。在存储数据时,不需要根据预定义的模式进行验证。相反,可以以任何格式转储数据。稍后,当检索到数据时,会根据需要对数据进行解析并适合任何模式。这提供了使用相同数据获得不同见解的灵活性。

Hadoop 生态系统:核心组件

Hadoop 不仅仅是一个应用程序,而是一个具有各种集成组件的平台,可以实现分布式数据存储和处理。这些组件共同构成了 Hadoop 生态系统。

其中一些是构成框架基础的核心组件,而另一些则是将附加功能带入 Hadoop 世界的补充组件。

Hadoop的核心组件是:

HDFS:维护分布式文件系统

HDFS 是维护分布式文件系统的 Hadoop 的支柱。它使跨多个服务器存储和复制数据成为可能。

HDFS 有 NameNode 和 DataNode。DataNodes 是实际存储数据的商品服务器。另一方面,NameNode 包含元数据,其中包含有关存储在不同节点中的数据的信息。应用程序只与 NameNode 交互,NameNode 根据需要与数据节点进行通信。

YARN:又一个资源谈判者

YARN 代表又一个资源谈判者。它管理和调度资源,并决定每个数据节点应该发生什么。管理所有处理请求的中央主节点称为资源管理器。资源管理器与节点管理器交互;每个从数据节点都有自己的节点管理器来执行任务。

MapReduce

MapReduce 是一种编程模型,谷歌首先使用它来索引其搜索操作。它是用于将数据拆分为较小集合的逻辑。它基于两个函数——Map() 和 Reduce()——以快速有效的方式解析数据。

首先,Map 函数并行对多个数据集进行分组、过滤和排序以生成元组(键、值对)。然后,Reduce 函数聚合来自这些元组的数据以产生所需的输出。

正在上传…重新上传取消

了解为什么 Talend 连续第六年在 2021 年数据集成工具魔力象限™ 中被评为领导者

获取报告

Hadoop 生态系统:补充组件

以下是 Hadoop 生态系统中广泛使用的一些补充组件。

Hive:数据仓库

Hive是一个数据仓库系统,有助于查询 HDFS 中的大型数据集。在 Hive 之前,开发人员面临着创建复杂的 MapReduce 作业来查询 Hadoop 数据的挑战。Hive 使用 HQL(Hive 查询语言),它类似于 SQL 的语法。由于大多数开发人员都具有 SQL 背景,因此 Hive 更容易上手。

Hive 的优点是 JDBC/ODBC 驱动程序充当应用程序和 HDFS 之间的接口。它将 Hadoop 文件系统公开为表,将 HQL 转换为 MapReduce 作业,反之亦然。因此,虽然开发人员和数据库管理员从批处理大型数据集中获益,但他们可以使用简单、熟悉的查询来实现这一目标。Hive 最初由 Facebook 团队开发,现在是一种开源技术。

Pig:减少 MapReduce 函数

Pig最初由 Yahoo! 开发,与 Hive 类似,因为它无需创建 MapReduce 函数来查询 HDFS。与 HQL 类似,所使用的语言(此处称为“Pig Latin”)更接近 SQL。“Pig Latin”是 MapReduce 之上的高级数据流语言层。

Pig 还有一个与 HDFS 接口的运行时环境。使用 Java 或 Python 等语言编写的脚本也可以嵌入到 Pig 中。

蜂巢与猪

虽然 Pig 和 Hive 具有相似的功能,但在不同的场景中,一个可能比另一个更有效。

Pig在数据准备阶段很有用,因为它可以轻松执行复杂的连接和查询。它还适用于不同的数据格式,包括半结构化和非结构化。Pig Latin 更接近 SQL,但与 SQL 的差异也足以使其具有学习曲线。

但是, Hive可以很好地处理结构化数据,因此在数据仓库中更有效。它用于集群的服务器端。

研究人员和程序员倾向于在集群的客户端使用 Pig,而数据分析师等商业智能用户则认为 Hive 是最合适的选择。

Flume:大数据摄取

Flume是一个大数据摄取工具,充当多个数据源和 HDFS 之间的快递服务。它收集、聚合社交媒体网站、物联网应用程序和电子商务门户等应用程序生成的大量流数据(例如日志文件、事件)并将其发送到 HDFS 中。

Flume 功能丰富,它:

  • 具有分布式架构。
  • 确保可靠的数据传输。
  • 是容错的。
  • 具有批量或实时收集数据的灵活性。
  • 可以根据需要水平扩展以处理更多流量。

数据源与 Flume 代理进行通信——每个代理都有一个源、通道和接收器。源端从发送端收集数据,通道临时存储数据,最后,接收端将数据传输到目标端,即Hadoop服务器。

Sqoop:关系数据库的数据摄取

Sqoop(Hadoop 中的“SQL”)是另一种数据摄取工具,例如 Flume。Flume 处理非结构化或半结构化数据,而 Sqoop 用于从关系数据库导出数据和将数据导入到关系数据库中。由于大多数企业数据存储在关系数据库中,因此 Sqoop 用于将该数据导入 Hadoop 以供分析师检查。

数据库管理员和开发人员可以使用简单的命令行界面来导出和导入数据。Sqoop 将这些命令转换为 MapReduce 格式并使用 YARN 将它们发送到 HDFS。Sqoop 也是容错的,可以像 Flume 一样执行并发操作。

Zookeeper:分布式应用程序的协调

Zookeeper是一种协调分布式应用程序的服务。在 Hadoop 框架中,它充当具有集中注册表的管理工具,其中包含有关其管理的分布式服务器集群的信息。它的一些关键功能是:

  • 维护配置信息(配置数据的共享状态)
  • 命名服务(为每个服务器分配名称)
  • 同步服务(处理死锁、竞争条件和数据不一致)
  • 领导者选举(通过共识在服务器中选举领导者)

运行 Zookeeper 服务的服务器集群称为“集合”。乐团在小组中选出一名领导者,其余的人则表现为追随者。来自客户端的所有写操作都需要通过领导者进行路由,而读操作可以直接发送到任何服务器。

Zookeeper 通过故障安全同步、原子性和消息序列化提供高可靠性和弹性。

Kafka:更快的数据传输

Kafka是一个分布式发布-订阅消息系统,通常与 Hadoop 一起使用以实现更快的数据传输。Kafka 集群由一组服务器组成,这些服务器充当生产者和消费者之间的中介。

在大数据的背景下,生产者的一个例子可能是传感器收集温度数据以转发回服务器。消费者是 Hadoop 服务器。生产者在主题上发布消息,消费者通过收听主题来拉取消息。

单个主题可以进一步拆分为多个分区。具有相同密钥的所有消息都到达特定分区。消费者可以监听一个或多个分区。

通过将消息分组到一个键下并让消费者满足特定的分区,许多消费者可以同时收听同一个主题。因此,一个主题被并行化,增加了系统的吞吐量。Kafka 因其速度、可扩展性和强大的复制而被广泛采用。

HBase:非关系型数据库

HBase是位于 HDFS 之上的面向列的非关系型数据库。HDFS 的挑战之一是它只能进行批处理。所以对于简单的交互式查询,仍然需要批量处理数据,导致高延迟。

HBase 通过允许以低延迟在大型表中查询单行来解决这一挑战。它通过在内部使用哈希表来实现这一点。它是按照有助于访问 Google 文件系统 (GFS) 的 Google BigTable 建模的。

HBase 具有可扩展性,在节点出现故障时支持故障,并且适用于非结构化和半结构化数据。因此,它非常适合查询大数据存储以进行分析。

Hadoop的挑战

尽管 Hadoop 已被广泛视为大数据的关键推动者,但仍有一些挑战需要考虑。这些挑战源于其复杂生态系统的性质以及执行 Hadoop 功能所需的先进技术知识。但是,使用正确的集成平台和工具,复杂性会显着降低,因此也可以更轻松地使用它。

1. 陡峭的学习曲线

要查询 Hadoop 文件系统,程序员必须用 Java 编写 MapReduce 函数。这并不简单,并且涉及陡峭的学习曲线。此外,构成生态系统的组件太多,熟悉它们需要时间。

2.不同的数据集需要不同的方法

Hadoop 中没有“一刀切”的解决方案。上面讨论的大多数补充组件都是针对需要解决的差距而构建的。

例如,Hive 和 Pig 提供了一种更简单的方法来查询数据集。此外,Flume 和 Sqoop 等数据摄取工具有助于从多个来源收集数据。还有许多其他组件,需要经验才能做出正确的选择。

3. MapReduce 的局限性

MapReduce 是一种用于批量处理大数据集的优秀编程模型。但是,它有其局限性。

它的文件密集型方法具有多次读取和写入功能,不适合实时、交互式数据分析或迭代任务。对于此类操作,MapReduce 不够高效,并导致高延迟。(这个问题有一些变通方法。Apache 是填补 MapReduce 空白的替代方案。)

4. 数据安全

随着大数据转移到云端,敏感数据被转储到 Hadoop 服务器中,从而需要确保数据安全。庞大的生态系统拥有如此多的工具,因此确保每个工具都具有对数据的正确访问权限非常重要。需要适当的身份验证、配置、数据加密和频繁的审计。Hadoop 有能力应对这一挑战,但需要具备专业知识和一丝不苟的执行能力。

尽管许多科技巨头一直在使用这里讨论的 Hadoop 组件,但它在行业中仍然相对较新。大多数挑战都源于这种新生,但强大的大数据集成平台可以解决或缓解所有这些挑战。

Hadoop 与 Apache Spark

MapReduce 模型尽管有许多优点,但对于交互式查询和实时数据处理来说效率不高,因为它依赖于每个处理阶段之间的磁盘写入。

Spark是一种数据处理引擎,它通过使用内存数据存储解决了这一挑战。虽然它最初是作为 Hadoop 的一个子项目,但它拥有自己的集群技术。

通常,在 HDFS 之上使用 Spark 以仅利用 Hadoop 的存储方面。对于处理算法,它使用自己的库来支持 SQL 查询、流式传输、机器学习和图形。

数据科学家广泛使用 Spark,因为其闪电般的速度和优雅、功能丰富的 API 使处理大型数据集变得容易。

虽然 Spark 似乎比 Hadoop 更有优势,但两者可以协同工作。根据需求和数据集的类型,Hadoop 和 Spark 相互补充。Spark 没有自己的文件系统,因此它必须依赖 HDFS 或其他此类解决方案进行存储。

真正的对比其实是 Spark 和 MapReduce 模型的处理逻辑。当 RAM 受到限制时,并且对于通宵工作,MapReduce 非常适合。但是,要流式传输数据、访问机器学习库以及快速实时操作,Spark 是理想的选择。

充满可能的未来

在短短十年内,Hadoop 已经在计算行业中大放异彩。这是因为它最终使数据分析成为现实。从分析站点访问到欺诈检测到银行应用程序,它的应用程序是多种多样的。

借助Talend Open Studio for Big Data,您可以轻松地将 Hadoop 设置集成到任何数据架构中。Talend 提供比任何其他数据管理解决方案更多的内置数据连接器,使您能够在 Hadoop 和任何主要文件格式(CSV、XML、Excel 等)、数据库系统(Oracle、SQL Server、MySQL、等)、打包的企业应用程序(SAP、SugarCRM 等),甚至 Salesforce 和 Force.com 等云数据服务。

了解有关Talend 大数据解决方案的更多信息,或立即下载 Talend Open Studio for Big Data,并开始从领先的开源大数据工具中受益。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值