Hive 托管表问题,从 CDP 中的 hdfs 位置创建 Hive 表

问题描述 投票:0回答:1

我有一个 CDP 7.3.1,使用 sqoop ,我已将 Postgres 数据库表中的数据加载到 HDFS 位置 /ts/gp/node 中。现在我正在尝试在此创建一个配置单元表。我收到以下错误。请帮忙

CREATE TABLE dsk.node
(
    district  string,
    zone  string
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ','  LINES TERMINATED BY '\n' STORED AS TEXTFILE LOCATION '/ts/gp/node'
ERROR: ImpalaRuntimeException: Error making 'createTable' RPC to Hive Metastore:
CAUSED BY: MetaException: A managed table's location should be located within managed warehouse root directory or within its database's managedLocationUri. Table node's location is not valid:hdfs://gFasService/ts/gp/node, managed warehouse:hdfs://gFasService/warehouse/tablespace/managed/hive
hive sqoop cloudera-cdh cloudera-cdp
1个回答
0
投票

如果您想要托管表,请在不指定位置的情况下创建它

CREATE TABLE dsk.node
(
    district  string,
    zone  string
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ','  LINES TERMINATED BY '\n'; 

使用

DESCRIBE FORMATTED dsk.node;
并检查位置,请参阅手册

然后将数据加载到上面 DESCRIBE 命令的位置,如果您已将数据加载到其他位置,只需使用

hdfs dfs -cp
命令复制它。

© www.soinside.com 2019 - 2024. All rights reserved.