大数据排序 Tez简介
上云乐
金乌之西,白日所没。先天术士,生彼鸿蒙。旭日英气,汪洋城府。
天命昭彰兴人道,皇极经世正纪纲。
造化御宇内,阴阳制六合。不睹诡谲术,岂知天数
这是一个大数据的时代,有诗曰: 上云乐 金乌之西,白日所没。先天术士,生彼鸿蒙。旭日英气,汪洋城府。 天命昭彰兴人道,皇极经世正纪纲。 造化御宇内,阴阳制六合。不睹诡谲术,岂知天数不可违。 数法是术士之严父,逻辑乃术士之老亲。起手创实数,俯身定圆周。 云见日月初生时,造就代数与分析。 扶顶弄牛顿,万古夜始明。洒水分智慧,欧高黎嘉陈。 浑然归一体,广邃妙绝伦。生死了不尽,谁明此士是仙真。 赤县推八卦,白冷立先知。别来几多时,革故换人间。 硅谷有三圣,半路颓洪荒。信息应运起,网络入华夏。雅虎建搜索,谷歌兴数据。 叱咤四海动,策马五洲平。举足蹋大道,人心自归张。 术士感天意,跨海进秘方。数据分析,机器学习。 是仙人手段,鸣舞传寰宇。参数调优,模型迭代。 能预测,可识别。大数据,图网络。人工智能显圣手。 拜大德,献秘术。天轮转,新元开。 模型九九八十一万变,长存留世间。 TEZ 我们在上一篇文章中提到过,MapReduce模型虽然很厉害,但是它不够的灵活,一个简单的join都需要很多骚操作才能完成,又是加标签又是笛卡尔积。那有人就说我就是不想这么干那怎么办呢?Tez应运起,图飞入MR。 Tez采用了DAG(有向无环图)来组织MR任务(DAG中一个节点就是一个RDD,边表示对RDD的操作)。它的核心思想是把将Map任务和Reduce任务进一步拆分,Map任务拆分为Input-Processor-Sort-Merge-Output,Reduce任务拆分为Input-Shuffer-Sort-Merge-Process-output,Tez将若干小任务灵活重组大数据排序,形成一个大的DAG作业。 上图中蓝色框表示Map任务,绿色框表示Reduce任务,云图表示写动作,可以看出,Tez去除了MR中不必要的写过程和Map,形成一张大的DAG图,在数据处理过程中没有网hdfs写数据,直接向后继节点输出,从而提升了效率。 上图是Hadoop1到Hadoop2所做的改变,Hadoop1主要使用MapReduce引擎,到了Hadoop2,基于yarn,可以部署spark,tez等计算引擎,这里MapReduce作为一种引擎实现用的越来越少了,但是作为框架思路,tez本身也是MapReduce的改进。 TEZ的构成 Tez对外提供了6种可编程组件,分别是: Input:对输入数据源的抽象,它解析输入数据格式,并吐出一个个Key/value Output:对输出数据源的抽象,它将用户程序产生的Key/value写入文件系统 Paritioner:对数据进行分片,类似于MR中的Partitioner Processor:对计算的抽象,它从一个Input中获取数据,经处理后,通过Output输出 Task:对任务的抽象,每个Task由一个Input、Ouput和Processor组成 Maser:管理各个Task的依赖关系,并按顺依赖关系执行他们 除了以上6种组件,Tez还提供了两种算子,分别是Sort(排序)和Shuffle(混洗),为了用户使用方便,它还提供了多种Input、Output、Task和Sort的实现,具体如下: Input实现:LocalMergedInput(文件本地合并后作为输入),ShuffledMergedInput(远程拷贝数据且合并后作为输入) Output实现:InMemorySortedOutput(内存排序后输出),LocalOnFileSorterOutput(本地磁盘排序后输出),OnFileSortedOutput(磁盘排序后输出) Task实现:RunTimeTask(非常简单的Task,基本没做什么事) Sort实现:DefaultSorter(本地数据排序),InMemoryShuffleSorter(远程拷贝数据并排序) 参考: (编辑:92站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |