如何使用apache tez在hadoop纱线集群上运行mapCreduce作业?
正如tez的github页面所说,tez非常简单,它的核心只有两个组件:
数据处理管道引擎和
数据处理应用程序的主人,可以将上述任意数据处理“任务”放到任务DAG中
那么我的第一个问题是,如何将存在于tez-examples.jar中的现有mapreduce作业(如wordcount)转换为任务-DAG? 哪里? 或者他们不... ...?
我的第二个也是更重要的问题是关于这个部分:
tez中的每个'任务'具有以下内容:
谁负责在tez-tasks之间分割输入数据? 它是用户提供的代码还是Yarn(资源管理器)甚至tez本身?
输出阶段的问题是一样的。 提前致谢
要回答将MapReduce作业转换为Tez DAG的第一个问题:
任何MapReduce作业可以被认为是具有2个顶点(阶段)的单个DAG。 第一个顶点是Map阶段,它通过Shuffle边连接到下游顶点Reduce。
有两种MR作业可以在Tez上运行的方式:
对于您具有的数据处理相关问题:
用户提供理解要读取的数据以及如何分解数据的逻辑。 然后,Tez将分割每个数据,并接管将分割或一组分割分配给给定任务的责任。
然后Tez框架控制数据的生成和移动,即在中间步骤之间如何生成数据以及如何在2个顶点/阶段之间移动数据。 但是,它不控制由用户插件提供的基础数据内容/结构,分区或序列化逻辑。
以上只是一个高层次的视角,还有更多的错综复杂。 您将通过在开发列表(http://tez.apache.org/mail-lists.html)中发布特定问题来获得更详细的答案。
链接地址: http://www.djcxy.com/p/27467.html上一篇: How wordCount mapReduce jobs, run on hadoop yarn cluster with apache tez?