121 lines
4.4 KiB
Markdown
Raw Normal View History

2022-03-22 15:33:07 +00:00
---
description: >-
Learn how to run the OpenMetadata server in development mode by using Docker
and IntelliJ.
---
# OpenMetadata Server
2021-08-01 14:27:44 -07:00
## Prerequisites
2021-11-24 10:01:35 +05:30
* Make sure you have a local instance of MySQL and ElasticSearch.
* For an easy install of MySQL and ES, just install Docker on your local machine and run the following commands from the top-level directory
2021-11-24 10:01:35 +05:30
```
2022-03-10 08:59:13 +00:00
docker-compose -f docker/local-metadata/docker-compose-dev.yml up
```
2021-11-24 10:01:35 +05:30
* Bootstrap MySQL with tables
2022-03-22 15:33:07 +00:00
1. Create a distribution as explained [here](openmetadata-server.md#create-a-distribution-packaging)
2. Extract the distribution tar.gz file and run the following command
2021-11-24 10:01:35 +05:30
```
cd open-metadata-<version>/bootstrap
sh bootstrap_storage.sh drop-create-all
```
2021-11-24 10:01:35 +05:30
* Bootstrap ES with indexes and load sample data into MySQL
2022-03-22 15:33:07 +00:00
1. Run OpenMetadata service instances through IntelliJ IDEA following the instructions [here](openmetadata-server.md#run-instance-through-intellij-idea)
2. Once the logs indicate that the instance is up, run the following commands from the top-level directory
2021-11-24 10:01:35 +05:30
```
2021-11-28 01:40:19 -08:00
python3 -m venv venv
source venv/bin/activate
2022-03-10 08:59:13 +00:00
pip install -r ingestion/requirements.txt
2021-11-24 10:01:35 +05:30
make install_dev generate
cd ingestion
2021-11-24 10:01:35 +05:30
pip install -e '.[sample-data, elasticsearch]'
metadata ingest -c ./pipelines/sample_data.json
2021-11-24 10:01:35 +05:30
metadata ingest -c ./pipelines/sample_usage.json
metadata ingest -c ./pipelines/metadata_to_es.json
```
2022-03-22 15:33:07 +00:00
* You are now ready to explore the app by going to http://localhost:8585 \*If the web page doesn't work as intended, please take a look at the troubleshooting steps [here](openmetadata-server.md#troubleshooting)
2021-08-01 14:27:44 -07:00
## Building
The following commands must be run from the top-level directory.
`mvn clean install`
If you wish to skip the unit tests you can do this by adding `-DskipTests` to the command line.
2021-08-01 14:27:44 -07:00
2021-10-15 03:51:13 +05:30
## Create a distribution (packaging)
2021-08-01 14:27:44 -07:00
You can create a _distribution_ as follows.
2021-10-15 03:51:13 +05:30
```
2021-08-01 14:27:44 -07:00
$ mvn clean install
```
The binaries will be created at:
2021-10-15 03:51:13 +05:30
```
openmetadata-dist/target/open-metadata-<version>.pom
openmetadata-dist/target/open-metadata-<version>.tar.gz
2021-08-01 14:27:44 -07:00
```
2021-08-12 17:45:27 +00:00
## Run instance through IntelliJ IDEA
2021-08-01 14:27:44 -07:00
Add a new Run/Debug configuration like the below screenshot.
2021-08-01 14:27:44 -07:00
1. Click on Intellij - Run menu
2. Click on "Edit Configurations"
3. Click + sign and Select Application and make sure your config looks similar to the below image
2022-03-24 04:20:09 +00:00
![Intellij Runtime Configuration](<../../.gitbook/assets/Intellij-Runtime Config.png>)
2021-08-01 14:27:44 -07:00
2022-03-10 08:59:13 +00:00
## Add missing dependency
Right-click on catalog-rest-service
2022-03-24 04:20:09 +00:00
![](../../../.gitbook/assets/image-1-.png)
2022-03-10 08:59:13 +00:00
Click on "Open Module Settings"
2022-03-24 04:20:09 +00:00
![](../../../.gitbook/assets/image-2-.png)
2022-03-10 08:59:13 +00:00
Go to "Dependencies"
2022-03-24 04:20:09 +00:00
![](../../../.gitbook/assets/image-3-.png)
2022-03-10 08:59:13 +00:00
Click “+” at the bottom of the dialog box and click "Add"
2022-03-24 04:20:09 +00:00
![](../../../.gitbook/assets/image-4-.png)
2022-03-10 08:59:13 +00:00
Click on Library
2022-03-24 04:20:09 +00:00
![](../../../.gitbook/assets/image-5-.png)
2022-03-10 08:59:13 +00:00
In that list look for "jersey-client:2.25.1"
2022-03-24 04:20:09 +00:00
![](../../../.gitbook/assets/image-6-.png)
2022-03-10 08:59:13 +00:00
Select it and click "OK". Now run/debug the application.
## Troubleshooting
2021-11-24 10:01:35 +05:30
* If you see blank page at http://localhost:8585 , please check the logs at `logs/openmetadata.log`. You might be encountering one of the following errors:
* `connection refused` or `unreachable` - please confirm that MySQL and ES are reachable outside of docker by running `docker ps` and checking that ports 3306 and 9200 are listening on 0.0.0.0
* If ElasticSearch in Docker on Mac is crashing, try changing Preferences -> Resources -> Memory to 4GB
* If ElasticSearch logs show `high disk watermark [90%] exceeded`, try changing Preferences -> Resources -> Disk Image Size to at least 16GB
* `Public Key Retrieval is not allowed` - verify that the JDBC connect URL in `conf/openmetadata.yaml` is configured with the parameter `allowPublicKeyRetrieval=true`
2022-03-22 15:33:07 +00:00
* Browser console shows javascript errors, try doing a [clean build](openmetadata-server.md#building). Some npm packages may not have been built properly.
2021-08-01 14:27:44 -07:00
## Coding Style
2022-03-10 08:59:13 +00:00
1. [Refer to coding guidelines](https://github.com/open-metadata/OpenMetadata/blob/main/docs/open-source-community/developer/docs/open-source-community/developer/backend/coding-style.md)
2021-10-15 03:51:13 +05:30
2. Configure IntelliJ to disable the \[wild-card imports]
2021-08-01 14:27:44 -07:00
2021-10-15 03:51:13 +05:30
([https://www.jetbrains.com/help/idea/creating-and-optimizing-imports.html#disable-wildcard-imports](https://www.jetbrains.com/help/idea/creating-and-optimizing-imports.html#disable-wildcard-imports))