Настройка удаленного метастаза улья на postgresql для EMR - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь настроить postgresql db в качестве внешнего метастора в Hive для AWS EMR. Я попытался разместить его на EC2 и RDS.

Я уже пробовал шаги, как указано здесь .

Но это не проходит, EMR завершается неудачей на этапе подготовки только с сообщением

На главном экземпляре (идентификатор экземпляра) инициализация приложения завершилась неудачно

Я не смог ничего расшифровать из журнала ошибок.

Я также скопировал jar-файл postgresql в пути

/ usr / lib / hive / lib / и / usr / lib / hive / jdbc / в случае, если EMR уже не имеет его, но все равно не поможет!

Затем я настраиваю систему, вручную редактируя hive-site.xml и устанавливая свойства:

javax.jdo.option.ConnectionURL
javax.jdo.option.ConnectionDriverName
javax.jdo.option.ConnectionUserName
javax.jdo.option.ConnectionPassword
datanucleus.fixedDatastore
datanucleus.schema.autoCreateTables

и должен был бежать hive --service metatool -listFSRoot.

После этих ручных настроек я смог заставить EMR использовать postgres db в качестве удаленного метастаза.

Можно ли как-нибудь заставить его работать, используя файл конфигурации, как указано в официальной документации?

Edit: Настройка конфигурации, которую я использую для удаленного метастажа mysql:

классификация = улей-сайт, свойство = [javax.jdo.option.ConnectionURL = JDBC: MySQL: // [хост]: 3306 / [имя_бд] createDatabaseIfNotExist = верно, javax.jdo.option.ConnectionDriverName = орг?. mariadb.jdbc.Driver, javax.jdo.option.ConnectionUserName = [пользователь], javax.jdo.option.ConnectionPassword = [передать]] * 1 034 *

1 Ответ

0 голосов
/ 30 августа 2018

Я никогда не мог найти чистый подход для настройки этого во время самого запуска EMR.

Основная проблема заключается в том, что EMR инициализирует схему с MySQL с помощью команды:

/usr/lib/hive/bin/schematool -initSchema -dbType MySQL

что должно быть postgres для нашего случая.

Следующие шаги вручную позволяют вам настроить postgres как внешнее метастороение:

1) Запустить кластер EMR с приложением куста с настройками по умолчанию.

2) Остановите улей с помощью команды:

sudo stop hive-server2

3) Скопировать jar postgresql-jdbc (хранящийся в каком-то месте S3) в /usr/lib/hive/lib/ в EMR

4) Перезаписать файл hive-site.xml по умолчанию в /usr/lib/hive/conf/ пользовательским файлом, содержащим конфигурацию JDO для Postgresql, работающего на узле EC2

5) Выполнить команду:

sudo /usr/lib/hive/bin/schematool -upgradeSchema -dbType postgres
...