我直接用 Impala 3.4和Hive3.1。
问题是,如果您在配置单元中创建一个常规表,然后在impala中选择它,就会发生错误。
错误消息如下:
Query: show tables
+----------+
| name |
+----------+
| customer |
| lineitem |
| nation |
| orders |
| part |
| partsupp |
| region |
| supplier |
| t |
+----------+
Fetched 9 row(s) in 0.02s
[host.cluster.com] default> select * from customer;
Query: select * from customer
Query submitted at: 2020-11-20 09:56:12 (Coordinator: http://host.cluster.com:25000)
ERROR: AnalysisException: Operation not supported on transactional (ACID) table: default.customer
在hive中,acid表和orc表只关心是删除还是更新,但我知道选择是常见的。
事实上,select语句通常是通过hivejdbc执行的。只有 Impala 愿意帮助你理解为什么会发生这个错误。
2条答案
按热度按时间neekobn81#
我解决了这个问题。经确认,通过 Impala Hive创建的表运行正常。
有两种可能的原因:
将用hive2构建的impala连接到Hive3数据库。
创建我无法识别的配置单元表时,请设置与acid相关的默认标志。
shyt4zoc2#
此版本无法读取由配置单元创建的acid表。hive默认创建acid表。