当前位置: 首页 > 科技观察

超越批处理和MapReduce:如何让Hadoop更进一步

时间:2023-03-20 00:22:56 科技观察

ApacheTez框架为全新一代高性能、交互式、分布式数据处理应用程序打开了大门。数据可以说是现代世界新的货币资源。能够充分挖掘数据价值的企业,将做出更有利于自身经营和发展的正确决策,进一步引导客户走向胜利的彼岸。ApacheHadoop作为现实中不可替代的大数据平台,可以让企业用户构建一个高度可扩展、高性价比的数据存储系统。企业可以使用它来对数据运行大规模并行和高性能的分析工作负载,从而解开由于技术或经济成本而长期被困在尘埃中的指导性结论。Hadoop能够以前所未有的规模和效率实现数据的价值——这在很大程度上要归功于ApacheTez和YARN的帮助。分析应用程序以目的驱动的方式处理数据,从而使不同类型的业务问题或差异化的供应商产品设计为流程带来差异化的特征。要为Hadoop数据访问创建目的驱动的应用程序,需要满足两个先决条件。最后,用户的“操作系统”(类似于Windows或Linux)必须能够在共享的Hadoop环境中托管、管理和运行这些应用程序。ApacheYARN就是这样一个面向Hadoop的数据操作系统。第二个前提是,开发者需要一套应用构建框架和通用标准,可以编写出可以运行在YARN上的数据访问应用。ApacheTez正好符合这两个决定性因素。Tez是一个可嵌入和可扩展的框架,允许与YARN集成,并允许开发人员编写可涵盖各种交互式批处理工作负载的原生YARN应用程序。Tez利用Hadoop强大的处理PB级数据集的能力,从而保证ApacheHadoop生态中的各种项目能够实现与目的相匹配的数据处理逻辑、快速的响应时间和最大化的数据。吞吐能力。Tez可以为Hive和Pig等Apache项目带来前所未有的处理速度和可扩展性,并逐渐成为越来越多专门用于与存储在Hadoop中的数据进行高速交互的针对性第三方软件应用的设计效果。重要前提和支撑。后MapReduce时代的Hadoop熟悉MapReduce的朋友一定很想知道Tez拥有哪些与众不同的差异化能力。Tez是一个功能更强大的框架,应用范围很广。除了继承MapReduce的优点外,还修正了后者的一些先天局限性。Tez继承自MapReduce的优势包括以下几点:?水平可扩展性,包括增加数据规模和计算能力。?具有资源弹性机制,同时在产能过剩或受限的情况下都能正常运行。?对分布式系统中各种不可避免的、频繁发生的故障具有理想的容错和恢复能力。?利用内置的Hadoop安全机制实现数据处理安全保护。但Tez本身并不是一个处理引擎。相反,Tez的作用是通过自身灵活性和可定制性的优势,帮助用户构建应用程序和引擎。开发者可以使用Tez库编写MapReduce任务,将Tez代码嵌入M??apReduce后,可以将前者高效的特点与后者已有的任务相结合,最终提高MapReduce处理流程的效率.MapReduce过去是(现在仍然是)那些只想获得Hadoop体验的用户的理想选择。不过,目前企业级的Hadoop应用已经逐渐成为现实。这个被广泛接受的平台已经开始帮助越来越多的用户利用其内部集群存储的数据来挖掘最佳商业价值,相关的投入也在不断增加。继续扩大。鉴于此,定制化应用开始取代以MapReduce为代表的各种通用引擎,旨在实现更好的资源利用率和性能提升。Tez框架ApacheTez的设计理念针对这些在Hadoop中运行的自定义数据处理应用程序进行了优化。它可以将数据处理过程组织成一套数据流图模型,让ApacheHadoop生态中的各个项目都可以使用它来满足人机交互过程中对响应时间和PB级极限数据吞吐量的要求。数据流图中的每个节点代表了一部分业务逻辑,负责相应的数据传输或分析。不同节点之间的连接代表了数据在不同传输系统之间的往返。通过这组流程图确定应用程序逻辑后,Tez将逻辑并行化并在Hadoop中执行。如果数据处理应用程序可以通过这种方式建模,则意味着用户可以使用Tez来构建它。提取、传输和加载(ETL)任务在Hadoop数据处理系统中无处不在,任何自定义ETL应用程序都非常适合Tez。其他适用于Tez框架的项目包括查询处理引擎,如ApacheHive和脚本语言,如ApachePig,以及语言集成和数据处理API,如CascadigforJava和ScaldingforScala。当与其他Apache项目结合使用时,Tez框架允许您执行更高效的处理任务。ApacheHive和Tez的结合可以为Hadoop带来出色的高性能SQL执行效果,ApachePig和Tez的结合可以优化Hadoop中大规模复杂的ETL任务。当Cascading和Scalding遇上Tez框架后,Java和Scala代码的翻译效率会大大提升。Tez框架包含直观的JavaAPI,可以帮助开发人员更轻松地创建独特的数据处理流程图,从而最大限度地提高应用程序的执行效率。在定义了一组流程后,Tez框架可以将额外的API合并到自定义的业务逻辑中,并使其在任务流程中运行。这些API将在模块化环境中与输入信息(即读取数据)、输出信息(即写入数据)和处理机制(即处理数据)相结合。将此视为在数据分析领域构建自己的乐高积木。使用这些API构建的应用程序可以在Hadoop环境中高效运行,而Tez框架则处理它与其他堆栈组件之间的复杂交互任务。结果是一个自定义优化的应用程序与YARN本地集成,在多租户Hadoop环境中高效、可扩展、容错且安全。Tez框架的应用因此,企业用户可以利用Tez框架在Hadoop中创建目的驱动的分析应用程序。选择此实现时,您可以在Tez中采用两种不同类型的应用程序自定义:定义数据流或自定义业务逻辑。第一步是定义数据流来解决相关问题。您可以使用多种数据流图来实现同一个解决方案,但选择最理想的解决方案可以大大提高应用程序的执行性能。例如,在使用TezAPI构建的连接图的支持下,可以显着提高ApacheHive的性能。接下来,如果数据处理流程已经确定,企业用户还可以调整任务执行过程中的输入信息、输出信息和处理机制,实现业务逻辑的定制化设计。需要注意的是,除了企业用户可以自定义数据处理应用的设计之外,互联网服务提供商和其他厂商也可以使用Tez框架来实现自己独特的价值主张。例如,存储服务提供商可以为其存储服务实现自定义输入和输出实现。如果供应商拥有更高级的硬件配置——例如RDMA或InfiniBand连接机制——那么他们将能够更轻松地对现有业务实施进行优化。大数据有着广阔甚至爆发式的快速发展前景。ApacheHadoop实现的数据采集、存储、处理等任务,必然会产生大规模、多样的新的表现形式。Hadoop因其在降低成本、复杂性控制和大数据管理风险缓冲方面的突出表现,在现代数据架构中牢牢占据了举足轻重的地位——即成为企业数据仓库的主要组成部分。ApacheTez的出现进一步提升了Hadoop的适用性,可以在满足现有使用需求的同时开辟出更多新的目的驱动的应用类别。Tez框架为大数据机架打开了通往下一代高度的大门,使您可以在Hadoop中构建高性能交互式应用程序,而无需放弃现有的处理或应用程序解决方案。原文链接:http://www.infoworld.com/article/2690634/hadoop/hadoop-batch-processing-mapreduce.html