关于apache配置单元Map端连接

z31licg0  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(381)

我知道HiveMap侧连接使用内存。我可以用ssd代替内存吗?我想通过在ssd上放置维度表来执行mapside连接。有可能吗?

mkh04yzy

mkh04yzy1#

我将通过向您解释hadoop分布式缓存来回答您的问题:
distributedcache是MapReduce框架提供的一种工具,用于缓存应用程序所需的文件(在您的情况下,它是您要加入的配置单元表)。
distributedcache假设通过url指定的文件已经存在于文件系统(这是您的ssd或hdd)中,位于url指定的路径上,并且集群中的每台计算机都可以访问这些文件。
具有讽刺意味的是,hadoop框架决定是将map文件放入内存(ram/yarn)还是ssd/hdd,这取决于map文件的大小。
尽管默认情况下,Map联接(如小表)中要使用的表的最大大小为1000000000字节(约1 gb),但您也可以通过配置单元集属性手动增加此值示例:
设置hive.auto.convert.join.noconditionaltask=true;
设置hive.auto.convert.join.noconditionaltask.size=2000000000;
在从节点上执行作业的任何任务之前,框架会将必要的文件复制到该节点上。它的效率源于这样一个事实,即每个作业只复制一次文件,并且能够缓存从机上未存档的存档。
有关分布式缓存的详细信息,请访问以下链接:
https://hadoop.apache.org/docs/r2.6.3/api/org/apache/hadoop/filecache/distributedcache.html
https://hadoop.apache.org/docs/r1.2.1/api/org/apache/hadoop/filecache/distributedcache.html

相关问题