openmetadata本地编译环境搭建

本地环境:

一.源码下载

git clone git@github.com:open-metadata/OpenMetadata.git

二.目录结构 

image-20240718152741464

  • ingestion: Python模块,用于metadata获取,profile、quality任务获取

  • openmetadata-service:Java后端服务

  • openmetadata-ui:前端服务

  • openmetadata-oidc:单点登录集成模块

  • openmetadata-dist:编译后的服务jar包生成模块

  • conf:后端服务运行参数配置目录

  • docker:服务编译docker-compose目录

三.编译运行

1.预编译
git clone http://jn-gitlab.hollicube.com/group-analysis/OpenMetadata.git
cd openmetadata
python3 -m venv env
source env/bin/activate
pip install pre-commit
make install_dev
make install_test precommit_instal
2.antlr4安装
sudo make install_antlr_cli
3. python环境安装
pip install -r requirments.txt

requirments.txt

adal==1.2.7
adlfs==2023.8.0
aenum==3.1.11
aiobotocore==2.5.2
aiofiles==23.1.0
aiohttp==3.8.4
aioitertools==0.11.0
aiosignal==1.3.1
alembic==1.10.4
amqp==5.1.1
aniso8601==9.0.1
antlr4-python3-runtime==4.9.2
anyio==3.7.1
apache-airflow==2.6.3
apache-airflow-providers-docker==3.7.1
apache-airflow-providers-http==4.4.2
apispec==5.2.2
appdirs==1.4.4
argcomplete==3.1.1
asgiref==3.7.2
asn1crypto==1.5.1
async-timeout==4.0.2
asynch==0.2.2
attrs==23.1.0
Authlib==1.2.1
avro==1.11.3
azure-batch==14.0.0
azure-common==1.1.28
azure-core==1.27.1
azure-cosmos==4.4.0
azure-datalake-store==0.0.53
azure-identity==1.13.0
azure-keyvault-secrets==4.7.0
azure-kusto-data==0.0.45
azure-mgmt-containerinstance==1.5.0
azure-mgmt-core==1.4.0
azure-mgmt-datafactory==1.1.0
azure-mgmt-datalake-nspkg==3.0.1
azure-mgmt-datalake-store==0.5.0
azure-mgmt-nspkg==3.0.2
azure-mgmt-resource==23.0.1
azure-nspkg==3.0.2
azure-servicebus==7.11.0
azure-storage-blob==12.16.0
azure-storage-common==2.1.0
azure-storage-file==2.1.0
azure-storage-file-datalake==12.11.0
azure-synapse-spark==0.7.0
Babel==2.12.1
backoff==2.2.1
bcrypt==4.0.1
beautifulsoup4==4.12.2
billiard==4.1.0
bitarray==2.8.2
black==23.1a1
bleach==6.1.0
blinker==1.6.2
blis==0.7.11
boto3==1.26.161
botocore==1.29.161
cached-property==1.5.2
cachelib==0.9.0
cachetools==5.3.1
catalogue==2.0.10
cattrs==23.1.2
celery==5.3.1
certifi==2023.5.7
cffi==1.15.1
chardet==4.0.0
charset-normalizer==3.1.0
ciso8601==2.3.0
click==8.1.4
click-didyoumean==0.3.0
click-plugins==1.1.1
click-repl==0.3.0
clickclick==20.10.2
clickhouse-cityhash==1.0.2.4
clickhouse-driver==0.2.6
clickhouse-sqlalchemy==0.2.4
cloudpickle==2.2.1
collate-sqllineage==1.1.5
colorama==0.4.6
coloredlogs==14.0
colorlog==4.8.0
confection==0.1.3
ConfigUpdater==3.1.1
confluent-kafka==2.1.1
connexion==2.14.2
couchbase==4.1.8
cron-descriptor==1.4.0
croniter==1.3.15
cryptography==40.0.2
cx-Oracle==8.3.0
cymem==2.0.8
dagster==1.5.3
dagster-graphql==1.5.3
dagster-pipes==1.5.3
dask==2023.6.1
databricks-cli==0.18.0
databricks-sdk==0.11.0
databricks-sql-connector==2.9.3
datamodel-code-generator==0.22.1
db-dtypes==1.1.1
dbt-artifacts-parser==0.4.2
decorator==5.1.1
delta-spark==2.3.0
Deprecated==1.2.14
diff_cover==8.0.0
dill==0.3.1.1
distlib==0.3.6
distributed==2023.6.1
dnspython==2.3.0
docker==6.1.3
docstring-parser==0.15
docutils==0.20.1
ecdsa==0.18.0
elastic-transport==8.4.1
elasticsearch==7.13.1
elasticsearch-dbapi==0.2.10
elasticsearch-dsl==7.4.1
elasticsearch8==8.9.0
email-validator==1.3.1
entrypoints==0.4
et-xmlfile==1.1.0
eventlet==0.33.3
exceptiongroup==1.1.2
fastavro==1.8.4
filelock==3.12.2
Flask==2.2.5
Flask-Admin==1.6.0
Flask-AppBuilder==4.3.1
Flask-Babel==2.0.0
Flask-Caching==2.0.2
Flask-JWT-Extended==4.5.2
Flask-Limiter==3.3.1
Flask-Login==0.6.2
Flask-Session==0.5.0
Flask-SQLAlchemy==2.5.1
Flask-WTF==1.1.1
flatdict==4.0.1
flower==2.0.0
frozenlist==1.3.3
fsspec==2022.11.0
future==0.18.3
gcloud-aio-auth==4.2.3
gcloud-aio-bigquery==6.3.0
gcloud-aio-storage==8.2.0
gcsfs==2022.11.0
genson==1.2.2
GeoAlchemy2==0.14.1
gevent==22.10.2
gitdb==4.0.10
GitPython==3.1.38
giturlparse==0.12.0
google==3.0.0
google-ads==21.2.0
google-api-core==2.11.0
google-api-python-client==2.92.0
google-auth==2.21.0
google-auth-httplib2==0.1.0
google-auth-oauthlib==1.0.0
google-cloud==0.34.0
google-cloud-aiplatform==1.27.1
google-cloud-appengine-logging==1.3.1
google-cloud-audit-log==0.2.5
google-cloud-automl==2.11.2
google-cloud-bigquery==3.11.3
google-cloud-bigquery-datatransfer==3.11.2
google-cloud-bigquery-storage==2.22.0
google-cloud-bigtable==2.19.0
google-cloud-build==3.17.1
google-cloud-compute==1.12.1
google-cloud-container==2.26.0
google-cloud-core==2.3.3
google-cloud-datacatalog==3.13.1
google-cloud-dataflow-client==0.8.4
google-cloud-dataform==0.5.2
google-cloud-dataplex==1.5.1
google-cloud-dataproc==5.4.2
google-cloud-dataproc-metastore==1.12.0
google-cloud-dlp==3.12.2
google-cloud-kms==2.18.0
google-cloud-language==2.10.1
google-cloud-logging==3.5.0
google-cloud-memcache==1.7.2
google-cloud-monitoring==2.15.1
google-cloud-orchestration-airflow==1.9.1
google-cloud-os-login==2.9.1
google-cloud-pubsub==2.17.1
google-cloud-redis==2.13.1
google-cloud-resource-manager==1.10.2
google-cloud-secret-manager==2.16.2
#google-cloud-spanner==3.36.0
google-cloud-speech==2.21.0
google-cloud-storage==1.43.0
google-cloud-tasks==2.13.2
google-cloud-texttospeech==2.14.1
google-cloud-translate==3.11.2
google-cloud-videointelligence==2.11.3
google-cloud-vision==3.4.4
google-cloud-workflows==1.10.2
google-crc32c==1.5.0
google-re2==1.0
google-resumable-media==2.5.0
googleapis-common-protos==1.59.1
gql==3.4.1
graphene==3.3
graphql-core==3.2.3
graphql-relay==3.2.0
graphviz==0.20.1
greenlet==2.0.2
grpc-google-iam-v1==0.12.6
grpcio==1.59.0
grpcio-gcp==0.2.2
grpcio-health-checking==1.59.0
grpcio-status==1.56.0
grpcio-tools==1.59.0
gunicorn==20.1.0
h11==0.14.0
hdbcli==2.18.24
httpcore==0.16.3
httplib2==0.22.0
httpx==0.23.3
humanfriendly==10.0
humanize==4.7.0
hvac==1.1.1
idna==2.10
importlib-metadata==6.7.0
importlib-resources==5.12.0
impyla==0.18.0
inflect==5.6.2
inflection==0.5.1
iniconfig==2.0.0
isodate==0.6.1
isort==5.12.0
itsdangerous==2.1.2
Jinja2==3.1.2
jmespath==0.10.0
joblib==1.3.2
json-merge-patch==0.2
jsonpatch==1.32
jsonpath-ng==1.5.3
jsonpointer==2.4
jsonschema==4.17.3
jsonschema-spec==0.1.6
jsonschema-specifications==2023.6.1
kerberos==1.3.1
kombu==5.3.1
kubernetes==23.6.0
kubernetes-asyncio==24.2.3
langcodes==3.3.0
lazy-object-proxy==1.9.0
ldap3==2.9.1
leb128==1.0.5
limits==3.5.0
linkify-it-py==2.0.2
lkml==1.3.1
locket==1.0.0
lockfile==0.12.2
looker-sdk==23.10.0
lxml==4.9.3
lz4==4.3.2
Mako==1.2.4
Markdown==3.4.3
markdown-it-py==3.0.0
MarkupSafe==2.1.3
marshmallow==3.19.0
marshmallow-enum==1.5.1
marshmallow-oneofschema==3.0.1
marshmallow-sqlalchemy==0.26.1
mdit-py-plugins==0.4.0
mdurl==0.1.2
memory-profiler==0.61.0
mlflow-skinny==2.7.1
msal==1.22.0
msal-extensions==1.0.0
msgpack==1.0.5
msrest==0.7.1
msrestazure==0.6.4
multidict==6.0.4
murmurhash==1.0.10
mypy-boto3-appflow==1.28.0
mypy-boto3-rds==1.28.0
mypy-boto3-redshift-data==1.28.0
mypy-boto3-s3==1.28.0
mypy-extensions==1.0.0
mysqlclient==2.1.1
neo4j==5.3.0
networkx==3.1
numpy==1.24.4
oauthlib==3.2.2
okta==2.9.3
openapi-schema-validator==0.4.4
openapi-spec-validator==0.5.7
openmetadata-ingestion==1.2.0.0.dev0
openmetadata-managed-apis==1.2.0.0.dev0
openpyxl==3.1.2
oracledb==1.4.2
ordered-set==4.1.0
oscrypto==1.3.0
packaging==21.3
pandas==1.3.5
pandas-gbq==0.19.2
paramiko==3.2.0
partd==1.4.0
pathable==0.4.3
pathspec==0.9.0
pathy==0.10.2
pendulum==2.1.2
phonenumbers==8.13.23
pinotdb==0.5.0
platformdirs==3.8.1
pluggy==1.2.0
ply==3.11
portalocker==2.7.0
prance==23.6.21.0
preshed==3.0.9
presidio-analyzer==2.2.32
presto-types-parser==0.0.2
prison==0.2.1
prometheus-client==0.17.0
prompt-toolkit==3.0.39
proto-plus==1.22.3
protobuf==4.23.4
psutil==5.9.5
#psycopg2==2.9.9
pure-sasl==0.6.2
py4j==0.10.9.5
pyarrow==10.0.1
pyasn1==0.4.8
pyasn1-modules==0.2.8
PyAthena==3.0.8
pycparser==2.21
pycryptodomex==3.18.0
pydantic==1.10.11
pydash==7.0.6
pydata-google-auth==1.8.0
pydomo==0.3.0.10
pydruid==0.6.5
Pygments==2.15.1
pyhcl==0.4.4
PyHive==0.7.0
PyJWT==2.7.0
pymongo==4.5.0
pymssql==2.2.9
PyMySQL==1.1.0
PyNaCl==1.5.0
pyodbc==4.0.39
pyOpenSSL==23.2.0
pyparsing==3.1.0
pyrsistent==0.19.3
PySnooper==1.2.0
pyspark==3.3.3
pytest==7.4.2
python-daemon==3.0.1
python-dateutil==2.8.2
python-dotenv==1.0.0
python-http-client==3.3.7
python-jose==3.3.0
python-ldap==3.4.3
python-nvd3==0.15.0
python-on-whales==0.55.0
python-slugify==8.0.1
python-snappy==0.6.1
python-tds==1.13.0
pytz==2023.3
pytzdata==2020.1
PyYAML==6.0
redis==4.6.0
redshift-connector==2.0.912
referencing==0.29.1
regex==2023.10.3
requests==2.31.0
requests-aws4auth==1.2.3
requests-file==1.5.1
requests-oauthlib==1.3.1
requests-toolbelt==0.10.1
rfc3339-validator==0.1.4
rfc3986==1.5.0
rich==13.4.2
rich-argparse==1.2.0
rpds-py==0.8.8
rsa==4.9
ruamel.yaml==0.17.35
ruamel.yaml.clib==0.2.8
s3fs==0.4.2
s3transfer==0.6.1
sasl==0.3.1
scikit-learn==1.3.1
scipy==1.11.3
scramp==1.4.4
sendgrid==6.10.0
setproctitle==1.3.2
Shapely==1.8.5.post1
simple-salesforce==1.11.4
six==1.16.0
slack-sdk==3.21.3
smart-open==6.4.0
smmap==5.0.1
sniffio==1.3.0
snowflake-connector-python==3.0.4
snowflake-sqlalchemy==1.4.7
sortedcontainers==2.4.0
soupsieve==2.4.1
spacy==3.5.0
spacy-legacy==3.0.12
spacy-loggers==1.0.5
SQLAlchemy==1.4.49
sqlalchemy-bigquery==1.6.1
sqlalchemy-databricks==0.2.0
sqlalchemy-hana==0.5.0
SQLAlchemy-JSONField==1.0.1.post0
sqlalchemy-pgspider==0.1.0
sqlalchemy-pytds==0.3.5
sqlalchemy-redshift==0.8.12
SQLAlchemy-Utils==0.41.1
sqlalchemy-vertica==0.0.5
sqlfluff==2.1.4
sqlparse==0.4.3
srsly==2.4.8
sshtunnel==0.4.0
starkbank-ecdsa==2.2.0
starlette==0.31.1
statsd==4.0.1
tableau-api-lib==0.1.50
tabulate==0.9.0
tblib==2.0.0
tenacity==8.2.2
termcolor==2.3.0
text-unidecode==1.3
thinc==8.1.12
threadpoolctl==3.2.0
thrift==0.16.0
thrift-sasl==0.4.3
tldextract==5.0.0
toml==0.10.2
tomli==2.0.1
toolz==0.12.0
toposort==1.10
tornado==6.3.2
tqdm==4.66.1
trino==0.327.0
typeguard==4.0.0
typer==0.7.0
typing-compat==0.1.0
typing-inspect==0.9.0
typing_extensions==4.5.0
tzdata==2023.3
tzlocal==5.1
uc-micro-py==1.0.2
unicodecsv==0.14.1
universal-pathlib==0.1.3
uritemplate==4.1.1
urllib3==1.26.16
vertica-python==1.3.5
vine==5.0.0
virtualenv==20.23.1
wasabi==1.1.2
watchdog==3.0.0
watchtower==2.0.1
wcwidth==0.2.6
webencodings==0.5.1
websocket-client==1.6.1
Werkzeug==2.2.3
wrapt==1.15.0
WTForms==3.0.1
xmltodict==0.13.0
yarl==1.9.2
zict==3.0.0
zipp==3.15.0
zope.event==5.0
zope.interface==6.0
zstd==1.5.5.1
​
  1. python 源码编译(ingestion模块构建)
    make generate
5. 前端源码构建
# 安装依赖,编译json生成ts文件
make yarn_install_cache
# 启动本地项目
make yarn_start_dev_ui
6. 服务后端配置文件修改(conf/openmetadata.yaml)
#  Copyright 2021 Collate
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#  http://www.apache.org/licenses/LICENSE-2.0
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
​
clusterName: ${OPENMETADATA_CLUSTER_NAME:-openmetadata}
​
swagger:
  resourcePackage: org.openmetadata.service.resources
​
​
server:
  rootPath: '/api/*'
  applicationConnectors:
    - type: http
      port: ${SERVER_PORT:-8585}
  adminConnectors:
    - type: http
      port: ${SERVER_ADMIN_PORT:-8586}
​
logging:
  level: ${LOG_LEVEL:-INFO}
  loggers:
    org.openmetadata.service.util.OpenMetadataSetup:
      level: INFO
      appenders:
        - type: console
          logFormat: "%msg%n"
          timeZone: UTC
        - type: file
          logFormat: "%level [%d{ISO8601,UTC}] [%t] %logger{5} - %msg%n"
          layout:
            type: json
          currentLogFilename: ./logs/openmetadata-operations.log
          archivedLogFilenamePattern: ./logs/openmetadata-operations-%d{yyyy-MM-dd}-%i.log.gz
          archivedFileCount: 7
          timeZone: UTC
          maxFileSize: 50MB
  appenders:
    - type: console
      threshold: TRACE
      logFormat: "%level [%d{ISO8601,UTC}] [%t] %logger{5} - %msg%n"
      timeZone: UTC
    - type: file
      layout:
        type: json
        appendLineSeparator: true
      filterFactories:
        - type: audit-exclude-filter-factory
      threshold: TRACE
      logFormat: "%level [%d{ISO8601,UTC}] [%t] %logger{5} - %msg%n"
      currentLogFilename: ./logs/openmetadata.log
      archivedLogFilenamePattern: ./logs/openmetadata-%d{yyyy-MM-dd}-%i.log.gz
      archivedFileCount: 7
      timeZone: UTC
      maxFileSize: 50MB
    - type: file
      layout:
        type: json
        appendLineSeparator: true
      filterFactories:
        - type: audit-only-filter-factory
      threshold: TRACE
      logFormat: "%level [%d{ISO8601,UTC}] [%t] %logger{5} - %msg%n"
      currentLogFilename: ./logs/audit.log
      archivedLogFilenamePattern: ./logs/audit-%d{yyyy-MM-dd}-%i.log.gz
      archivedFileCount: 25
      timeZone: UTC
      maxFileSize: 50MB
​
database:
  # the name of the JDBC driver, mysql in our case
  driverClass: ${DB_DRIVER_CLASS:-org.postgresql.Driver}
  #${DB_DRIVER_CLASS:-com.mysql.cj.jdbc.Driver}
  # the username and password
  user: ${DB_USER:-postgres}
  password: ${DB_USER_PASSWORD:-******}
  url: jdbc:postgresql://*.*.*.*:15432/openmetadata_db?allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=UTC
  #  user: ${DB_USER:-openmetadata_user}
  #  password: ${DB_USER_PASSWORD:-openmetadata_password}
  #  url: jdbc:postgresql://127.0.0.1:5432/openmetadata_db?allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=UTC
  #jdbc:${DB_SCHEME:-mysql}://${DB_HOST:-localhost}:${DB_PORT:-3306}/${OM_DATABASE:-openmetadata_db}?${DB_PARAMS:-allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=UTC}
​
migrationConfiguration:
  flywayPath: "./bootstrap/sql/migrations/flyway"
  nativePath: "./bootstrap/sql/migrations/native"
  extensionPath: ""
​
# Authorizer Configuration
authorizerConfiguration:
  className: ${AUTHORIZER_CLASS_NAME:-org.openmetadata.service.security.DefaultAuthorizer}
  containerRequestFilter: ${AUTHORIZER_REQUEST_FILTER:-org.openmetadata.service.security.JwtFilter}
  #adminPrincipals: ${AUTHORIZER_ADMIN_PRINCIPALS:-[admin]}
  adminPrincipals:
    - "admin-user"
    - "admin"
    - "root"
  allowedEmailRegistrationDomains: ${AUTHORIZER_ALLOWED_REGISTRATION_DOMAIN:-["all"]}
  principalDomain: ${AUTHORIZER_PRINCIPAL_DOMAIN:-"hollysys.com"}
  enforcePrincipalDomain: ${AUTHORIZER_ENFORCE_PRINCIPAL_DOMAIN:-false}
  enableSecureSocketConnection : ${AUTHORIZER_ENABLE_SECURE_SOCKET:-false}
​
authenticationConfiguration:
  provider: ${AUTHENTICATION_PROVIDER:-basic}
  # This is used by auth provider provide response as either id_token or code
  responseType: ${AUTHENTICATION_RESPONSE_TYPE:-id_token}
  # This will only be valid when provider type specified is customOidc
  providerName: ${CUSTOM_OIDC_AUTHENTICATION_PROVIDER_NAME:-""}
  publicKeyUrls: ${AUTHENTICATION_PUBLIC_KEYS:-[http://localhost:8585/api/v1/system/config/jwks]}
  authority: ${AUTHENTICATION_AUTHORITY:-https://accounts.google.com}
  clientId: ${AUTHENTICATION_CLIENT_ID:-""}
  callbackUrl: ${AUTHENTICATION_CALLBACK_URL:-""}
  jwtPrincipalClaims: ${AUTHENTICATION_JWT_PRINCIPAL_CLAIMS:-[email,preferred_username,sub]}
  enableSelfSignup : ${AUTHENTICATION_ENABLE_SELF_SIGNUP:-true}
  #  provider: "custom-oidc"
  #  providerName: "IDAAS"
  #  responseType: "code" #${AUTHENTICATION_RESPONSE_TYPE:-id_token}
  #  publicKeyUrls:
  #    #    - "http://localhost:8081/realms/data-sec/protocol/openid-connect/certs"
  #    - "http://localhost:8111/oauth2/keys"
  #    - "http://localhost:8585/api/v1/system/config/jwks" # Update with your Domain and Make sure this "/api/v1/config/jwks" is always configured to enable JWT tokens
  #  #  authority: "http://localhost:8081/realms/data-sec"
  #  authority: "http://localhost:8111"
  #  #  clientId: "open-metadata"
  #  clientId: "openmetadata"
  #  #  callbackUrl: "http://localhost:8585/callback"
  #  callbackUrl: "http://localhost:8111/callback"
  #  jwtPrincipalClaims: [email,preferred_username,sub] #${AUTHENTICATION_JWT_PRINCIPAL_CLAIMS:-[email,preferred_username,sub]}
  #  enableSelfSignup : ${AUTHENTICATION_ENABLE_SELF_SIGNUP:-true}
  samlConfiguration:
    debugMode: ${SAML_DEBUG_MODE:-false}
    idp:
      entityId: ${SAML_IDP_ENTITY_ID:-""}
      ssoLoginUrl: ${SAML_IDP_SSO_LOGIN_URL:-""}
      idpX509Certificate: ${SAML_IDP_CERTIFICATE:-""}
      authorityUrl: ${SAML_AUTHORITY_URL:-"http://localhost:8585/api/v1/saml/login"}
      nameId: ${SAML_IDP_NAME_ID:-"urn:oasis:names:tc:SAML:2.0:nameid-format:emailAddress"}
    sp:
      entityId: ${SAML_SP_ENTITY_ID:-"http://localhost:8585/api/v1/saml/metadata"}
      acs: ${SAML_SP_ACS:-"http://localhost:8585/api/v1/saml/acs"}
      spX509Certificate: ${SAML_SP_CERTIFICATE:-""}
      callback: ${SAML_SP_CALLBACK:-"http://localhost:8585/saml/callback"}
    security:
      strictMode: ${SAML_STRICT_MODE:-false}
      tokenValidity: ${SAML_SP_TOKEN_VALIDITY:-"3600"}
      sendEncryptedNameId: ${SAML_SEND_ENCRYPTED_NAME_ID:-false}
      sendSignedAuthRequest: ${SAML_SEND_SIGNED_AUTH_REQUEST:-false}
      signSpMetadata: ${SAML_SIGNED_SP_METADATA:-false}
      wantMessagesSigned: ${SAML_WANT_MESSAGE_SIGNED:-false}
      wantAssertionsSigned: ${SAML_WANT_ASSERTION_SIGNED:-false}
      wantAssertionEncrypted: ${SAML_WANT_ASSERTION_ENCRYPTED:-false}
      wantNameIdEncrypted: ${SAML_WANT_NAME_ID_ENCRYPTED:-false}
      keyStoreFilePath: ${SAML_KEYSTORE_FILE_PATH:-""}
      keyStoreAlias: ${SAML_KEYSTORE_ALIAS:-""}
      keyStorePassword: ${SAML_KEYSTORE_PASSWORD:-""}
  ldapConfiguration:
    host: ${AUTHENTICATION_LDAP_HOST:-}
    port: ${AUTHENTICATION_LDAP_PORT:-}
    dnAdminPrincipal: ${AUTHENTICATION_LOOKUP_ADMIN_DN:-""}
    dnAdminPassword: ${AUTHENTICATION_LOOKUP_ADMIN_PWD:-""}
    userBaseDN: ${AUTHENTICATION_USER_LOOKUP_BASEDN:-""}
    groupBaseDN: ${AUTHENTICATION_GROUP_LOOKUP_BASEDN:-""}
    roleAdminName: ${AUTHENTICATION_USER_ROLE_ADMIN_NAME:-}
    allAttributeName: ${AUTHENTICATION_USER_ALL_ATTR:-}
    mailAttributeName: ${AUTHENTICATION_USER_MAIL_ATTR:-}
    usernameAttributeName: ${AUTHENTICATION_USER_NAME_ATTR:-}
    groupAttributeName: ${AUTHENTICATION_USER_GROUP_ATTR:-}
    groupAttributeValue: ${AUTHENTICATION_USER_GROUP_ATTR_VALUE:-}
    groupMemberAttributeName: ${AUTHENTICATION_USER_GROUP_MEMBER_ATTR:-}
    #the mapping of roles to LDAP groups
    authRolesMapping: ${AUTH_ROLES_MAPPING:-""}
    authReassignRoles: ${AUTH_REASSIGN_ROLES:-[]}
    #optional
    maxPoolSize: ${AUTHENTICATION_LDAP_POOL_SIZE:-3}
    sslEnabled: ${AUTHENTICATION_LDAP_SSL_ENABLED:-}
    truststoreConfigType: ${AUTHENTICATION_LDAP_TRUSTSTORE_TYPE:-TrustAll}
    trustStoreConfig:
      customTrustManagerConfig:
        trustStoreFilePath: ${AUTHENTICATION_LDAP_TRUSTSTORE_PATH:-}
        trustStoreFilePassword: ${AUTHENTICATION_LDAP_KEYSTORE_PASSWORD:-}
        trustStoreFileFormat: ${AUTHENTICATION_LDAP_SSL_KEY_FORMAT:-}
        verifyHostname: ${AUTHENTICATION_LDAP_SSL_VERIFY_CERT_HOST:-}
        examineValidityDates: ${AUTHENTICATION_LDAP_EXAMINE_VALIDITY_DATES:-}
      hostNameConfig:
        allowWildCards: ${AUTHENTICATION_LDAP_ALLOW_WILDCARDS:-}
        acceptableHostNames: ${AUTHENTICATION_LDAP_ALLOWED_HOSTNAMES:-[]}
      jvmDefaultConfig:
        verifyHostname: ${AUTHENTICATION_LDAP_SSL_VERIFY_CERT_HOST:-}
      trustAllConfig:
        examineValidityDates: ${AUTHENTICATION_LDAP_EXAMINE_VALIDITY_DATES:-true}
​
jwtTokenConfiguration:
  rsapublicKeyFilePath: ${RSA_PUBLIC_KEY_FILE_PATH:-"./conf/public_key.der"}
  rsaprivateKeyFilePath: ${RSA_PRIVATE_KEY_FILE_PATH:-"./conf/private_key.der"}
  jwtissuer: ${JWT_ISSUER:-"http://iam.jn-sit.ieccloud.hollicube.com/"}
  keyId: ${JWT_KEY_ID:-"Gb389a-9f76-gdjs-a92j-0242bk94356"}
​
elasticsearch:
  searchType: ${SEARCH_TYPE:- "elasticsearch"}
  host: ${ELASTICSEARCH_HOST:-holli-om-es-svc.jn-sit.ieccloud.hollicube.com}
  port: ${ELASTICSEARCH_PORT:-80}
  #  host: ${ELASTICSEARCH_HOST:-localhost}
  #  port: ${ELASTICSEARCH_PORT:-9200}
  scheme: ${ELASTICSEARCH_SCHEME:-http}
  username: ${ELASTICSEARCH_USER:-""}
  password: ${ELASTICSEARCH_PASSWORD:-""}
  clusterAlias: ${ELASTICSEARCH_CLUSTER_ALIAS:-"openmetadata_local"}
  truststorePath: ${ELASTICSEARCH_TRUST_STORE_PATH:-""}
  truststorePassword: ${ELASTICSEARCH_TRUST_STORE_PASSWORD:-""}
  connectionTimeoutSecs: ${ELASTICSEARCH_CONNECTION_TIMEOUT_SECS:-5}
  socketTimeoutSecs: ${ELASTICSEARCH_SOCKET_TIMEOUT_SECS:-60}
  keepAliveTimeoutSecs: ${ELASTICSEARCH_KEEP_ALIVE_TIMEOUT_SECS:-600}
  batchSize: ${ELASTICSEARCH_BATCH_SIZE:-10}
  searchIndexMappingLanguage : ${ELASTICSEARCH_INDEX_MAPPING_LANG:-EN}
  searchIndexFactoryClassName : org.openmetadata.service.search.SearchIndexFactory
​
eventMonitoringConfiguration:
  eventMonitor: ${EVENT_MONITOR:-prometheus}  # Possible values are "prometheus", "cloudwatch"
  batchSize: ${EVENT_MONITOR_BATCH_SIZE:-10}
  pathPattern: ${EVENT_MONITOR_PATH_PATTERN:-["/api/v1/tables/*", "/api/v1/health-check"]}
  latency: ${EVENT_MONITOR_LATENCY:-[]} # For value p99=0.99, p90=0.90, p50=0.50 etc.
  # it will use the default auth provider for AWS services if parameters are not set
  # parameters:
  #   region: ${OM_MONITOR_REGION:-""}
  #   accessKeyId: ${OM_MONITOR_ACCESS_KEY_ID:-""}
  #   secretAccessKey: ${OM_MONITOR_ACCESS_KEY:-""}
​
eventHandlerConfiguration:
  eventHandlerClassNames:
    - "org.openmetadata.service.events.AuditEventHandler"
    - "org.openmetadata.service.events.ChangeEventHandler"
    - "org.openmetadata.service.events.WebAnalyticEventHandler"
​
pipelineServiceClientConfiguration:
  enabled: ${PIPELINE_SERVICE_CLIENT_ENABLED:-true}
  # If we don't need this, set "org.openmetadata.service.clients.pipeline.noop.NoopClient"
  className: ${PIPELINE_SERVICE_CLIENT_CLASS_NAME:-"org.openmetadata.service.clients.pipeline.airflow.AirflowRESTClient"}
  apiEndpoint: ${PIPELINE_SERVICE_CLIENT_ENDPOINT:-http://host.docker.internal:8080}
  metadataApiEndpoint: ${SERVER_HOST_API_URL:-http://host.docker.internal:8585/api}
  ingestionIpInfoEnabled: ${PIPELINE_SERVICE_IP_INFO_ENABLED:-false}
  hostIp: ${PIPELINE_SERVICE_CLIENT_HOST_IP:-""}
  healthCheckInterval: ${PIPELINE_SERVICE_CLIENT_HEALTH_CHECK_INTERVAL:-300}
  # This SSL information is about the OpenMetadata server.
  # It will be picked up from the pipelineServiceClient to use/ignore SSL when connecting to the OpenMetadata server.
  verifySSL: ${PIPELINE_SERVICE_CLIENT_VERIFY_SSL:-"no-ssl"} # Possible values are "no-ssl", "ignore", "validate"
  sslConfig:
    certificatePath: ${PIPELINE_SERVICE_CLIENT_SSL_CERT_PATH:-""} # Local path for the Pipeline Service Client
​
  # Secrets Manager Loader: specify to the Ingestion Framework how to load the SM credentials from its env
  # Supported: noop, airflow, env
  secretsManagerLoader: ${PIPELINE_SERVICE_CLIENT_SECRETS_MANAGER_LOADER:-"noop"}
​
  # Default required parameters for Airflow as Pipeline Service Client
  parameters:
    username: ${AIRFLOW_USERNAME:-admin}
    password: ${AIRFLOW_PASSWORD:-admin}
    timeout: ${AIRFLOW_TIMEOUT:-10}
    # If we need to use SSL to reach Airflow
    truststorePath: ${AIRFLOW_TRUST_STORE_PATH:-""}
    truststorePassword: ${AIRFLOW_TRUST_STORE_PASSWORD:-""}
​
# no_encryption_at_rest is the default value, and it does what it says. Please read the manual on how
# to secure your instance of OpenMetadata with TLS and encryption at rest.
fernetConfiguration:
  fernetKey: ${FERNET_KEY:-jJ/9sz0g0OHxsfxOoSfdFdmk3ysNmPRnH3TUAbz3IHA=}
​
secretsManagerConfiguration:
  secretsManager: ${SECRET_MANAGER:-db} # Possible values are "db", "managed-aws", "managed-aws-ssm"
  prefix: ${SECRET_MANAGER_PREFIX:-""} # Define the secret key ID as /<prefix>/<clusterName>/<key>
  tags: ${SECRET_MANAGER_TAGS:-[]} # Add tags to the created resource. Format is `[key1:value1,key2:value2,...]`
  # it will use the default auth provider for the secrets' manager service if parameters are not set
  parameters:
    ## For AWS
    region: ${OM_SM_REGION:-""}
    accessKeyId: ${OM_SM_ACCESS_KEY_ID:-""}
    secretAccessKey: ${OM_SM_ACCESS_KEY:-""}
    ## For Azure Key Vault
    clientId: ${OM_SM_CLIENT_ID:-""}
    clientSecret: ${OM_SM_CLIENT_SECRET:-""}
    tenantId: ${OM_SM_TENANT_ID:-""}
    vaultName: ${OM_SM_VAULT_NAME:-""}
​
health:
  delayedShutdownHandlerEnabled: true
  shutdownWaitPeriod: 1s
  healthChecks:
    - name: OpenMetadataServerHealthCheck
      critical: true
      schedule:
        checkInterval: 2500ms
        downtimeInterval: 10s
        failureAttempts: 2
        successAttempts: 1
​
email:
  emailingEntity: ${OM_EMAIL_ENTITY:-"OpenMetadata"}
  supportUrl: ${OM_SUPPORT_URL:-"https://slack.open-metadata.org"}
  enableSmtpServer : ${AUTHORIZER_ENABLE_SMTP:-false}
  openMetadataUrl: ${OPENMETADATA_SERVER_URL:-"http://localhost:8585"}
  senderMail: ${OPENMETADATA_SMTP_SENDER_MAIL:-""}
  serverEndpoint: ${SMTP_SERVER_ENDPOINT:-""}
  serverPort: ${SMTP_SERVER_PORT:-""}
  username: ${SMTP_SERVER_USERNAME:-""}
  password: ${SMTP_SERVER_PWD:-""}
  transportationStrategy: ${SMTP_SERVER_STRATEGY:-"SMTP_TLS"}
​
web:
  uriPath: ${WEB_CONF_URI_PATH:-"/api"}
  hsts:
    enabled: ${WEB_CONF_HSTS_ENABLED:-false}
    maxAge: ${WEB_CONF_HSTS_MAX_AGE:-"365 days"}
    includeSubDomains: ${WEB_CONF_HSTS_INCLUDE_SUBDOMAINS:-"true"}
    preload: ${WEB_CONF_HSTS_PRELOAD:-"true"}
  frame-options:
    enabled: ${WEB_CONF_FRAME_OPTION_ENABLED:-false}
    option: ${WEB_CONF_FRAME_OPTION:-"SAMEORIGIN"}
    origin: ${WEB_CONF_FRAME_ORIGIN:-""}
  content-type-options:
    enabled: ${WEB_CONF_CONTENT_TYPE_OPTIONS_ENABLED:-false}
  xss-protection:
    enabled: ${WEB_CONF_XSS_PROTECTION_ENABLED:-false}
    on: ${WEB_CONF_XSS_PROTECTION_ON:-true}
    block: ${WEB_CONF_XSS_PROTECTION_BLOCK:-true}
  csp:
    enabled: ${WEB_CONF_XSS_CSP_ENABLED:-false}
    policy: ${WEB_CONF_XSS_CSP_POLICY:-"default-src 'self'"}
    reportOnlyPolicy: ${WEB_CONF_XSS_CSP_REPORT_ONLY_POLICY:-""}
  referrer-policy:
    enabled: ${WEB_CONF_REFERRER_POLICY_ENABLED:-false}
    option: ${WEB_CONF_REFERRER_POLICY_OPTION:-"SAME_ORIGIN"}
  permission-policy:
    enabled: ${WEB_CONF_PERMISSION_POLICY_ENABLED:-false}
    option: ${WEB_CONF_PERMISSION_POLICY_OPTION:-""}
​
dataQualityConfiguration:
  severityIncidentClassifier: ${DATA_QUALITY_SEVERITY_INCIDENT_CLASSIFIER:-"org.openmetadata.service.util.incidentSeverityClassifier.LogisticRegressionIncidentSeverityClassifier"}
​
7. es容器版启动
docker compose up -f docker/docker-compose-es/docker-compose-es.yml 

8. Ingestion 容器版启动
docker compose up -f docker/docker-compose-ingestion/docker-compose-ingestion.yml 

9. java源码编译及后端服务启动
maven编译
mvn clean install -DskipTests=true
数据库初始化
./bootstrap/bootstrap_storage.sh drop-create-all
(一)编译源码jar启动

1.服务启动

cd openmetadata-dist/target/
​
tar -zxvf openmetadata-1.3.1.tar.gz
​
cd openmetadata-1.3.1/
​
sh bin/openmetadata-server-start.sh conf/openmetadata.yaml

image-20240718161213428

2.服务界面

http://localhost:8585/

账号密码:admin/admin

image-20240718161302221

(二)前后端分别启动:

1.后端启动

org.openmetadata.service.OpenMetadataApplication

server ./conf/openmetadata.yaml

image-20240718163020308

image-20240718163444731

后端日志输出:

image-20240718163530046

2.前端服务启动启动

# 安装依赖,编译json生成ts文件
make yarn_install_cache
# 启动本地项目
make yarn_start_dev_ui

源码编译控制台日志:

image-20240718163624311

服务启动日志输出:

image-20240718164553007

image-20240718164614398

3. 服务界面

http://localhost:3000/

账号密码:admin/admin

image-20240718161302221

  • 9
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值