когда я загружал данные в улей, он сказал мне неправильно: «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 is section.
Мне нужна помощь, мне потребовалось много времени, чтобы разобраться с этим. ТНХ.
------------------ Обновление для загрузки моего hive-site.xml ----------------- ------------
этот сайт не может содержать более 30000 символов. И я просто использую конфигурацию по умолчанию cp -r hive-default.xml hive-site.xml
. Так что я просто внес некоторые изменения в этот сайт по умолчанию следующим образом:
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<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>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
другие изменения: имя подключения, пароль. Ничего не делая с hive-site.xml.