Подтвердить что ты не робот

Проблемы с установкой улья: база данных метаданных улья не инициализирована

Я попытался установить куст на малине pi 2. Я установил Hive, распакуя пакет Hive и установил $HADOOP_HOME и $HIVE_HOME вручную под пользовательской группой hduser, которую я создал. При запуске улья появляется следующее сообщение об ошибке: Улей

ОШИБКА StatusLogger Файл конфигурации log4j2 не найден. Использование конфигурации по умолчанию: запись только ошибок на консоль.

Исключение в потоке "main" java.lang.RuntimeException: База данных метаданных улья не инициализируется. Для создания схемы используйте schematool (например./schematool -initSchema -dbType...). Если необходимо, не забудьте включить опцию автоматического создания базовой базы данных в строке подключения JDBC (например,? CreateDatabaseIfNotExist = true для mysql)

Итак, я запустил команду, предложенную в приведенном выше сообщении об ошибке: schematool -dbType derby -initSchema Я получил сообщение об ошибке:

Ошибка: FUNCTION 'NUCLEUS_ASCII' уже существует. (Состояние = X0Y68, код = 30000) org.apache.hadoop.hive.metastore.HiveMetaException: инициализация схемы НЕИСПРАВНО! Состояние Метасторе было бы непоследовательным!! * сбой схемы schemaTool

Кажется, нет никакой полезной информации, когда я пытаюсь выполнить эту ошибку в Интернете. Любая помощь или любое объяснение того, как работает Hive с Derby, будут оценены!

4b9b3361

Ответ 1

После установки улья, если первое, что вы сделали, это запустить куст, куст попытался создать/инициализировать metastore_db, но, видимо, может не получиться правильно. В этом первоначальном запуске, возможно, вы заметили свою ошибку:

Exception in thread "main" java.lang.RuntimeException: Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed, don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql)

Запуск улья, даже если он терпит неудачу, создает каталог metastore_db в каталоге, из которого вы запустили куст:

ubuntu15-laptop: ~ $>ls -l |grep meta
drwxrwxr-x 5 testuser testuser 4096 Apr 14 12:44 metastore_db

Итак, когда вы попытались запустить

ubuntu15-laptop: ~ $>schematool -initSchema -dbType derby

Метастор уже существует, но не в полной форме.

Soooooo ответ:

  • Прежде чем запускать улей в первый раз, запустите

    schematool -initSchema -dbType derby

  • Если вы уже запустили куст, а затем попытались выполнить initSchema и он не смог:

    mv metastore_db metastore_db.tmp

  • Повторите

    schematool -initSchema -dbType derby

  • Запустите куст снова

** Также обратите внимание: если вы меняете каталоги, созданный выше metastore_db не будет найден! Я уверен, что есть веская причина для этого, что я еще не знаю, потому что я буквально пытаюсь использовать куст в первый раз сегодня. Ahhh здесь информация об этом: metastore_db создается везде, где я запускаю Hive

Ответ 2

Я установил куст с HomeBrew (MacOS) в /usr/local/Cellar/hive и afer running schematool -dbType derby -initSchema Появляется следующее сообщение об ошибке:

Запуск инициализации схемы метастабильности до 2.0.0 Инициализация script hive-schema-2.0.0.derby.sql Ошибка: FUNCTION 'NUCLEUS_ASCII' уже существует. (Состояние = X0Y68, код = 30000) org.apache.hadoop.hive.metastore.HiveMetaException: инициализация схемы НЕИСПРАВНО! Состояние метасторе было бы непоследовательным!!

Однако я не могу найти папку metastore_db или metastore_db.tmp в пути установки, поэтому я попробовал:

  • find /usr/ -name hive-schema-2.0.0.derby.sql
  • vi /usr/local/Cellar/hive/2.0.1/libexec/scripts/metastore/upgrade/derby/hive-schema-2.0.0.derby.sql
  • комментарий функции 'NUCLEUS_ASCII' и 'NUCLEUS_MATCHES'
  • rerun schematool -dbType derby -initSchema, тогда все будет хорошо!

надеюсь, что это поможет кому-то.

Ответ 3

У меня возникла аналогичная проблема, которую я исправил, удалив файлы базы данных дерби rm -Rf $HIVE_HOME/metastore_db

Помните, что это полностью удалит вашу схему!

После очистки старой схемы я мог бы повторно инициализировать с помощью:

$HIVE_HOME/bin/schematool -initSchema -dbType derby

Это может отличаться от того, где вы называете улей, попробуйте перейти в каталог установки улья и запустите ./bin/hive

Ответ 5

Если вы используете Derby, вы можете удалить файлы DB и запустить процесс init.

Или, если проблема не устранена, вы можете отредактировать файлы SQL, которые использует Hive. Например:

/usr/hdp/2.5.6.0-40/hive2/scripts/metastore/upgrade/mysql/ содержит те для MySQL.