我用的是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';
有人能帮我解决这个问题吗。
如果需要进一步的信息,请告诉我。
4条答案
按热度按时间hkmswyz61#
我认为你需要先建立数据库。在您的情况下,数据库进程需要存在。
yacmzcpb2#
这是众所周知的Hive问题。
如果我们在下面提到的Hive属性是真的
hive.support.concurrency=真
和长时间运行的insert-overwrite语句同时运行
上面提到的属性在表上创建的锁很少,这一点很明显,在数据库上也是配置单元的可用性问题。为了避免这种情况,我们可以尝试将第一个配置单元属性设置为false,这可能会有所帮助。
这个问题已经解决,但尚未发布,它包括一个修复程序(只有在使用dbtxnmanager时才适用)。
3qpi33ja3#
请确保,
位置是hdfs目录,而不是文件名。
hdfs目录中只有一个相关的输入文件。
如果进程数据库中已存在表,则不会抛出任何错误。
即使查看一下文件中的数据也会有所帮助。
hgqdbh6s4#
根据您的回答,bector是正确的,但您无需等待下一版本,您可以直接在所有HQL中添加以下属性:
hive.support.concurrency=true;
我已经试过了,它对我有效,它也应该对你有效。