hive:create语句未运行(正在移动)

qvk1mo1f  于 2021-06-02  发布在  Hadoop
关注(0)|答案(4)|浏览(252)

我用的是hive的第13个cloudera版本。
我在运行任何create语句时遇到问题。其他操作,如dml和drop,alter都可以正常工作。下面是我试图运行的示例语句,有什么我遗漏的吗?

CREATE EXTERNAL TABLE IF NOT EXISTS PROCESS.aggregated_rspns
(
id int,
dt string,
hour string,
rspns_count bigint,
highest_rspns_count bigint
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\001'
LOCATION '/xyz/pqr/aggregated_rspns';

有人能帮我解决这个问题吗。
如果需要进一步的信息,请告诉我。

hkmswyz6

hkmswyz61#

CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name

我认为你需要先建立数据库。在您的情况下,数据库进程需要存在。

yacmzcpb

yacmzcpb2#

这是众所周知的Hive问题。
如果我们在下面提到的Hive属性是真的
hive.support.concurrency=真
和长时间运行的insert-overwrite语句同时运行
上面提到的属性在表上创建的锁很少,这一点很明显,在数据库上也是配置单元的可用性问题。为了避免这种情况,我们可以尝试将第一个配置单元属性设置为false,这可能会有所帮助。
这个问题已经解决,但尚未发布,它包括一个修复程序(只有在使用dbtxnmanager时才适用)。

3qpi33ja

3qpi33ja3#

请确保,
位置是hdfs目录,而不是文件名。
hdfs目录中只有一个相关的输入文件。
如果进程数据库中已存在表,则不会抛出任何错误。
即使查看一下文件中的数据也会有所帮助。

hgqdbh6s

hgqdbh6s4#

根据您的回答,bector是正确的,但您无需等待下一版本,您可以直接在所有HQL中添加以下属性:
hive.support.concurrency=true;
我已经试过了,它对我有效,它也应该对你有效。

相关问题