一、技术背景本次问题基于Flink实时数仓项目DIM层开发场景。项目整体数据链路为MySQL业务库 → Maxwell CDC → Kafka ODS层 → Flink流处理 → HBase维度层。DIM层负责将用户、商品、地区等维度数据同步至HBase为后续DWS层实时计算提供维度关联支撑。在开发过程中出现Maxwell同步正常、Flink任务启动无报错但HBase维度表始终为空、无数据写入的问题。二、问题现象Maxwell正常运行MySQL数据可正常同步至Kafka的 topic_db 主题。Flink DimApp启动无异常日志仅显示连接成功信息。Flink WebUI无消费记录无数据处理与输出指标。进入HBase查看维度表表列表为空无任何数据写入。三、排查步骤步骤1检查Kafka数据是否正常 执行命令查看Kafka主题数据输入命令kafka-console-consumer.sh --bootstrap-server master:9092 --topic topic_db --from-beginning结果显示Kafka中存在完整CDC数据排除Maxwell与数据源问题。步骤2检查Flink消费者组状态 发现消费者组 dim_app_group 处于离线状态无活跃消费者导致数据堆积。步骤3重置Kafka消费偏移量 停止Flink任务后执行偏移量重置输入命令kafka-consumer-groups.sh --bootstrap-server master:9092 --group dim_app_group --reset-offsets --to-earliest --topic topic_db --execute步骤4检查Flink配置表读取逻辑 定位核心问题Flink DimApp依赖 business_db_config 配置表判断需要同步的维度表。因启动时未读取到配置表初始数据导致未执行HBase建表与写入逻辑。步骤5重启Flink任务并验证 修改CDC读取配置强制从头消费重启任务后等待数据处理。然后等待后按正常流程来一遍发现问题解决四、解决方案1.确认Kafka主题数据正常。2.重置Flink消费者组偏移量至起始位置。3.确保Flink能正常读取 business_db_config 配置表。4.重启DimApp任务等待异步写入完成。5.在HBase中查看表是否生成数据是否正常写入。五、根因总结1.Kafka消费者组离线偏移量未重置Flink无法消费数据。2.Flink CDC未读取到配置表初始化数据未触发建表逻辑。3.任务启动后未立即显示写入日志属于异步批量处理正常现象需等待执行。六、避坑指南1.实时数仓排查优先遵循数据源 → Kafka → Flink → 存储的链路顺序。2.Flink消费异常优先排查消费者组状态与偏移量。3.DIM层同步必须确保配置表正常加载否则维度表无法创建。4.Flink写入HBase为异步操作启动后需等待片刻再验证结果。七、总结本次HBase维度表为空问题是实时数仓项目中典型的多组件协同问题涉及CDC采集、消息队列、流处理、NoSQL存储全链路。通过分层定位、按序排查可快速定位消费与配置问题。此类排查思路适用于ODS、DWD、DWS、ADS全层级故障定位也是大数据开发与面试中高频考察的实际工程问题。掌握这套排障逻辑能显著提升实时数仓项目开发与问题定位效率。