Mapreduce 如何在ApacheTez中增加映射器和还原器

Mapreduce 如何在ApacheTez中增加映射器和还原器,mapreduce,hive,yarn,hiveql,azure-hdinsight,Mapreduce,Hive,Yarn,Hiveql,Azure Hdinsight,我知道这个简单的问题,我需要这个社区对这个查询提供一些帮助,当我用ORC格式创建PartitionTable时,当我尝试从指向210列的2GB文件的非分区表转储数据时,我看到映射器的数量是2,reducer是2。有没有办法增加映射器和还原器。我的假设是,我们不能像MR 1.0那样设置映射器和减速机的数量,它基于纱线容器大小、映射器最小内存和最大内存等设置。有谁能建议我TEz计算映射器和还原器吗。保持内存大小设置的最佳价值是什么,这样我就不会遇到:Java堆空间,Java内存不足问题。我的文件大小

我知道这个简单的问题,我需要这个社区对这个查询提供一些帮助,当我用ORC格式创建PartitionTable时,当我尝试从指向210列的2GB文件的非分区表转储数据时,我看到映射器的数量是2,reducer是2。有没有办法增加映射器和还原器。我的假设是,我们不能像MR 1.0那样设置映射器和减速机的数量,它基于纱线容器大小、映射器最小内存和最大内存等设置。有谁能建议我TEz计算映射器和还原器吗。保持内存大小设置的最佳价值是什么,这样我就不会遇到:Java堆空间,Java内存不足问题。我的文件大小可能会增加到100GB。请在这方面帮助我。

您仍然可以设置纱线中映射器和减速器的数量。你试过了吗?如果是这样,请回到这里

纱线改变了底层的执行机制,但#映射器和#还原器描述的是作业需求,而不是作业资源的分配方式(这就是纱线和mrv1的不同之处)

传统的Map/Reduce有一个硬编码的Map和Reduce“slot”。正如你所说,纱线使用容器,每个应用都有容器。因此纱线更具弹性。但是#映射器和#还原器在这两种情况下都是作业的输入。而且在这两种情况下,映射器和还原器的实际数量可能与请求的数量不同。通常#减速器可以是

  • (a) 确切地说是请求的号码
  • (b) 只有一个减速器-如果工作需要,例如在总订单中

对于内存设置,如果您将hive与tez一起使用,以下两个设置将对您有用:

1) hive.tez.container.size-这是将使用的纱线容器的大小(值以MB为单位)


2) hive.tez.java.opts-这是用于每个任务的java选项。如果容器大小设置为1024MB,则将java选项设置为“-Xmx800m”而不是“-Xmx1024m”。Thread会杀死使用比指定容器大小更多内存的进程,并且考虑到java进程的内存占用通常会超过指定的Xmx值,将Xmx设置为与容器大小相同的值通常会导致问题。

当我尝试通过hive命令设置mapper和reducer时,tez有执行引擎,我的数字没有得到反映。您已经说过“纱线改变了底层的执行机制,但映射器和还原器描述的是作业要求,而不是作业资源的分配方式(这就是纱线和mrv1的区别)。”这意味着基于作业类型,纱线将分配容器,其中MRV1仅利用可用资源或通过减速器的设置。。你能详细说明一下“分配工作资源的方式”吗?我明白了。即使我们指定了#映射器和减速机的数量,根据工作要求/尺寸,如果可能不同,即它将大于1且小于等于所述的#减速机。如果我错了,请纠正我。。在一个容器中,我可以有更多的映射任务,或者在同一个容器(ram、CPU和i/O磁盘)中同时有映射和缩减器任务。。但在MR 1.0中,映射器将位于一个节点上,而reducer位于另一个节点上。不,一个容器中只运行一个映射器或reducer。