如何wordCount mapReduce作业,运行在hadoop yarn集群与apache tez



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

  1. 数据处理流水线引擎,

  2. 数据处理应用程序的主程序,可以将上面描述的任意数据处理"任务"组合成一个任务- dag

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

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

tez中的每个'task'都有以下内容:

  1. 输入从。
  2. 处理器处理它们
  3. 收集处理过的键/值对的输出。

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

对于输出阶段也是如此。提前感谢

关于将MapReduce作业转换为Tez dag的第一个问题:

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

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

    一种方法是直接使用Tez api编写原生的2阶段DAG。这就是目前在tez-examples中出现的情况。
  1. 第二种是使用MapReduce api本身并使用yarn-tez模式。在这个场景中,有一个层拦截MR作业提交,它不使用MR,而是将MR作业转换为2阶段的Tez DAG,并在Tez运行时执行DAG。

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

用户提供理解要读取的数据和如何分割数据的逻辑。然后Tez接收每个数据分割,并负责为给定任务分配一个或一组分割。

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

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

相关内容

  • 没有找到相关文章

最新更新