schematool未通过配置单元1.1.0的元存储验证

ygya80vv  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(404)

我刚刚部署了Cloudera5.12,正在安装hive。按照指示,我跑了

\i /usr/lib/hive/scripts/metastore/upgrade/postgres/hive-schema-1.1.0.postgres.sql

最后一步,创建元存储。当我运行schematool验证时

schematool -dbType postgres -validate

我得到一个错误:

Validating metastore schema tables
Table(s) [ [compaction_queue, completed_txn_components, hive_locks, next_compaction_queue_id, next_lock_id, next_txn_id, txn_components, txns] ] are missing from the metastore database schema.
Failed in schema table validation.
[FAIL]

其他一切都是成功的,我可以访问Hive数据库没有问题。如何修复此错误?

3bygqnnd

3bygqnnd1#

我使用 schematool . 我必须首先在postgresql上删除当前的元存储,使用以下信息:

> su - postgres
> psql

REVOKE CONNECT ON DATABASE thedb FROM public;
SELECT pid, pg_terminate_backend(pid) 
FROM pg_stat_activity 
WHERE datname = current_database() AND pid <> pg_backend_pid();
drop metastore;

然后用

/usr/lib/hive/bin/schematool -dbType postgres -initSchema -verbose -userName hiveuser -passWord thepassword

之后的验证工作:

> /usr/lib/hive/bin/schematool -dbType postgres -validate
Starting metastore validation

Validating schema version
Succeeded in schema version validation.
[SUCCESS]

Validating sequence number for SEQUENCE_TABLE
Succeeded in sequence number validation for SEQUENCE_TABLE.
[SUCCESS]

Validating metastore schema tables
Succeeded in schema table validation.
[SUCCESS]

Validating DFS locations
Succeeded in DFS location validation.
[SUCCESS]

Validating columns for incorrect NULL values.
Succeeded in column validation for incorrect NULL values.
[SUCCESS]

Done with metastore validation: [SUCCESS]
schemaTool completed

所以我认为如果有一个bug,那就是在metastore创建步骤上:

\i /usr/lib/hive/scripts/metastore/upgrade/postgres/hive-schema-1.1.0.postgres.sql

cloudera安装手册中有详细说明。

txu3uszq

txu3uszq2#

我相信这是一个错误。以下是我的发现:

$ find . -name "*.sql" -print |xargs grep compaction_queue
./postgres/hive-txn-schema-0.14.0.postgres.sql:CREATE TABLE "compaction_queue" (
./postgres/hive-txn-schema-0.14.0.postgres.sql:CREATE TABLE "next_compaction_queue_id" (
./postgres/hive-txn-schema-0.14.0.postgres.sql:INSERT INTO "next_compaction_queue_id" VALUES(1);
./postgres/hive-schema-0.14.0.postgres.sql:CREATE TABLE "compaction_queue" (
./postgres/hive-schema-0.14.0.postgres.sql:CREATE TABLE "next_compaction_queue_id" (
./postgres/hive-schema-0.14.0.postgres.sql:INSERT INTO "next_compaction_queue_id" VALUES(1);

如你所见,table next_compaction_queue_id 仅存在于postgresql架构版本0.14中。它不存在于任何其他版本或任何其他数据库类型中。我不相信这些是用过的。如果您有cloudera支持,请创建一个支持案例并请求支持人员创建jira。
一种解决方法是在 hive-schema-0.14.0.postgres.sql 文件并将这些表添加到配置单元元存储数据库中。因为它们没有被使用,所以不会造成任何伤害,但是它会消除schematool命令中的错误。

相关问题