1

作为从 Hortonworks 数据平台 (HDP v3.x) 迁移到 Cloudera 数据平台 (CDP) 7.1 版的一部分,我们正在测试我们的 Hadoop 应用程序。在测试时,我们在尝试创建托管 Hive 表时发现了以下问题。请就可能的解决方案提出建议。谢谢!

错误:编译语句时出错:FAILED:执行错误,从 org.apache.hadoop.hive.ql.ddl.DDLTask 返回代码 40000。MetaException(消息:托管表的位置应位于托管仓库根目录或其数据库的 managedLocationUri 内。表 MANAGED_TBL_A 的位置无效:hdfs://cluster/prj/Warehouse/Secure/APP/managed_tbl_a,托管仓库:hdfs: //集群/仓库/表空间/托管/配置单元)(状态=08S01,代码=40000)

DDL 脚本

create table if not exists MANAGED_TBL_A
(
   name string,
   id varchar(20),
   created_on TIMESTAMP,
   created_by VARCHAR(10)
)
partitioned by (partition_date varchar(20))
clustered by (id) into 5 buckets
stored as orc
location '/prj/Warehouse/Secure/APP/managed_tbl_a'
tblproperties ('compactorthreshold.hive.compactor.delta.num.threshold'='1','compactorthreshold.hive.compactor.delta.pct.threshold'='0.5','transactional'='true','orc.create.index'='true','orc.compress.size'='8192');
4

1 回答 1

2

hive.metastore.warehouse.dir- 是仓库根目录。

创建数据库时,请指定MANAGEDLOCATION- 托管表的位置根和LOCATION- 外部表的根。

MANAGEDLOCATION是在 hive.metastore.warehouse.dir

将该metastore.warehouse.tenant.colocation属性设置为true允许托管表 (MANAGEDLOCATION) 位于仓库根目录之外的公共位置,从而提供基于租户的公共根以设置配额和其他策略。

在本手册中查看更多详细信息:Hive 托管位置

于 2021-04-13T11:18:13.910 回答