2026-08-11 / 8 min

云边大数据框架实践:Kafka、HDFS、Spark 与 Hive

基于 Bilibili Analyzer 搭建的云边大数据实践环境,记录 Linux、组件职责、数据分层和结果恢复方式。

大数据云边协同LinuxKafkaHDFSSparkHive

适用场景

这套框架用于实践一条完整的数据处理链路:云端持续采集并保存原始数据,边端 Ubuntu 在上线时启动大数据运行环境,处理积压批次后把结果回传。

边端 Ubuntu 装在移动硬盘上,不会一直在线。这个约束不是项目要解决的主要产品问题,而是学习云边协同、Linux 服务管理和大数据组件运行方式的实际条件。

环境和职责

云端负责三件事:持续采集公开视频数据、保存原始数据和批次信息、接收边端回传的结果。

移动硬盘上的 Ubuntu 是边端运行环境。它上线后启动 Kafka、HDFS、Spark 和 Hive,Agent 负责领取云端批次、驱动本地任务、保存任务状态并上传结果。

数据如何流动

边端取得批次后,数据进入 Kafka,再按处理阶段进入 HDFS:

  • Bronze 保存原始数据,便于追溯和重新处理。
  • Silver 保存清洗和结构化后的数据。
  • Gold 保存面向查询和结果发布的数据。

Spark 负责批处理和分析,Hive 用于管理和查询分层数据。这里的重点不是把所有组件常驻运行,而是让每个组件在 Ubuntu 上按实际任务启动、协同并留下可检查的结果。

任务状态和结果恢复

Agent 将任务状态拆开处理。Spark 成功只表示计算完成,不代表云端已经发布结果;上传失败时,不需要再次运行计算。

结果文件、重试次数和下一次重试时间会写入本地 SQLite/spool。Agent 重启后读取这份状态,只继续上传未完成的结果。

503 演练

一次 Gold 结果上传时,云端返回 HTTP 503。此时 Spark 已完成,任务保持在 UPLOADING 状态。

Agent 从 SQLite/spool 恢复上传状态后继续提交结果;云端用 run_id 和 result_version 做幂等校验。最终结果只发布一次,没有丢数据,也没有出现重复结果。

实践边界

这是一套学习和验证中的大数据框架,不把一次闭环当成长期运行能力的承诺。下一步需要继续补监控、告警、任务可观测性和更长期的 Linux 运维能力。

相关内容:Bilibili Analyzer 项目页、项目实践记录、服务与数据模块划分。