2015-10-22 29 views
0

我正在使用hive與鑽取。在Drill-Hive的情況下動態模式發現未完成

存儲插件信息:

{ 
    "type": "hive", 
    "enabled": true, 
    "configProps": { 
    "hive.metastore.uris": "", 
    "javax.jdo.option.ConnectionURL": "jdbc:mysql://localhost:3306/metastore_hive", 
    "javax.jdo.option.ConnectionDriverName": "com.mysql.jdbc.Driver", 
    "javax.jdo.option.ConnectionUserName": "root", 
    "javax.jdo.option.ConnectionPassword": "root", 
    "hive.metastore.warehouse.dir": "/user/hive/warehouse", 
    "fs.default.name": "file:///", 
    "hive.metastore.sasl.enabled": "false" 
    } 
} 

它工作正常查詢和所有。

然後,我想檢查它是否自動發現蜂巢中新創建的表。

我在嵌入模式開始鑽和使用

use hive.testDB; 

這裏testDB是蜂巢一個數據庫表t1 & t2用於蜂巢特定的數據庫。然後我問:

show tables; 

它給了我的表名

t1 
t2 

我在蜂巢創建表t3又在鑽解僱show tables;。 它仍然顯示t1 t2。 5-10分鐘後,我再次發射了show tables;,它顯示t1 t2 t3

我認爲應該在配置單元中添加t3後立即顯示t3

這種行爲的原因是什麼?以及鑽頭如何在內部處理?

回答

0

我問同樣的問題上鑽的社區&發現它的解決方案:

鑽採用高速緩存在其HiveMetaStoreClient,爲了減少開銷 訪問HiveMetaStore。默認情況下,cache TTL是60秒。

這是一個解決的問題。此問題已納入Drill 1.5。通過配置配置單元存儲插件,可以縮短緩存TTL的時間。

如果你想讓緩存TTL更短,你可以配置配置單元 存儲插件。

樣品蜂巢插件與緩存TTL5秒):

"configProps": { 
    "hive.metastore.uris": "thrift://hive.ip.address.com:9083", 
    ... // other setting, 

    "hive.metastore.cache-ttl-seconds": "5", 
    "hive.metastore.cache-expire-after": "access" 
} 

檢查的詳細信息here

相關問題