研究 开放存取外文翻译资料
2022-12-18 15:38:30
英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料
Singh and Kaur J Big Data (2016) 3:19
DOI 10.1186/s40537-016-0051-6 大数据日报
研究 开放存取
分析Apache Tez的性能
和亚马逊云上的hadoop多节点集群的MapReduce
Rupinder Singh* 和Puneet Jai Kaur
*对应:
摘要
大数据是用于较大数据集的术语,这些数据集非常复杂,传统设备不易处理。今天需要新技术来处理这些大型数据集。Apache Hadoop是一个不错的选择,它有许多组件可以协同工作,使hadoop生态系统更加强大和高效。
Apache Pig是hadoop生态系统的核心组件,它以脚本的形式接受任务。要运行这些脚本,Apache Pig可能会使用MapReduce或Apache Tez
框架。在我们之前的论文中,我们根据所选择的一些参数分析了这两个框架如何彼此不同。我们在单节点集群上比较了理论和实证方法的框架。在这篇文章中,我们尝试对安装在Amazon云上的多节点集群进行分析。
关键词:大数据,Hadoop,HDFS,MapReduce,Apache Tez,Apache Pig,Apache Hive
-
-
-
- ,Panjab大学,印度昌迪加尔
-
-
背景
大数据时代已经开始。服务器上的数据增长非常迅速,当前的技术无法从已存储的数据中检索出一些有用的信息[1]。这些复杂的数据集需要新技术,以便及时检索一些有用的信息。许多公司投入数百万美元用于研究以克服与大数据相关的挑战。Apache Hadoop是处理大数据的技术之一,它是由世界各地许多人维护的开源项目[2]。Apache Hadoop基础开发了许多具有不同版本的组件。Horton-works数据平台是一个为所有hadoop组件提供单一平台的组织[3]。HDP为我们提供了在Microsoft Azure,Amazon云,本地站点或自己的网络等不同平台上安装hadoop的选项。Apache Pig是hadoop生态系统的核心组件之一。它接受以脚本形式提交的作业。Pig脚本像记事本文件一样保存,并使用MapReduce或Apache Tez框架逐行处理。用户可以选择任何框架来运行特定的猪脚本。在我们之前的论文中,我们在一些参数的基础上以理论和经验的方式比较了两种框架。我们在单节点集群上进行实验,并在理论参数上投入更多精力。在本文中,我们强调理论经验参数并试图分析它
copy;2016 The Author(s)。本文根据知识共享署名4.0国际许可的条款进行分发,允许在任何媒体中不受限制地使用,分发和复制,(http://creativecommons.org/licenses/by/4.0/)
如果您向原作者和来源提供适当的信用,请提供Creative Commons许可的链接,以及
表明是否进行了更改。
(http://creativecommons.org/licenses/by/4.0/)
当特定作业提交到安装在亚马逊云上的多节点集群时,这两个框架如何反应。
首先,我们仔细研究一下hadoop生态系统及其中的一些组件。然后我们尝试解释用于分析两个框架的参数。在完成所有理论解释后,我们尝试对使用的数据集和运行Apache Pig Script所需的实验设置进行一些说明。我们在AWS云上安装的多节点集群上运行我们的脚本。然后所有结果都以图表形式显示。最后,我们通过对未完成的工作给出一些想法来结束我们的论文。
理论分析
Hadoop生态系统有许多组件。数字1 显示了不同功能的所有hadoop组件,如数据访问,数据管理,安全性,治理和集成。所有hadoop组件都非常重要,并且有解决不同类型问题的专用角色。这里由于空间限制,我们简要解释了Apache Pig和执行Pig Scripts所需的两个框架(MapReduce和Apache Tez)。
阿帕奇猪
Apache Pig是一个工具,用于在hive使用之前预先构建数据[4]。它用于分析和转换数据集。Apache Pig使用过程语言和脚本语言。Pig作业是在管道中处理的一系列操作,并自动转换为MapReduce作业。Pig使用ETL(提取变换模型),同时从不同来源提取数据[5]。然后Pig将其转换并存储到HDFS中。Pig脚本在MapReduce和Apache Tez框架上运行。用户有三种选择来通过grunt shell,UI或java服务器类提交pig作业。
MapReduce
几年前,我们需要单台机器来处理更大的数据集。在较大的机器上处理数据称为按比例放大。但由于财务和技术问题,这种扩展有许多瓶颈。为了解决这个问题,引入了机器群的概念,这被称为向外扩展。为了使分布式处理的概念可行,我们必须编写新的程序。MapReduce是一个框架
图1 Hadoop生态系统的图示
这有助于编写程序,在数千台机器上并行处理数据[6]。MapReduce分为Map和Reduce两个任务。映射阶段之后是Reduce阶段。Reduce阶段总是没有必要的。MapReduce程序使用不同的编程和脚本语言编写。
Apache Tez
分布式处理是hadoop的基础。Hive和Pig依靠MapReduce框架进行分布式处理。但MapReduce是面向批处理的。所以它不适合交互式查询。因此,Apache Tez是交互式查询处理的替代方案。它有2.x版本的Hadoop [3]。通过有效使用hadoop容器,多个减少阶段没有映射阶段和有效使用HDFS,Tez在地图减少方面非常突出。
选择的参数
在我们的上一篇论文中,我们通过选择许多参数并在理论上解释它们来详细比较两个框架[7]。在这里,我们还选择了一些参数,如执行时间和Apache Pig脚本执行期间所需的容器数量。表1 显示了基于所选参数的两个框架的比较。
实验评估
Apache Tez和MapReduce是Apache Pig在分析特定数据集时使用的两个框架[9]。这两个框架有其自身的优点和缺点。
首先,我们讨论我们实验中使用的数据集。然后我们解释用于处理我们的数据集的实验设置。最后,我们讨论了在两个框架上运行Apache Pig脚本后的数据分析结果。
数据集用于我们的分析,我们选择了名为GEOLOCATION的地理数据集[3]。在我们的数据集中,我们有两个关系模式形式的表,其中一些没有属性。这两个表复制到hadoop分布式文件系统中,然后由pig脚本使用[10–12]。读者可能会要求更多细节,但由于空间限制,我们无法解释数据集。因此,我们建议读者查阅原始参考资料或邮寄作者电子邮件ID以获取原始数据集。至于研究目的,选择的数据集很小,但是将来我们会尝试对更大的数据集进行分析。由于空间限制,我们无法解释数据集。所以我们建议读者查阅原始参考资料。表2 表明在我们的数据集中,我们有2个存储在Apache Hive数据库中的关系表。
实验装置
Amazon Elastic Compute Cloud(EC2)在Amazon Web Services(AWS)云中提供可扩展的计算能力。它还提供虚拟计算环境,也称为实例和不同的预配置模板,也称为我们实例的亚马逊机器映像(AMI)[11]。这些AMI已经安装了操作系统和其他所需的软件。对于我们的集群,我们选择了安装了Red Hat 6 Linux的AMI和具有不同配置的六个实例/节点。Ambari服务器安装在具有一个虚拟CPU和500 MB的T1类型实例上
表1基于不同参数的MapReduce和Apache Tez之间的差异
参数 MapReduce的 Apache Tez
查询类型 MapReduce支持面向批处理的查询[7]
可用性 MapReduce是hadoop生态系统的支柱,Apache Pig依赖于这个框架
处理模型 MapReduce总是需要一张地图
在减少阶段之前的阶段
Hadoop版本 MapReduce是所有hadoop版本中可用的hadoop的主干
响应时间 由于在每个Map和Reduce阶段之后访问HDFS,因此速度较慢
临时数据存储 之后将临时数据存储到HDFS中
每个地图和减少阶段[8]
使用hadoop容器MapReduce将任务分成更多
工作。因此需要更多容器来完成更多工作
Apache Tez支持交互式查询
Apache Tez也适用于Apache Pig,但它在交互式场景中非常有用
单个Map阶段,我们可能有多个reduce阶段
Apache Tez可在Apache Hadoop 2.0及更高版本中使用
由于较少的作业拆分和HDFS访问而导致较高
Apache Tez不会将数据写入HDFS,因此效率更高
Apache Tez通过将任务划分为较少的作业和使用现有容器来降低这种低效率
表2实验中使用的数据集
名称 |
没有记录 |
没有属性 |
地理位置 |
8013 |
10 |
驱动装置 |
101 |
2 |
内存。剩余的五个M3类型节点分为两个主站和三个从站。M3类型实例具有高频Intel Xeon E5-2670 v2(Ivy Bridge)处理器和基于SSD的实例存储,可实现更快的I / O性能[13]。在我们的集群中,一个不同
选择Ambari服务器的节点,因为我们不希望在管理集群时浪费其他节点的资源。图2 显示选择了两个主节点,以便工作负载在它们和三个从节点之间分配,因为hadoop维护三个并行的数据副本。在数据节点发生故障的情况下,hadoop同时开始使用另一个数据副本。用于Windows的Putty SSH和telnet客户端用于登录不同节点的操作系统的shell。T1类型实例配置是固定的,但M3实例的不同配置用于我们的结果。M3实例的不同配置如图3所示。.