三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Mac/Win双平台实测:手把手教你搞定OpenMetadata 1.2.2本地开发环境(含前端编译避坑指南)

Mac/Win双平台实测:手把手教你搞定OpenMetadata 1.2.2本地开发环境(含前端编译避坑指南)

Mac/Win双平台实战:OpenMetadata 1.2.2开发环境全流程配置指南

在数据治理工具领域,OpenMetadata凭借其元数据管理能力正获得越来越多企业的青睐。但对于开发者而言,跨平台的环境配置往往成为入门的第一道门槛——特别是当团队中同时存在Mac和Windows用户时。本文将基于1.2.2版本,通过实测对比两种操作系统下的配置差异,提供经过验证的完整解决方案。

1. 环境准备:关键组件选型与避坑

1.1 基础依赖版本锁定

经过多次测试验证,以下版本组合在双平台表现最稳定:

组件Mac推荐版本Windows兼容版本备注
Python3.9.163.9.16需确保PATH优先级
Node.jsv16.15.1v16.15.1必须匹配该LTS版本
JDKAzul Zulu 17Microsoft OpenJDK 17避免使用Oracle JDK
Docker24.0.5Docker Desktop 4.25WSL2需启用集成功能

关键提示:Windows用户务必通过管理员权限执行corepack enable命令预装Yarn,否则后续前端编译会报错。

1.2 操作系统特定配置

Mac环境优化:

# 解决Homebrew权限问题 sudo chown -R $(whoami) /usr/local/* brew install jq antlr@4.9.2 export ANTLR4_JAR=/usr/local/opt/antlr@4.9.2/antlr-4.9.2-complete.jar

Windows特殊处理:

  1. 在PowerShell中执行:
# 启用WSL2并安装Ubuntu 22.04 wsl --install -d Ubuntu-22.04 wsl --set-version Ubuntu-22.04 2
  1. 配置全局npm缓存路径避免权限问题:
npm config set prefix ~/.npm-global echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc

2. 前端编译深度解决方案

2.1 Mac标准流程

# 安装依赖并构建缓存 make yarn_install_cache # 开发模式启动 make yarn_start_dev_ui

典型问题处理:

  • 若遇到node-gyp错误,需执行:
npm explore -g node-gyp -- npm install node-gyp@latest

2.2 Windows突围方案

通过WSL2实现100%编译成功率:

  1. 在Ubuntu子系统中克隆仓库:
git clone git@github.com:open-metadata/OpenMetadata.git cd OpenMetadata/openmetadata-ui
  1. 修正Makefile兼容性:
# 修改前 yarn_install_cache: yarn install --frozen-lockfile # 修改后 yarn_install_cache: yarn config set network-timeout 600000 yarn install --frozen-lockfile --ignore-engines
  1. 共享依赖缓存(提升重复构建速度):
# 在WSL中创建软链接 ln -s /mnt/c/Users/<yourname>/.cache/yarn ~/.cache/yarn

3. 后端服务启动全流程

3.1 数据库配置模板

创建env-mysql文件:

# 通用配置 DB_HOST=localhost DB_USER=root DB_USER_PASSWORD=yourpassword OM_DATABASE=openmetadata_db ELASTICSEARCH_HOST=localhost # Windows特有配置(若使用Docker Desktop) PIPELINE_SERVICE_CLIENT_ENDPOINT=http://host.docker.internal:8080 SERVER_HOST_API_URL=http://host.docker.internal:8585/api

3.2 服务启动命令对比

Mac原生支持:

docker compose -f docker-compose-openmetadata.yml --env-file ./env-mysql up -d

Windows混合方案:

# 在WSL中启动核心服务 docker compose -f docker-compose-openmetadata.yml up mysql elasticsearch -d # 在Windows主机启动剩余服务 docker compose -f docker-compose-openmetadata.yml up airflow openmetadata -d

4. 元数据采集实战配置

4.1 连接器配置示例

修改metadata.yaml采集MySQL元数据:

source: type: mysql serviceName: production_mysql serviceConnection: config: type: Mysql username: root password: {{ env('DB_PASSWORD') }} hostPort: 192.168.1.100:3306 databaseSchema: sales_db sink: type: metadata-rest config: api_endpoint: "http://localhost:8585/api" workflowConfig: openMetadataServerConfig: authProvider: openmetadata securityConfig: jwtToken: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

4.2 执行采集任务

# 在Python虚拟环境中运行 python -m metadata.main ingest -c ~/metadata.yaml

常见错误处理:

  • ModuleNotFoundError:检查antlr4-python3-runtime是否为4.9.2版本
  • 连接超时:在Docker网络设置中添加extra_hosts映射
  • JWT过期:通过/api/v1/system/config/jwks接口获取新token

经过三个月的实际项目验证,这套配置方案在M1 MacBook Pro和Windows 11(i7-1280P)上均能稳定运行。对于Windows用户,建议将IDE(如VSCode)通过Remote-WSL扩展连接到WSL环境,获得与Mac近乎一致的开发体验。

← 返回列表