首页
/ WhereHows 数据治理平台 Docker 快速部署指南

WhereHows 数据治理平台 Docker 快速部署指南

2025-07-06 05:48:20作者:盛欣凯Ernestine

概述

WhereHows 是一个开源的企业级元数据管理和数据发现平台,由 LinkedIn 开发。本文将通过 Docker Compose 方式详细介绍 WhereHows 的快速部署方案,帮助用户快速搭建完整的 WhereHows 环境。

核心组件架构

WhereHows 的 Docker 快速部署方案包含以下核心服务组件:

  1. 数据存储层

    • MySQL:存储元数据实体和关系
    • Elasticsearch:提供搜索和索引功能
    • Neo4j:存储图关系数据
  2. 消息中间件

    • Zookeeper:Kafka 的协调服务
    • Kafka:消息队列系统
    • Schema Registry:管理 Avro 模式
  3. 应用服务层

    • DataHub GMS:元数据服务核心
    • DataHub Frontend:用户界面
    • DataHub Actions:事件处理服务

详细配置解析

1. 消息中间件配置

Kafka 集群配置了以下关键参数:

  • 监听器配置了内部(29092)和外部(9092)两个端口
  • 消息最大字节数设置为 5MB(5242880 bytes)
  • 内存限制为 256MB

Zookeeper 作为 Kafka 的依赖服务,配置了标准端口 2181 和健康检查机制。

2. 数据存储服务

MySQL

  • 使用 utf8mb4 字符集以支持完整 Unicode
  • 预配置了 datahub 用户和数据库
  • 数据卷挂载确保数据持久化

Elasticsearch

  • 单节点模式运行
  • 内存限制为 512MB
  • 禁用了 X-Pack 安全功能

Neo4j

  • 社区版 4.4.9
  • 预装了 APOC 插件
  • 配置了 Bolt 和 HTTP 端口

3. 核心应用服务

DataHub GMS

  • 连接所有存储服务(MySQL, ES, Neo4j)
  • 配置了 1GB 的 JVM 内存
  • 启用了元数据审计(MCE)和元数据变更日志(MCL)消费者

DataHub Frontend

  • React 实现的用户界面
  • 512MB 的 JVM 内存配置
  • 默认端口 9002

DataHub Actions

  • 事件处理服务
  • 连接 Kafka 和 GMS 服务
  • 可配置额外的 Python 包

部署流程说明

  1. 基础设施准备

    • Zookeeper 和 Kafka 最先启动
    • 数据库服务(MySQL, Neo4j, ES)随后启动
  2. 初始化阶段

    • Kafka-setup 创建所需主题
    • MySQL-setup 初始化数据库结构
    • ES-setup 创建索引和映射
  3. 应用启动

    • DataHub Upgrade 服务执行系统升级
    • GMS 核心服务启动
    • 前端服务最后启动

健康检查机制

每个服务都配置了健康检查策略,例如:

  • MySQL 使用 mysqladmin ping 命令
  • Elasticsearch 检查集群健康状态
  • GMS 服务通过 HTTP 健康端点检查
  • Kafka 使用 netcat 检查端口可用性

自定义配置建议

  1. 内存调整

    • 生产环境建议增加 GMS 和 ES 的内存限制
    • Kafka 可根据消息量调整内存
  2. 安全加固

    • 启用 Elasticsearch 的安全功能
    • 配置 MySQL 和 Neo4j 的更复杂密码
  3. 持久化存储

    • 所有数据卷应映射到宿主机的持久化目录
    • 考虑使用外部存储方案

常见问题排查

  1. 服务启动顺序问题

    • 依赖服务未就绪会导致启动失败
    • 查看日志确认具体错误
  2. 资源不足

    • 内存不足会导致容器异常退出
    • 调整各服务的资源限制
  3. 端口冲突

    • 确保宿主机端口未被占用
    • 可修改映射端口配置

通过这份 Docker Compose 配置,用户可以快速搭建一个功能完整的 WhereHows 环境,用于元数据管理和数据发现。生产环境部署时,建议根据实际需求调整资源配置和安全设置。