- Hadoop 生态:实时 + 离线一体化
Flink on YARN 初体验
使用 Flink 1.17.1 提交 yarn-session 模式,队列 queue.stream 独享 4G 堆、2 vcore;编写 Kafka → Hive 的流式入湖作业,消费 user_behavior Topic,Checkpoint 30 s,Exactly-Once 写入 Hive 表 ods_log_rt,实现分钟级实时可见。
对比批作业(T+1)与流作业(5 min 延迟)同口径 PV,误差 < 0.8 %,通过 Ambari Metrics 确认 YARN 资源无冲突。
Hive 血缘与质量
部署 Apache Atlas 2.3,通过 Hook 方式自动采集 SQL 血缘;在 Web 端可追踪 ads_hot_news 的完整链路:Kafka → Flink → Hive ODS → Hive DWS → Hive ADS,方便后续影响分析。
引入 Great Expectations 做数据质量探针,对 ods_log_rt 检查「NULL userId ≤ 1 %」「duplicate eventId = 0」,质量报告自动推送钉钉群。 - Python 模型:实时特征 + 在线推理
特征即服务(FEaaS)
使用 Redis Stream 收集用户实时行为,Flink 侧输出计算 5 min 滑动窗口特征(点击次数、平均停留时长),写回 Redis hash:user:{id}:rt,供模型服务调用。
对比离线特征(T+1)与实时特征,AUC 提升 2.7 %,达到 0.934。
TorchServe 上线
将上周 NB 模型升级为 BERT 小型分类模型(bert-base-chinese + 全连接层),导出 TorchScript;使用 TorchServe 0.8 启动,配置 batch_size=8、max_batch_delay=50 ms,GPU 利用率稳定在 65 %。
通过 Nginx + Gunicorn 做二级负载,统一对外域名 http://api.demo/v2/predict,灰度 20 % 流量,回退策略 ready。 - Java Web:压测、熔断、CI/CD
全链路压测
使用 Gatling 3.9 编写评论场景脚本,10 min 内阶梯升至 2 k 并发,95 th RT 220 ms,TPS 峰值 1 850;发现 Redis 连接数瓶颈,调大 maxTotal=200 后 RT 降至 160 ms。
Resilience4j 熔断
为 /comment/list 接口添加熔断策略:失败率 ≥ 50 % 且请求数 ≥ 100 时开启,持续 30 s 后进入半开;配合 Fallback 返回本地缓存,保证核心可用性。
GitHub Actions 流水线
配置 .github/workflows/ci.yml:Push → Maven 编译 → JUnit 单测 → SonarQube 扫描(门禁:覆盖率 ≥ 60 %,Bug ≤ 1)→ Docker Build & Push → SSH 到阿里云服务器执行 docker-compose up -d;平均构建时长 4 min 30 s,实现真正的「一键上线」。