wordCount mapReduce如何在apo tez的hadoop纱线集群上运行?

Son*_*Sun 7 hadoop mapreduce hadoop-yarn apache-tez

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

  1. 数据处理管道引擎,和

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

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

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

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

  1. 输入以消耗键/值对.
  2. 处理器来处理它们.
  3. 输出以收集已处理的键/值对.

谁负责在tez任务之间拆分输入数据?它是用户提供的代码还是Yarn(资源管理器)甚至是tez本身?

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

小智 3

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

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

在 Tez 上运行 MR 作业有 2 种方式:

  1. 一种方法是直接使用 Tez API 编写本机 2 阶段 DAG。这就是目前 tez-examples 中存在的内容。
  2. 第二种是使用MapReduce API本身并使用yarn-tez模式。在这种情况下,有一个层拦截 MR 作业提交,并且不使用 MR,而是将 MR 作业转换为 2 阶段 Tez DAG,并在 Tez 运行时上执行 DAG。

对于您遇到的数据处理相关问题:

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

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

以上只是一个高层次的视图,还有更多的复杂性。通过将具体问题发布到开发列表 ( http://tez.apache.org/mail-lists.html ) ,您将获得更详细的答案