HDP-3.0 with postgres: Schema registry (HDF) startup fails on centos-7 (latest) because default postgresql (v9.2) is too old
See original GitHub issuefrom the Schema Registry Server Start log:
"migrate" option failed : org.flywaydb.core.internal.exception.FlywayEnterpriseUpgradeRequiredException: Flyway Enterprise or PostgreSQL upgrade required: PostgreSQL 9.2 is past regular support by PostgreSQL and no longer supported by Flyway Community Edition and Flyway Pro Edition, but still supported by Flyway Enterprise Edition.
The tested installation contains a (almost)full HDP-3.0.1 stack, plus NIFI and the 2 registries (REGISTRY_SERVER being the SchemaRegistry):
- host_group: "hdp-master"
services:
- REGISTRY_SERVER
- NIFI_REGISTRY_MASTER ...
Solution options
- using an external DB (to be installed+prepared outside this role), by configuring
database_options.external_hostname** con: DBs + Users needs to be populated (one could re-use the the existingdatabase_optionsvar tough) - consider using an external role to install/configure the databases (which often have such flexibility builtin), like: galaxy.ansible.com/geerlingguy/postgresql
- added role support to specify an optional/custom pgdg repo ** but I’m not sure howto to best support overriding the (included) postgres_* vars depending on the choosen version ** I will attach a patch, how I made it work, but where I ‘hardcoded’ existing vars to use 9.6. Of course different ways to make this configurable… but first I went @alexandruanghel 's opinion if this could be a viable contribution
Issue Analytics
- State:
- Created 5 years ago
- Comments:7 (7 by maintainers)
Top Results From Across the Web
HDF 3.0.2 - Install Schema Registry Errors using PostgreSQL
Does anyone have any idea of what I'm missing or mis-configured? stderr: Traceback (most recent call last):. File "/var/lib/ambari-agent/ ...
Read more >Unable to start postgresql service on CentOS 7 - Stack Overflow
service failed because the control process exited with error code. See "systemctl status postgresql-9.5.service" and "journalctl -xe" for ...
Read more >PostgreSQL service start failed on CentOS 7
Redirecting to /bin/systemctl start postgresql.service Job for postgresql.service failed because the control process exited with error code. See ...
Read more >VMware Tanzu Greenplum Platform Extension Framework v6 ...
PXF improves the display of error messages in the psql client, ... 9. Register the PXF 6.x extension files with Greenplum Database (see...
Read more >Cisco Data Intelligence Platform with Hortonworks Data ...
Cloudera Data Science Workbench. · Tiered Storage with HDFS on Cisco UCS S3260. · Cisco Boot optimized M.2 Raid controller for hardware RAID....
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

Always use https://supportmatrix.hortonworks.com to check for any compatibility. There is a large matrix of what’s supported or not so quite complex to do this in Ansible (at least in these playbooks, which or more “universal”).
You’re right in your assumptions, some versions might work (outside of that matrix), and for many things the difference between supported and not supported is “we haven’t tested / certified that” rather than “it won’t work”. Which is also a reason why I’ve been relaxed a bit about versions in the database role/vars folder.
For the moment, the static way of defining the version would be preferred: https://github.com/hortonworks/ansible-hortonworks/blob/master/playbooks/roles/database/vars/redhat-7.yml#L9 Obviously that can be moved to the main group_vars but I’d like to keep that as simple as possible. It also doesn’t help that some older db versions are not available in newer OS-es (like MySQL 5.6 in Ubuntu 16). And if really needed to overwrite that, you can use --extra-vars option.
To do these versions dynamically you would need to create some sort of internal matrix / variable file in Ansible, which will also need to be maintained, etc.
Anyway, the point of these playbooks is to provide a baseline. You can of course use other roles and prepare the database outside these playbooks. As long as
database_options.external_hostnameis set and the username/passwords are correct and the database is created in advance (essentially what thedatabaserole does) then the blueprint should work fine. This would actually be required if you use an external cloud service like RDS. And the reason why the entiredatabaserole is skipped ifdatabase_options.external_hostnameis not empty: https://github.com/hortonworks/ansible-hortonworks/blob/master/playbooks/prepare_nodes.yml#L17Another expectation that I have is people would customize this as much as possible for their “production”. Of course things can be contributed back if they are “generic” but it’s sometimes more efficient when you’re only using 1 flavour of OS and 1-2 versions of Ambari/HDP. And by customizing I also mean changing and maintaining the few variable files that might be required for that environment, including matching the Ambari version with HDP and the database version, and maybe customizing the repo url of the db: https://github.com/hortonworks/ansible-hortonworks/blob/master/playbooks/roles/database/vars/redhat-7.yml#L10
I just rebased the branch to upstream master 👍