设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

Apache Tez是什么?

2014-10-11 11:16| 发布者: joejoe0332| 查看: 3480| 评论: 0|原作者: 孙镜涛|来自: InfoQ

摘要: Tez是Apache最新的支持DAG作业的开源计算框架,它可以将多个有依赖的作业转换为一个作业从而大幅提升DAG作业的性能。Tez并不直接面向最终用户——事实上它允许开发者为最终用户构建性能更快、扩展性更好的应用程序。 ...
  Tez是Apache最新的支持DAG作业的开源计算框架,它可以将多个有依赖的作业转换为一个作业从而大幅提升DAG作业的性能。Tez并不直接面向最终用户——事实上它允许开发者为最终用户构建性能更快、扩展性更好的应用程序。Hadoop传统上是一个大量数据批处理平台。但是,有很多用例需要近乎实时的查询处理性能。还有一些工作则不太适合MapReduce,例如机器学习。Tez的目的就是帮助Hadoop处理这些用例场景。
 

  Tez项目的目标是支持高度定制化,这样它就能够满足各种用例的需要,让人们不必借助其他的外部方式就能完成自己的工作,如果 HivePig 这样的项目使用Tez而不是MapReduce作为其数据处理的骨干,那么将会显著提升它们的响应时间。Tez构建在YARN之上,后者是Hadoop所使用的新资源管理框架。



设计哲学

  Tez产生的主要原因是绕开MapReduce所施加的限制。除了必须要编写Mapper和Reducer的限制之外,强制让所有类型的计算都满足这一范例还有效率低下的问题——例如使用HDFS存储多个MR作业之间的临时数据,这是一个负载。在Hive中,查询需要对不相关的key进行多次shuffle操作的场景非常普遍,例如join - grp by - window function - order by。

 
 

  Tez设计哲学里面的关键元素包括:

  • 允许开发人员(也包括最终用户)以最有效的方式做他们想做的事情
  • 更好的执行性能


  Tez之所以能够实现这些目标依赖于以下内容

  • 具有表现力的数据流API——Tez团队希望通过一套富有表现力的数据流定义API让用户能够描述他们所要运行计算的有向无环图 (DAG)。为了达到这个目的,Tez实现了一个结构化类型的API,你可以在其中添加所有的处理器和边,并可视化实际构建的图形。
  • 灵活的输入—处理器—输出(Input-Processor-Output)运行时模型——可以通过连接不同的输入、处理器和输出动态地构建运行时执行器。
  • 数据类型无关性——仅关心数据的移动,不关心数据格式(键值对、面向元组的格式等)。
  • 动态图重新配置
  • 简单地部署——Tez完全是一个客户端应用程序,它利用了YARN的本地资源和分布式缓存。就Tez的使用而言,你不需要在自己的集群上部署任何内容,仅需要将相关的Tez类库上传到HDFS上,然后使用Tez客户端提交这些类库即可。

    你甚至可以在你的集群上放置两份类库。一份用于产品环境,它使用稳定版本供所有的生产任务使用;另一份使用最新版本,供用户体验。这两份类库相互独立,互不影响。

  • Tez能够运行任意MR任务,不需要做任何改动。这样能够让那些现在依赖于MR的工具实现分布迁移。


  接下来让我们详细地探索一下这些表现力丰富的数据流API——看看我们可以使用它们做些什么?例如,你可以使用MRR模式而不是使用多个MapReduce任务,这样一个单独的map就可以有多个reduce阶段;并且这样做数据流可以在不同的处理器之间流转,不需要把任何内容写入HDFS(将会被写入磁盘,但这仅仅是为了设置检查点),与之前相比这种方式性能提升显著。下面的图表阐述了这个过程:




  第一个图表展示的流程包含多个MR任务,每个任务都将中间结果存储到HDFS上——前一个步骤中的reducer为下一个步骤中的mapper提供数据。第二个图表展示了使用Tez时的流程,仅在一个任务中就能完成同样的处理过程,任务之间不需要访问HDFS。


  Tez的灵活性意味着你需要付出比MapReduce更多的努力才能使用它,你需要学习更多的API,需要实现更多的处理逻辑。但是这还好,毕竟它和MapReduce一样并不是一个面向最终用户的应用程序,其目的是让开发人员基于它构建供最终用户使用的应用程序。


  以上内容是对Tez的概述及其目标的描述,下面就让我们看看它实际的API。



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部