在当今的数字化时代,数据收集的方式已经从传统的手段转变为利用互联网、摄像头、智能手机、无人机、机器人等更快的方式。这些收集到的数据随后被组织或政府用于商业决策。但在那之前,他们需要一个能够存储和保护这些大数据集的设备或系统。Hadoop文件分布系统(HDFS)就是这样一个系统。
如果是HDFS架构的新手,让为提供一个简单的图景来说明它的作用:简而言之,HDFS以一种方式存储原始数据,使得数据可以在稍后轻松提取。数据存储在集群中,以实现并行提取模式。数据存储在HDFS后,使用查询语言(如SQL)来提取数据,并将其用于分析/建模目的。
在本教程中,将探讨Hadoop分布式文件系统的基本理念以及构成HDFS的各种组件。最后,将学习数据集成工具DMX-h以获得实际理解。
HDFS中的“D”指的是将文件分解为多个子集,并将其存储在不同的集群中。这为大数据处理提供了所需的速度和可扩展性。HDFS具有高度的容错性,并且设计为部署在低成本硬件上。HDFS为应用程序数据提供高吞吐量访问,适用于具有大型数据集的应用程序。
它具有结构化的架构,并结合了MapReduce技术来处理和分发大型数据集。让从架构开始。
支持HDFS架构的有三个主要组件,分别是客户端机器、主节点和从节点。让了解它们各自的作用:
主节点:它负责Hadoop的两个关键功能部分:存储大量数据(HDFS)和在所有数据上运行并行计算(MapReduce)。
从节点:它们构成了机器的绝大多数,并且做所有存储数据和运行计算的脏活累活,因此得名“从节点”。
客户端机器:客户端机器是安装了Hadoop并带有默认集群设置的机器,它们协助加载数据并指导整个数据处理周期。
让深入探讨节点。HDFS中的节点由两个组件组成:主节点和多个工作节点。主节点包括作业跟踪器、任务跟踪器、名称节点和数据节点。名称节点管理文件系统元数据,数据节点存储实际数据。数据节点在Hadoop文件系统中存储数据。一个功能性文件系统有多个数据节点,数据在它们之间复制。从节点或工作节点充当数据节点和任务跟踪器,尽管也可以有仅数据的工作节点和仅计算的工作节点。
每个大数据/数据库分析师都必须了解HDFS的一些重要点:
MapReduce是一种基于Java的分布式计算处理技术和程序模型。MapReduce算法包含两个重要任务,即Map和Reduce。Map将一组数据转换成另一组数据,其中各个元素被分解成元组(键/值对)。Reduce将Map的输出作为输入,并合并这些数据元组成一组较小的元组。正如MapReduce这个名字的顺序所暗示的,Reduce任务总是在Map作业之后执行。
使用MapReduce的主要优点是它可以轻松地在多个计算节点上扩展数据处理。MapReduce可以用来执行密集型操作,如变更数据捕获。变更数据捕获是一种处理密集型方法,用于使当前数据可供用户使用。因为它如此处理密集型,通常在Hadoop上执行处理而不是Teradata或其他平台上是有意义的。
以下是MapReduce技术的完整处理流程:
到目前为止,讨论了数据集成的理论方面,现在让使用DMX-h来实践它,以便获得更好的理解。
处理Hadoop/大数据的一个关键功能是ETL(提取、转换、加载)。此外,仍然需要将数据从HDFS/MapReduce输出移动到其他传统数据仓库,基本上执行数据集成。市场上可用的工具之一叫做DMX-h,来自Syncsort。
它不是一个开源工具。因此,对于安装,需要创建一个一次性账户进行安装。
DMX-h有两个主要组件。它们是:
任务编辑器解释:
DMX-h任务编辑器提供了创建处理数据移动任务的功能。如果是有经验的专业人士,界面在某些方面可能会让想起SQL Server Integration Services (SSIS)。
作业编辑器解释:
现在,转向DMX-h作业编辑器,可以在其中加载在DMX-h任务编辑器中创建的所有任务。然后,根据数据转换要求连接它们。
一旦作业完成,应该验证源文件是否已成功复制到目标位置。
这里展示了一个简单的例子,这可以扩展到执行CDC操作和MapReduce功能。