2

mysqlメタストアを使用するようにHiveを構成しました。正常に動作します。

しかし、テーブルを削除しようとすると、次のようなエラーが発生します。

FAILED: Error in metadata: javax.jdo.JDODataStoreException: Error(s) were found while auto-creating/validating the datastore for classes. The errors are printed in the log, and are attached to this exception.
NestedThrowables:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

私はいくつかの調査を行いました、グーグルと公式のよくある質問は、mysqlの文字セット設定を変更するとこれが修正されると教えてくれました。

以下のような私のmysql設定

mysql> show variables like '%char%';
+--------------------------+----------------------------------------+
| Variable_name            | Value                                  |
+--------------------------+----------------------------------------+
| character_set_client     | utf8                                   |
| character_set_connection | utf8                                   |
| character_set_database   | utf8                                   |
| character_set_filesystem | binary                                 |
| character_set_results    | utf8                                   |
| character_set_server     | utf8                                   |
| character_set_system     | utf8                                   |
| character_sets_dir       | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+
8 rows in set (0.02 sec)

、、を除くすべての文字セット設定をからに変更しutf8ました。latin1character_set_filesystemcharacter_set_systemcharacter_sets_dir

そうしても、テーブルを削除しようとすると同じエラーが発生します。さらに悪いことに、新しいテーブルを作成するたびに、mysqlの文字セット設定がにリセットされutf-8ます。

誰でも助けてくれますか?

4

1 に答える 1

5

問題は、hive-site.xml で、次の「ハイブ」の作成で他のデータベースを使用することです。

 <property>
 <name>javax.jdo.option.ConnectionURL</name>
 <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
 </property>

データベース名を、このようにmysqlですでに作成した「メタストア」に変更します

<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true</value>
</property>

これが問題を解決することを願っています。私は同じ問題を抱えていて、このように修正しました。親切なマトゥク

于 2013-04-29T10:36:35.207 に答える