余老师带你学习大数据-Spark快速大数据处理第四章第三节Tez实战编写

Tez编程实战

逻辑DataFlow

在这里插入图片描述
Source就是hdfs的文件,经过map,tokenizer顶点相当于map,做完map就可以输出单词加上1,这样的keyvalue键值对。然后对键值对求和,因为这里的求和之后需要排序,所以求和的过程不像MapReduce直接做Reduce,Reduce之后将value和key进行交换,比如之前是Dear,1现在就是2,Dear。在做Reduce的过程中还增加了一个不仅要分区还要排序根据key进行排序,这时候的key就是之前的value。最后,sorter工作,现在sorter的工作就减少了,因为之前已经对键值对进行了排序,现在sorter要将key和value的值交换。进行双排序之后写入Sink。

代码解释

在这里插入图片描述

dataSource来源于输入input,dataSink是输出的类型以及输出的位置。

定义tokenizerVertex顶点,ProcessorDescriptor定义相关的处理方法,这个处理方法是TokenProcessor,做的还是MapReduce。

创建编summationEdgeConf,是给下一个求和的顶点,顶点先要OrderedPartitionedKVEdgeConfig就是不仅要分区还要排序,这个编的输入类型就是key和value。

定义求和的顶点,求和的顶点由SumProcessor定义,SumProcessor类似于Reduce。

创建sorterEdgeConf编,和summationEdgeConf的功能类似,输入的类型是intkey,stringvalue,因为之前将key和value的值进行交换,连接的下一个顶点就是排序。

sorterVertex进行排序,因为之前做过排序,此处就不需要进行排序了。只是将key和value变换位置。

在这里插入图片描述

先获取conf,然后解析输入。

hadoopShim是兼容不同版本,针对不同的版本定义一系列的方法名,这些方法名有可能在不同的版本中对应的名称或者参数的名称可能会不一样。

创建tezConf和TezClient,需要见dag程序提交给applicationmaster,提交之后就可以做runJob。

操作

下载程序

1、在app-11上,以hadoop登录集群。

命令:su – hadoop
在这里插入图片描述

2、进入tmp目录下。

命令:cd /tmp/
在这里插入图片描述

3、创建tez-example文件。

命令:mkdir tez-example
在这里插入图片描述

4、进入Spark-stack/Tez/tezExamples/src/main/java/目录下。

命令:cd Spark-stack/Tez/tezExamples/src/main/java/
在这里插入图片描述

5、将org.tar拷贝到tez-example目录下。

命令:cp org.tar /tmp/tez-example/
在这里插入图片描述

6、将脚本文件也拷贝到tez-example目录下。先进入脚本文件目录下。

命令:cd /tmp/Spark-stack/Tez/tezExamples/src/resource/
在这里插入图片描述

7、将脚本文件也拷贝到tez-example目录下。

命令:cp buildExamples.sh /tmp/tez-example/
在这里插入图片描述

8、进入tez-example目录下。

命令:cd /tmp/tez-example/

在这里插入图片描述

运行

9、给脚本执行权限。

命令:chmod a+x buildExamples.sh
在这里插入图片描述

10、运行打包和提交的工作。

命令:./buildExamples.sh run

在这里插入图片描述

详细学习内容可观看Spark快速大数据处理扫一扫~~~或者引擎搜索Spark余海峰
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45810046/article/details/109163522