gpt4 book ai didi

hadoop - 无法在S3位置的Shark for Hive表中恢复分区

转载 作者:行者123 更新时间:2023-12-02 21:51:01 25 4
gpt4 key购买 nike

我正在尝试在EMR上使用Shark,但似乎无法从位置设置为S3存储桶的表中恢复分区。尝试显示分区时我什么也没得到。

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/中的日志文件。

根据 the Hive language manualMSCK REPAIR TABLE logs命令应等效于Amazons Hive扩展 ALTER TABLE logs RECOVER PARTITIONS,但是当我运行该命令时,没有可见的分区。我用 ALTER TABLE logs RECOVER PARTITIONS在Hive中尝试了完全相同的东西,它就像一个魅力。
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)

我在使用Shark时会在这里错过什么吗?

最佳答案

我与AWS进行了交谈,他们说我目前唯一的选择是坚持使用Hive,因为MSCK REPAIR TABLE在处理位于S3中的表时会遇到一些问题(这就是他们添加ALTER TABLE RECOVER PARTITION命令的原因)。

关于hadoop - 无法在S3位置的Shark for Hive表中恢复分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20995489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com