SemanticException в режиме Hive Shell - PullRequest
0 голосов
/ 08 мая 2018

исключение куста

Я установил Hadoop 3.0.0 и Hive 2.3.1 на свой ПК.Параллельно я установил MySQL и работал с командами SQL в режиме оболочки SQL и работает нормально.Но при выполнении запросов в режиме оболочки Hive я получаю следующую ошибку:

hive> создать таблицу saurzcode (id int, строка имени);

FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Невозможно создать экземпляр org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

Пожалуйста, дайте мне знать причину сбоя.

Также просьба уточнить следующие запросы:

1) Разница между режимом оболочки куста и режимом оболочки mysql.

2) Зачем настраивать MySql Metastore для Hive?

Найдите конфигурацию hive-site.xml,

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

<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
</property>

<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hivelogin</value>
</property>

<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>apache</value>

</property>
</configuration>

1 Ответ

0 голосов
/ 08 мая 2018

Ваше оригинальное исключение Невозможно загрузить плагин аутентификации caching_sha2_password , как показано в журнале ошибок ниже.

org.apache.hadoop.hive.metastore.HiveMetaStore - Retrying creating default database after error: Unable to open a test connection to the given database. JDBC url = jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true
        , username = hivelogin. Terminating connection pool (set lazyInit to true if you expect to start your database after your app). Original Exception: ------
java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'.

Решение: Эта ошибка возникает из-за того, что во всех новых версиях MySQL добавлен дополнительный плагин пароля под названием « caching_sha2_password », и его необходимо правильно настроить на сервере MySQL, иначе вы можете просто использовать « mysql_native_password"параметр с" CREATE USER "в MySQL, как показано ниже, для его разрешения.

При создании пользователя мета-хранилища улья просто следуйте приведенной ниже команде.

CREATE USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT ALL PRIVILEGES ON metastore_db.* TO 'hive'@'%';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...