Hadoop分布式文件系统(HDFS)与数据集成工具DMX-h

在当今的数字化时代,数据收集的方式已经从传统的手段转变为利用互联网、摄像头、智能手机、无人机、机器人等更快的方式。这些收集到的数据随后被组织或政府用于商业决策。但在那之前,他们需要一个能够存储和保护这些大数据集的设备或系统。Hadoop文件分布系统(HDFS)就是这样一个系统。

如果是HDFS架构的新手,让为提供一个简单的图景来说明它的作用:简而言之,HDFS以一种方式存储原始数据,使得数据可以在稍后轻松提取。数据存储在集群中,以实现并行提取模式。数据存储在HDFS后,使用查询语言(如SQL)来提取数据,并将其用于分析/建模目的。

在本教程中,将探讨Hadoop分布式文件系统的基本理念以及构成HDFS的各种组件。最后,将学习数据集成工具DMX-h以获得实际理解。

什么是Hadoop分布式文件系统(HDFS)?

HDFS中的“D”指的是将文件分解为多个子集,并将其存储在不同的集群中。这为大数据处理提供了所需的速度和可扩展性。HDFS具有高度的容错性,并且设计为部署在低成本硬件上。HDFS为应用程序数据提供高吞吐量访问,适用于具有大型数据集的应用程序。

它具有结构化的架构,并结合了MapReduce技术来处理和分发大型数据集。让从架构开始。

HDFS架构的组件是什么?

支持HDFS架构的有三个主要组件,分别是客户端机器、主节点和从节点。让了解它们各自的作用:

主节点:它负责Hadoop的两个关键功能部分:存储大量数据(HDFS)和在所有数据上运行并行计算(MapReduce)。

从节点:它们构成了机器的绝大多数,并且做所有存储数据和运行计算的脏活累活,因此得名“从节点”。

客户端机器:客户端机器是安装了Hadoop并带有默认集群设置的机器,它们协助加载数据并指导整个数据处理周期。

让深入探讨节点。HDFS中的节点由两个组件组成:主节点和多个工作节点。主节点包括作业跟踪器、任务跟踪器、名称节点和数据节点。名称节点管理文件系统元数据,数据节点存储实际数据。数据节点在Hadoop文件系统中存储数据。一个功能性文件系统有多个数据节点,数据在它们之间复制。从节点或工作节点充当数据节点和任务跟踪器,尽管也可以有仅数据的工作节点和仅计算的工作节点。

每个大数据/数据库分析师都必须了解HDFS的一些重要点:

  • 在集群中,数据只写入一次。不会随机写入文件。
  • 设计用于大批量流式数据读取,而不是随机数据读取。
  • 在Hadoop集群上,数据以128MB的数据块存储在节点上。这是一个特定情况,数据块大小可以根据配置和业务需求而变化。
  • 每个数据块在三个节点上复制,以实现容错。
  • 预计“廉价”的Hadoop节点有时会失败。容错是Hadoop的一个重要概念。
  • 包括5个服务,3个主节点(名称节点、辅助名称节点、作业跟踪器),2个从节点(数据节点、作业跟踪器)。
  • 客户端请求名称节点存储文件,名称节点将与数据节点通信。
  • 客户端然后将数据文件发送到数据节点。
  • HDFS还将维护数据的冗余副本,以便在服务器崩溃时,其他正常运行的服务器可以接管。

什么是MapReduce?

MapReduce是一种基于Java的分布式计算处理技术和程序模型。MapReduce算法包含两个重要任务,即Map和Reduce。Map将一组数据转换成另一组数据,其中各个元素被分解成元组(键/值对)。Reduce将Map的输出作为输入,并合并这些数据元组成一组较小的元组。正如MapReduce这个名字的顺序所暗示的,Reduce任务总是在Map作业之后执行。

使用MapReduce的主要优点是它可以轻松地在多个计算节点上扩展数据处理。MapReduce可以用来执行密集型操作,如变更数据捕获。变更数据捕获是一种处理密集型方法,用于使当前数据可供用户使用。因为它如此处理密集型,通常在Hadoop上执行处理而不是Teradata或其他平台上是有意义的。

MapReduce处理流程

以下是MapReduce技术的完整处理流程:

  1. MapReduce - 它指导数据的完整处理。
  2. 作业跟踪器负责处理请求。
  3. 作业跟踪器向名称节点发送请求并应用程序到数据。
  4. 名称节点向作业跟踪器提供元数据。
  5. 作业跟踪器然后分配任务跟踪器来运行程序。
  6. 然后,任务跟踪器在最近的数据中心运行程序。这个过程称为Map。
  7. 有输入分割(将文件分成块),映射器的数量取决于输入分割。
  8. 任务跟踪器向作业跟踪器提供心跳反馈(这表明任务跟踪器工作正常)。
  9. 然后,输出由Reducer合并。输出文件的数量取决于Reducer的数量。
  10. 当数据节点向名称节点发送心跳时,如果该数据节点有Reducer,它将提供该输出信息给名称节点。
  11. 客户端通过名称节点获取输出,名称节点具有包括输出位置在内的元数据。

到目前为止,讨论了数据集成的理论方面,现在让使用DMX-h来实践它,以便获得更好的理解。

使用DMX-h进行数据集成

处理Hadoop/大数据的一个关键功能是ETL(提取、转换、加载)。此外,仍然需要将数据从HDFS/MapReduce输出移动到其他传统数据仓库,基本上执行数据集成。市场上可用的工具之一叫做DMX-h,来自Syncsort。

它不是一个开源工具。因此,对于安装,需要创建一个一次性账户进行安装。

DMX-h有两个主要组件。它们是:

  • DMX-h任务编辑器:它处理源文件和目标文件。
  • DMX-h作业编辑器:它处理将任务添加到作业并最终运行它们。

任务编辑器解释:

DMX-h任务编辑器提供了创建处理数据移动任务的功能。如果是有经验的专业人士,界面在某些方面可能会让想起SQL Server Integration Services (SSIS)。

  1. 右键单击源和目标以添加文件的源和目标位置。
  2. 现在移动到目标文件。这只是意味着将文件分配给目标位置。
  3. 一旦分配了源和目标文件位置,任务就保存在DMX-h任务编辑器中。

作业编辑器解释:

现在,转向DMX-h作业编辑器,可以在其中加载在DMX-h任务编辑器中创建的所有任务。然后,根据数据转换要求连接它们。

  1. 在下面的屏幕截图中,将在任务编辑器中创建的Sample_File_Copy任务加载到作业编辑器中。
  2. 现在,将在编辑器中运行作业,并显示作业执行的结果(出于隐私原因,用户名已屏蔽)。

一旦作业完成,应该验证源文件是否已成功复制到目标位置。

这里展示了一个简单的例子,这可以扩展到执行CDC操作和MapReduce功能。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485