2016-10-25 16 views
0

我知道hive地圖邊連接使用內存。 我可以使用SSD而不是內存嗎? 我想通過將尺寸表放在SSD上來進行地圖邊連接。 這可能嗎?關於Apache Hive Map方面加入

+0

您可以用'分佈式cahce'(HDFS) – mrsrinivas

+0

你能詳細談談那一點? – Kangmini

+0

您使用的是什麼執行引擎? – mrsrinivas

回答

0

我會盡量解釋你的Hadoop分佈式緩存來回答你的問題:

DistributedCache是​​一個Map-Reduce框架提供的緩存文件(在你的情況是要蜂巢表的設施加入)應用程序需要。

的DistributedCache假定通過URL指定的文件已經存在於文件系統(這是你的SSD或HDD)在url中指定的路徑,並通過集羣中的每一臺機器進行訪問。

所以,具有諷刺意味的是Hadoop的框架工作,誰決定是否將內存映射文件 (RAM /紗)或SSD/HDD取決於地圖文件 大小。

雖然默認情況下,地圖連接(作爲小型表)使用的表的最大大小爲1,000,000,000字節(大約1 GB),但您也可以通過hive set properties示例手動增加此值:

set hive.auto.convert.join.noconditionaltask = true;

set 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

+0

這可能嗎? 請直觀解釋:( – Kangmini

+0

?????????????????? – Kangmini