news 2026/8/22 14:31:19

5分钟部署Venice集群:Docker单机数据中心快速上手教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
5分钟部署Venice集群:Docker单机数据中心快速上手教程

5分钟部署Venice集群:Docker单机数据中心快速上手教程

【免费下载链接】veniceVenice, Derived Data Platform for Planet-Scale Workloads.项目地址: https://gitcode.com/gh_mirrors/venic/venice

Venice 是 LinkedIn 开源的派生数据平台(Derived Data Platform),专为行星级别工作负载设计。本文将带你使用 Docker 在 5 分钟内部署一个 Venice 集群(单机数据中心模式),完成从创建 Store、批量推送数据到查询读取的完整流程,新手零门槛即可上手。

一、Venice 是什么?为什么选择它?

💡 先用一句话理解 Venice:一个把 Kafka、ZooKeeper 和自研存储引擎组合起来的分布式键值存储系统

它适合以下场景:

  • 批量 + 实时数据融合:先全量推送一批数据,再持续摄入 Kafka 实时流,自动合并
  • 多数据中心主动复制:跨 DC 容错,确定性冲突解决
  • 读写计算:支持 Write-Compute 和 Read-Compute,减少数据移动

二、集群架构:Docker Compose 拉起 6 个容器

Docker 单机部署文件位于docker/docker-compose-single-dc-setup.yaml,一键启动 6 个容器,按依赖顺序自动编排:

组件镜像职责
ZooKeepervenicedb/apache-zookeeper分布式协调服务
Kafkavenicedb/apache-kafka实时数据流与元数据通道
Venice Controllervenicedb/venice-controller集群管理大脑,处理建 Store 等请求
Venice Servervenicedb/venice-server存储引擎,负责数据摄入与存储
Venice Routervenice-router读写请求的流量入口
Venice Clientvenicedb/venice-client预装管理工具与示例数据的"操作台"

每个容器都配置了健康检查(healthcheck),只有前一个组件健康后,下一个才会启动,因此不需要手动控制启动顺序。

三、部署步骤(全程约 5 分钟)

第 1 步:安装 Docker 并克隆仓库

确认本机已安装 Docker Engine 与 Docker Compose 并正在运行。然后克隆 Venice 仓库:

git clone https://gitcode.com/gh_mirrors/venic/venice cd venice/docker

第 2 步:一条命令启动 Venice 集群

docker-compose -f docker-compose-single-dc-setup.yaml up -d

首次运行会拉取 6 个镜像,耗时取决于网络。启动完成后会自动创建一个名为venice-cluster的测试集群。可以用以下命令确认所有容器均已 Running:

docker-compose -f docker-compose-single-dc-setup.yaml ps

第 3 步:进入客户端容器

docker exec -it venice-client bash

客户端容器预装了venice-admin-tool管理工具和示例数据,后续所有操作都在这里完成。

第 4 步:创建你的第一个 Store

Store 是 Venice 中数据的基本组织单位。使用示例脚本(docker/venice-client/create-store.sh)创建名为test-store的 Store,键值 Schema 均为 string 类型:

./create-store.sh http://venice-controller:5555 venice-cluster0 test-store \ sample-data/schema/keySchema.avsc sample-data/schema/valueSchema.avsc

该脚本同时开启了增量推送(incremental push)并设置无限存储配额,为后续步骤做准备。

第 5 步:批量推送 100 条数据

Venice 的批量推送由VPJ(Venice Push Job)完成。示例数据为 100 条键值对(key: 1~100,value: val1~val100),配置文件位于docker/venice-client/sample-data/single-dc-configs/batch-push-job.properties

# 先看看数据长什么样(可选) ./avro-to-json.sh sample-data/batch-push-data/kv_records.avro # 执行批量推送 ./run-vpj.sh sample-data/single-dc-configs/batch-push-job.properties

推送成功后,数据即完成"全量摄入",可被查询。

第 6 步:两种客户端查询数据

Venice 提供两种读取方式,演示脚本都在docker/venice-client/目录下:

方式 A:Thin Client(经 Router 路由)

./fetch.sh http://venice-router:7777 test-store 1 # 输出: # key=1 # value=val1

方式 B:Fast Client(直连存储节点,绕过 Router)

Fast Client 通过服务发现直连 Server,延迟更低,但需要先在 Store 上开启存储节点读配额:

java -jar /opt/venice/bin/venice-admin-tool-all.jar --update-store \ --url http://venice-controller:5555 --cluster venice-cluster0 \ --store test-store --storage-node-read-quota-enabled true ./fast-client-fetch.sh test-store 1

📌 查询不存在的 key(如 101)会返回value=null,这是正常行为。

第 7 步:体验增量推送(Incremental Push)

这是 Venice 的招牌能力:更新 91~100 的值,并新增 101~110 的行,一条命令完成:

./run-vpj.sh sample-data/single-dc-configs/inc-push-job.properties

再次查询即可看到效果:

./fetch.sh http://venice-router:7777 test-store 100 # value=val100_v1 ← 已被更新 ./fetch.sh http://venice-router:7777 test-store 101 # value=val101 ← 新增的行

批量 + 增量 =Lambda 架构中的批流融合,Venice 自动帮你合并。

四、关闭集群

演示完毕,回到宿主机执行:

docker-compose -f docker-compose-single-dc-setup.yaml down

所有容器与数据会被清理,随时可以再次up起来。

五、常见问题(FAQ)

Q1:启动后部分容器显示 restarting,怎么办?等 1~2 分钟再查看,镜像拉取或 Kafka 初始化需要时间。可执行docker logs kafka查看具体日志。

Q2:./run-vpj.sh推送卡住不动?检查venice-controller容器是否 Running,推送任务需要 Controller 协调创建 Kafka topic。

Q3:如何修改推送数据量或数据内容?替换sample-data/batch-push-data/下的 Avro 文件,并修改batch-push-job.properties中的input.path即可。

Q4:想体验多数据中心部署?仓库中还提供了docker/docker-compose-multi-dc-setup.yaml,可一键拉起双数据中心集群,相关文档见docs/getting-started/deployments/quickstart-multi-dc.md

六、下一步学习

本教程的完整官方指南在docs/getting-started/deployments/quickstart-single-dc.md。跑通单机部署后,建议继续探索:

  • 📖写入 API 全览:在线生产者、Stream Processor 等(docs/user-guide/write-apis/index.md
  • 📖读取 API 对比:Thin Client 与 Fast Client 的选型(docs/user-guide/read-apis/index.md
  • 📖架构原理:Venice 如何做到批流融合(docs/getting-started/learn-venice/architecture-overview.md

恭喜!你已经在 5 分钟内拥有了一个可用的 Venice 集群。🎉

【免费下载链接】veniceVenice, Derived Data Platform for Planet-Scale Workloads.项目地址: https://gitcode.com/gh_mirrors/venic/venice

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 14:21:58

Windows 11下编译支持CUDA的Ceres Solver 2.2.0完整指南

1. 项目概述与背景最近在做一个三维重建相关的项目,后端优化部分绕不开非线性最小二乘求解。Ceres Solver作为谷歌开源的利器,自然是首选。但项目里有些模块用了CUDA加速,想着要是Ceres也能用上GPU,那整体流程的瓶颈说不定就能打通…

作者头像 李华