无法恢复shark中具有s3位置的配置单元表的分区

w51jfk4q  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(304)

我试图在emr上使用shark,但似乎无法从位置设置为s3 bucket的表中恢复分区。当我试图显示我的分区时,什么也得不到。

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 命令应该等同于amazons配置单元扩展 ALTER TABLE logs RECOVER PARTITIONS 根据hive语言手册,但是当我运行命令时,没有可见的分区。我在Hive里也试过同样的方法 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)

我用鲨鱼的时候是不是漏掉了什么?

3zwtqj6y

3zwtqj6y1#

我和aws谈过了,他们说我现在唯一的选择就是坚持把Hive作为我的选择 MSCK REPAIR TABLE 在处理s3中的表时有一些问题(这就是他们添加 ALTER TABLE RECOVER PARTITION 命令)。

相关问题