正如tez的github页面所说,tez非常简单,其核心只有两个组成部分:
数据处理管道引擎和
数据处理应用程序的主数据库,其中可以将上述任意数据处理“任务”组合到任务-DAG中
我的第一个问题是,tez-examples.jar中存在的现有mapreduce作业如wordcount如何转换为task-DAG?哪里?或者他们不......?
我的第二个也是更重要的问题是这个部分:
tez中的每个“任务”都有以下内容:
谁负责在tez-tasks之间拆分输入数据?它是用户提供的代码还是Yarn(资源管理器)甚至是tez本身?
输出阶段的问题是相同的。 提前致谢
答案 0 :(得分:3)
回答有关将MapReduce作业转换为Tez DAG的第一个问题:
任何MapReduce作业都可以被认为是具有2个顶点(阶段)的单个DAG。第一个顶点是Map阶段,它通过Shuffle边连接到下游顶点Reduce。
有两种方法可以在Tez上运行MR作业:
对于您拥有的数据处理相关问题:
用户提供了理解要读取的数据以及如何拆分数据的逻辑。然后,Tez接受每次数据拆分,并接管将一个拆分或一组拆分分配给给定任务的责任。
然后,Tez框架控制数据的生成和移动,即在中间步骤之间生成数据的位置以及如何在2个顶点/阶段之间移动数据。但是,它不控制用户插件提供的底层数据内容/结构,分区或序列化逻辑。以上只是一个带有其他复杂性的高级视图。通过将特定问题发布到开发列表(http://tez.apache.org/mail-lists.html)
,您将获得更详细的答案