2015-02-10 17 views
0

我是Hive的新手。無法在指定位置在配置單元中看到創建的數據庫

我在Hive中創建了一個數據庫,默認情況下數據庫是在Hive倉庫中創建的。當我對Hive倉庫運行-ls時,我能夠看到創建的數據庫practice.db。

查詢用於創建數據庫:

創建數據庫的做法

COMMENT '保存所有實踐表';

我在Hive中創建了另一個數據庫。當我對創建數據庫的路徑運行-ls命令時無法看到practice_first.db。

查詢用於創建數據庫:

創建數據庫practice_first

COMMENT '這裏/ somepath在HDFS' 保存所有實踐表'

位置;

即使我檢查Hive倉庫practice_first.db也不存在蜂巢倉庫中。

當我運行show數據庫時,我能夠在數據庫列表中看到practice_first數據庫。

Hive創建了practice_first.db的任何建議。

在此先感謝。

回答

1

它將在由LOCATION

檢查HIVE-1537this

+0

嗨@sonic根據JIRA鏈接它應該在指定的位置。但是當我運行-ls指定位置時,practice_first.db不在指定位置。請提供任何建議。 – Ram 2015-02-10 09:30:58

+0

它應該是,我只是在我的機器上試過它,它在那裏。 – 2015-02-10 10:57:42

+1

還有一點,當您指定位置時,除非您指定了位置,否則不會有該文件夾的.db擴展名。 – 2015-02-10 11:12:19

2

只是測試,以確保它應該會出現沒有任何表指定的路徑下生成添加和它的作用。嘗試在數據庫上使用描述所創建的驗證路徑後:

hive> create database test1 COMMENT 'testing' LOCATION '/user/testuser/test1.db'; 
OK 
Time taken: 0.63 seconds 
hive> describe database test1; 
OK 
test1 testing hdfs://nameserviceHA/user/testuser/test1.db  testuser USER 
Time taken: 0.183 seconds, Fetched: 1 row(s) 
hive> exit; 
$ hadoop fs -ls /user/testuser/ | grep test 
drwxr-xr-x - testuser testgrp   0 2015-02-12 15:43 /user/testuser/test1.db 

做同樣的默認位置會自動命名擴展名爲.db的目錄。此外,它看起來像在這種情況下,集團將蜂巢,而不是用戶的組:

hive> drop database test1; 
OK 
Time taken: 0.379 seconds 
hive> create database test1 COMMENT 'testing';         OK 
Time taken: 0.319 seconds 
hive> describe database test1; 
OK 
test1 testing hdfs://nameserviceHA/user/hive/warehouse/test1.db  testuser USER 
Time taken: 0.263 seconds, Fetched: 1 row(s) 
hive> exit; 

$ hadoop fs -ls /user/hive/warehouse | grep test1 
drwxrwxrwt - testuser   hive    0 2015-02-12 15:53 /user/hive/warehouse/test1.db 
0

您將可以看到practice_first.db目錄,如果

1)創建默認數據庫位置。

2)您在LOCATION CREATE DATABASE語句中明確提供了目錄名稱practice_first.db

相關問題