首页 > 解决方案 > 无法在 hive 表中加载数据,表由分区创建。告诉我'hive.partition 没有

问题描述

当我将数据加载到 hive 时,它​​告诉我“hive.partition 不存在”错误

centos7.2 蜂巢 0.12 hadoop 2.7.6

- - - - - - - -线 - - - - -

当我创建表时,使用外部表进入 MySQL,

细节是:

create external table people(id int,name string)

partitioned by (logdate string,hour string) row format delimited

fields terminated by ',';

但!加载数据时出错。

java.sql.SQLSyntaxErrorException: Table 'hive.PARTITIONS' doesn't exist

所以我检查 MySQL 中的数据库和表。并且数据库配置单元已经存在,但表分区确实不存在。

然后,我找到了一个这样的表名-->partition_keys

mysql> show tables;
+---------------------------+
| Tables_in_hive            |
+---------------------------+
| BUCKETING_COLS            |
| CDS                       |
| COLUMNS_V2                |
| DATABASE_PARAMS           |
| DBS                       |
| PARTITION_KEYS            |
| SDS                       |
| SD_PARAMS                 |

然后我描述并选择该表(partition_keys)

mysql> describe PARTITION_KEYS;
+--------------+---------------+------+-----+---------+-------+
| Field        | Type          | Null | Key | Default | Extra |
+--------------+---------------+------+-----+---------+-------+
| TBL_ID       | bigint(20)    | NO   | PRI | NULL    |       |
| PKEY_COMMENT | varchar(4000) | YES  |     | NULL    |       |
| PKEY_NAME    | varchar(128)  | NO   | PRI | NULL    |       |
| PKEY_TYPE    | varchar(767)  | NO   |     | NULL    |       |
| INTEGER_IDX  | int(11)       | NO   |     | NULL    |       |
+--------------+---------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> 
mysql> select * from PARTITION_KEYS;
+--------+--------------+-----------+-----------+-------------+
| TBL_ID | PKEY_COMMENT | PKEY_NAME | PKEY_TYPE | INTEGER_IDX |
+--------+--------------+-----------+-----------+-------------+
|      1 | NULL         | hour      | string    |           1 |
|      1 | NULL         | logdate   | string    |           0 |
|      6 | NULL         | hour      | string    |           1 |
|      6 | NULL         | logdate   | string    |           0 |
+--------+--------------+-----------+-----------+-------------+
4 rows in set (0.00 sec)

我的元数据在里面。

但我无法将数据加载到我制作的配置单元表中。我怎样才能做到这一点?

我发现它也无法将表名更改为分区导致MySQL的关键字是分区。

我需要帮助,我花了很多时间来处理它。谢谢。

------------------更新以上传我的 hive-site.xml--------------------- ------

该网站不能填写超过 30000 个字符。我只是使用默认配置 cp -r hive-default.xml hive-site.xml。因此,我只需在此默认站点中进行一些更改,如下所示:

其他更改是连接名称、密码。无需对 hive-site.xml 做任何事情。

标签: hadoophivehiveql

解决方案


推荐阅读