百度搜索难得一见 挺不错
郑州百度开户,郑州百度开户公司,郑州百度代理商 2023.5.28百度搜索难得一见 挺不错
MapReduce 任务组合成一个作业,该作业被视为 DAG 中的一个节点,执行并发和序列化。同时,DAG 的边缘表示作业之间的数据移动。Tez 与数据类型无关,因此它只关心数据的移动(而不是它采用的格式)。通过改进 MapReduce 的一些限制,Tez 试图提高数据处理作业的性能。这种增加的效率使程序员能够做出他们认为最适合他们的项目的设计和开发选择。2023.5.28百度搜索难得一见 挺不错
郑州百度开户,郑州百度开户公司,郑州百度代理商
一、tez产生背景
2023.5.28百度搜索难得一见 挺不错
MR性能差,资源消耗大,如:Hive作业之间的数据不是直接流动的,而是借助HDFS作为共享数据存储系统,即一个作业将处理好的数据写入HDFS,下一个作业再从HDFS重新读取数据进行处理。很明显更高效的方式是,第一个作业直接将数据传递给下游作业。
郑州百度开户,郑州百度开户公司,郑州百度代理商
通过允许Apache Hive和Apache Pig等项目运行复杂的DAG任务,Tez可以用来处理数据,以前需要多个MR作业,现在只需要一个Tez作业就可以了,如下所示。
2023.5.28百度搜索难得一见 挺不错
二、TEZ调度器
郑州百度开户,郑州百度开户公司,郑州百度代理商
Tez调度器在决定任务分配时会考虑很多事情——任务位置要求、容器的兼容性、集群上可用的总资源、挂起任务请求的优先级、自动并行化、释放应用程序不能再使用的资源(因为数据不是本地数据)等。它还维护一个带有共享注册表对象的预热JVM连接池。应用程序可以选择将不同类型的预计算信息存储在这些共享注册表对象中,以便可以重用它们,而无需以后重新计算它们,并且这组共享连接和容器池资源可以非常快速地运行这些任务。
2023.5.28百度搜索难得一见 挺不错
三、TEZ的灵活性
2023.5.28百度搜索难得一见 挺不错
Tez为开发人员处理复杂的处理逻辑提供了很大的灵活性。这可以用Hive如何利用Tez的一个例子来说明。
郑州百度开户,郑州百度开户公司,郑州百度代理商
让我们来看看这个典型的TPC-DS查询模式,你正在用一个事实表连接多个表。大多数优化器和查询系统可以做右上角的事情:如果维度表很小,那么他们可以用大的事实表广播连接所有的维度表,你也可以在Tez上做同样的事情。2023.5.28百度搜索难得一见 挺不错
但是,如果这些广播有用户定义的函数,而这些函数的计算成本很高呢?你可能无法通过这种方式完成所有这些工作。你可能要把你的任务分成不同的阶段 ,这就是左边的拓扑结构向你展示的内容。第一个维度表与事实表进行广播式连接。然后将结果与第二个维度表进行广播连接。
郑州百度开户,郑州百度开户公司,郑州百度代理商 2023.5.28百度搜索难得一见 挺不错
在这里,第三个维度的表不能广播,因为它太大了。你可以选择做一个shuffle join,Tez可以有效地浏览拓扑结构,而不会因为你不能做右上角的那张表而失败。
2023.5.28百度搜索难得一见 挺不错
用Tez进行这种Hive查询的两个好处是:2023.5.28百度搜索难得一见 挺不错