无法加载配置单元表中的数据,该表是用分区依据创建的告诉我“Hive”有问题分区没有

llmtgqce  于 2021-05-29  发布在  Hadoop
关注(0)|答案(3)|浏览(383)

当我将数据加载到配置单元时,它告诉我“hive.partition不存在”是错误的
centos7.2配置单元0.12 hadoop 2.7.6

yqlxgs2m

yqlxgs2m1#

-----线路---------
当我创建表时,使用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中的数据库和表。数据库配置单元已经存在,但表分区确实不存在。
然后,我找到了一个这样的表名-->分区\u键

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

然后我描述并选择该表(分区\u键)

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的关键字is partition也不能把表名改成partition。
我需要帮助,我花了很多时间来处理。谢谢。

jpfvwuh4

jpfvwuh42#

--------更新以上载my hive-site.xml

zed5wv10

zed5wv103#


此网站不能填充超过30000个字符。我只使用默认配置 cp -r hive-default.xml hive-site.xml . 因此,我只是在这个默认站点中做了一些更改,如下所示:
hive.metastore.schema.verification false <property> <name>hive.server2.thrift.sasl.qop</name> <value>auth</value> <description>Sasl QOP value; Set it to one of following values to enable higher levels of protection for hive server2 communication with clients. "auth" - authentication only (default) "auth-int" - authentication plus integrity protection "auth-conf" - authentication plus integrity and confidentiality protection This is applicable only hive server2 is configured to use kerberos authentication. </description> </property> javax.jdo.option.ConnectionURL jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&useSSL=false JDBC connect string for a JDBC metastore <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> 其他更改包括connect名称passsword。不做任何关于hive-site.xml的事情。

相关问题