0
我試圖在EMR上使用鯊魚,我似乎無法從位置設置爲S3存儲桶的表中恢復我的分區。當我嘗試顯示我的分區時,我什麼也沒有得到。無法恢復鯊魚與S3位置Hive表中的分區
shark> MSCK REPAIR TABLE logs ;
OK
Time taken: 1.79 seconds
shark> SHOW PARTITIONS logs ;
OK
Time taken: 0.073 seconds
創建我的表像
SET hive.exec.dynamic.partition = true ;
SET hive.exec.dynamic.partition.mode = nonstrict ;
CREATE EXTERNAL TABLE IF NOT EXISTS logs (
time STRING,
thread STRING,
logger STRING,
identity STRING,
message STRING,
logtype STRING,
logsubtype STRING,
node STRING,
storageallocationstatus STRING,
nodelist STRING,
userid STRING,
nodeid STRING,
path STRING,
datablockid STRING,
hash STRING,
size STRING,
value STRING,
exception STRING,
server STRING,
app STRING,
version STRING
)
PARTITIONED BY (
dt STRING,
level STRING
)
ROW FORMAT
DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE
LOCATION 's3://my-log/parsed-logs/' ;
我的日誌桶包含位於s3://my-log/parsed-logs/dt=2014-01-03/level=ERROR/
一個日誌文件。
MSCK REPAIR TABLE logs
命令應該等同於亞馬遜蜂巢擴展ALTER TABLE logs RECOVER PARTITIONS
根據the Hive language manual,但是當我運行命令時,我得不到可見的分區。我試着用與ALTER TABLE logs RECOVER PARTITIONS
完全相同的東西在蜂巢中工作,就像一個魅力。
hive> ALTER TABLE logs RECOVER PARTITIONS ;
OK
Time taken: 0.975 seconds
hive> SHOW PARTITIONS logs ;
OK
dt=2014-01-03/level=ERROR
Time taken: 0.078 seconds, Fetched: 1 row(s)
我是否在使用鯊魚時丟失了某些東西?