Requirements This guide assumes you have access to a command-line environment or shell such as bash, zsh, etc. or Linux
or Mac OS X or PowerShell on Microsoft Windows. This guide also assumes that your command-line environment has access to
the tar utility. Please review additional requirements listed in the subsections below.
OpenMetadata is built using Java, DropWizard, and Jetty.Type the following command to verify that you have a supported version of the Java runtime installed.
java --version
To install Java or upgrade to Java 21, see the instructions for your operating system at How do I install
Java?.
To install MySQL see the instructions for your operating system (OS) at Installing and Upgrading MySQL
or visit one of the following OS-specific guides.
OpenMetadata supports ElasticSearch version 9.x. To install or upgrade Elasticsearch to a supported version, see the instructions for your operating system at
Installing ElasticSearch.If you are using AWS OpenSearch Service, OpenMetadata supports OpenSearch 3.x engine versions. For more information on AWS OpenSearch Service, see the official docs here.
OpenMetadata performs metadata ingestion using the Ingestion Framework. Learn more about how to deploy and manage
the ingestion workflows here.Collate versions have specific Airflow compatibility requirements to ensure seamless metadata ingestion. Collate 2.0.5 uses Airflow 3.3.2 for the bundled ingestion image. Ensure that your Airflow version aligns with your Collate deployment to maintain stability and functionality.
Our minimum specs recommendation for the OpenMetadata Deployment (one replica) is 2 vCPUs and 4 Gigs with 20 Gigs of volume size if using persistent volumes for logs.
For Elasticsearch, 2 vCPUs and 2 Gigs RAM (per instance) with 30 Gigs of Storage volume attached.
For the database, 2 vCPUs and 2 Gigs RAM (per instance) with 30 Gigs of Storage Volume Attached (dynamic expansion up to 100 Gigs).
These settings apply as well when using managed instances, such as RDS or AWS OpenSearch.
Visit the releases page and download the latest binary release.Release binaries follow the naming convention of openmetadata-x.y.z.tar.gz. Where x, y, and z represent the
major, minor, and patch release numbers.
Review and update the openmetadata.yaml configurations to match your environment. Specifically, consider aspects such
as the connection to the MySQL database or ElasticSearch. You can find more information about these configurations
here.
You may put one or more OpenMetadata instances behind a load balancer for reverse proxying.
To do this you will need to add one or more entries to the configuration file for your reverse proxy.
To use the Apache mod_proxy module as a reverse proxy for load balancing, update the VirtualHost tag in your
Apache config file to resemble the following.
<VirtualHost *:80> <Proxy balancer://mycluster> BalancerMember http://127.0.0.1:8585 <!-- First OpenMetadata server --> BalancerMember http://127.0.0.2:8686 <!-- Second OpenMetadata server --> </Proxy> ProxyPreserveHost On ProxyPass / balancer://mycluster/ ProxyPassReverse / balancer://mycluster/</VirtualHost>
To use OpenMetadata behind an Nginx reverse proxy, add an entry resembling the following the http context of your Nginx
configuration file for each OpenMetadata instance.
Amazon RDS (MySQL) engine version 8.0.42 or higher
Amazon OpenSearch Service engine version 3.x
Amazon RDS (PostgreSQL) engine version 17.6 or higher
For Production Systems, we recommend Amazon RDS to be in Multiple Availability Zones. For Amazon OpenSearch (or ElasticSearch) Service, we recommend Multiple Availability Zones with minimum 3 Master Nodes.Once you have the RDS and OpenSearch Services Setup, you can update the environment variables below for OpenMetadata bare metal systems to connect with Database and ElasticSearch.Below are the environment variables for OpenMetadata Server
# MySQL Environment VariablesDB_DRIVER_CLASS='com.mysql.cj.jdbc.Driver'DB_SCHEME='mysql'DB_PARAMS='allowPublicKeyRetrieval=true&useSSL=true&serverTimezone=UTC'DB_USER='<YOUR_MYSQL_USER_NAME>'DB_USER_PASSWORD='<YOUR_MYSQL_USER_PASSWORD>'DB_HOST='<YOUR_MYSQL_HOST_NAME>'DB_PORT='<YOUR_MYSQL_PORT>'OM_DATABASE='<YOUR_MYSQL_DATABASE_NAME>'
If your openmetadata application logs speaks about the below issue -
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "AsyncAppender-Worker-async-file-appender"Exception in thread "pool-5-thread-1" java.lang.OutOfMemoryError: Java heap spaceException in thread "AsyncAppender-Worker-async-file-appender" java.lang.OutOfMemoryError: Java heap spaceException in thread "dw-46" java.lang.OutOfMemoryError: Java heap spaceException in thread "AsyncAppender-Worker-async-console-appender" java.lang.OutOfMemoryError: Java heap space
This is due to the default JVM Heap Space configuration (1 GiB) being not enough for your workloads. In order to resolve this issue, head over to your openmetadata environment variables list and append the below environment variable
# environment variable file (either .bash_profile or .bashrc or add in conf/openmetadata-env.sh in release binaries)export OPENMETADATA_HEAP_OPTS="-Xmx2G -Xms2G"
The flag Xmx specifies the maximum memory allocation pool for a Java virtual machine (JVM), while Xms specifies the initial memory allocation pool.Restart the OpenMetadata Application using ./bin/openmetadata.sh start which will start the service using a linux process.