Я пытаюсь настроить postgresql db в качестве внешнего хранилища метаданных Hive для AWS EMR. Я пробовал разместить его как на EC2, так и на RDS.
Я уже пробовал шаги, указанные здесь а>.
Но это не проходит, EMR не работает на этапе подготовки только с сообщением
На главном экземпляре (идентификатор экземпляра) не удалось выполнить подготовку приложения.
Я не смог ничего расшифровать из журнала отказов.
Я также скопировал jar-файл postgresql jdbc в пути
/ 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 в качестве удаленного хранилища метаданных.
Есть ли способ заставить его работать, используя файл конфигурации, как указано в официальной документации?
Изменить: параметр конфигурации, который я использую для удаленного хранилища метаданных mysql:
classification = hive-site, properties = [javax.jdo.option.ConnectionURL = jdbc: mysql: // [host]: 3306 / [dbname]? createDatabaseIfNotExist = true, javax.jdo.option.ConnectionDriverName = org.mariadb.jdbc .Driver, javax.jdo.option.ConnectionUserName = [пользователь], javax.jdo.option.ConnectionPassword = [пароль]]