wordCount mapReduce如何使用apache tez在hadoop纱线群上运行?

时间:2015-07-17 00:49:00

标签: hadoop mapreduce yarn apache-tez

正如tez的github页面所说,tez非常简单,其核心只有两个组成部分:

  1. 数据处理管道引擎和

  2. 数据处理应用程序的主数据库,其中可以将上述任意数据处理“任务”组合到任务-DAG中

  3. 我的第一个问题是,tez-examples.jar中存在的现有mapreduce作业如wordcount如何转换为task-DAG?哪里?或者他们不......?

    我的第二个也是更重要的问题是这个部分:

    tez中的每个“任务”都有以下内容:

    1. 输入以消耗键值/值对。
    2. 处理它们的处理器。
    3. 输出以收集已处理的键/值对。
    4. 谁负责在tez-tasks之间拆分输入数据?它是用户提供的代码还是Yarn(资源管理器)甚至是tez本身?

      输出阶段的问题是相同的。 提前致谢

1 个答案:

答案 0 :(得分:3)

回答有关将MapReduce作业转换为Tez DAG的第一个问题:

任何MapReduce作业都可以被认为是具有2个顶点(阶段)的单个DAG。第一个顶点是Map阶段,它通过Shuffle边连接到下游顶点Reduce。

有两种方法可以在Tez上运行MR作业:

  1. 一种方法是直接使用Tez API编写本机2阶段DAG。这是目前tez-examples中的内容。
  2. 第二种是使用MapReduce API本身并使用yarn-tez模式。在这种情况下,有一个层拦截MR作业提交,而不是使用MR,它将MR作业转换为2阶段Tez DAG并在Tez运行时执行DAG。
  3. 对于您拥有的数据处理相关问题:

    用户提供了理解要读取的数据以及如何拆分数据的逻辑。然后,Tez接受每次数据拆分,并接管将一个拆分或一组拆分分配给给定任务的责任。

    然后,Tez框架控制数据的生成和移动,即在中间步骤之间生成数据的位置以及如何在2个顶点/阶段之间移动数据。但是,它不控制用户插件提供的底层数据内容/结构,分区或序列化逻辑。

    以上只是一个带有其他复杂性的高级视图。通过将特定问题发布到开发列表(http://tez.apache.org/mail-lists.html

    ,您将获得更详细的答案