十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

如何用Docker 5分钟跑通Pulsar实时分析管道:realtime-analytics快速开始保姆级教程

如何用Docker 5分钟跑通Pulsar实时分析管道:realtime-analytics快速开始保姆级教程 如何用Docker 5分钟跑通Pulsar实时分析管道realtime-analytics快速开始保姆级教程【免费下载链接】realtime-analyticsRealtime analytics, this includes the core components of Pulsar pipeline.项目地址: https://gitcode.com/gh_mirrors/re/realtime-analytics想快速体验Pulsar 实时分析管道想用Docker一键搭建从数据采集、会话分析到指标展示的完整链路这篇 realtime-analytics 保姆级教程将带你用 5 分钟跑通整个实时分析系统全程无需改一行代码复制粘贴即可完成。realtime-analytics 是什么一套完整的实时分析管道realtime-analytics 是 eBay 开源的实时分析管道基于 PulsarJetStream事件驱动框架构建核心组件全部围绕数据进来 → 分析 → 展示这条链路设计组件职责关键入口collector数据采集接收 HTTP JSON 事件/pulsar/ingest/replay事件回放与重放Kafka 消费sessionizer用户会话切分Esper 实时计算distributor事件分发路由EPL 规则metriccalculator指标计算与聚合写 Cassandrametricservice指标查询 REST 服务/pulsar/metricmetricUI实时指标可视化 Web UIWebSocket 推送整条管道的数据流向大致是collector → Kafka → sessionizer → distributor → metriccalculator → Cassandra → metricservice → metricUI每一步都有独立 Docker 镜像可以单独启停非常灵活。开始前的准备工作环境要求只需满足以下 3 个条件即可✅ 已安装 Docker本教程所有命令默认使用 sudo普通用户可自行去掉✅ 已安装 git✅ 本机空闲端口充足会用到 80008008、8080、8083、8088 等端口温馨提示教程面向新手所有操作都在命令行完成不需要安装 Java 或 Maven环境全部由 Docker 镜像提供。一键安装步骤最快 5 分钟跑通实时分析管道整个启动过程分为外部依赖、Cassandra 初始化、管道服务、Demo 组件四个阶段官方已经帮你写好了自动化脚本。第 1 步克隆 realtime-analytics 仓库打开终端执行以下命令拉取代码git clone https://gitcode.com/gh_mirrors/re/realtime-analytics cd realtime-analytics仓库根目录的 README.md 介绍了项目背景而真正的一键启动入口在 Demo 目录下。第 2 步启动外部依赖ZooKeeper / MongoDB / Kafka / Cassandra实时分析管道依赖 4 个基础组件ZooKeeper协调、MongoDB配置存储、Kafka消息队列、Cassandra指标存储。逐条执行sudo docker run -d --name zkserver -t jetstream/zookeeper sudo docker run -d --name mongoserver -t mongo sudo docker run -d --name kafkaserver -t jetstream/kafka sudo docker run -d --name cassandraserver -t poklet/cassandra每启动一个建议等待 5 秒让容器有时间完成初始化。全部启动后等待约 30 秒确保 Cassandra 就绪。第 3 步初始化 Cassandra 指标表realtime-analytics 把聚合后的指标写入 Cassandra因此要先建表。官方建表脚本位于metriccalculator/pulsar.cql通过 docker run 挂载执行mkdir /tmp/pulsarcql wget https://raw.githubusercontent.com/pulsarIO/realtime-analytics/master/metriccalculator/pulsar.cql -O /tmp/pulsarcql/pulsar.cql sudo docker run -it --rm --link cassandraserver:cass1 -v /tmp/pulsarcql:/data poklet/cassandra bash -c cqlsh $CASS1_PORT_9160_TCP_ADDR -f /data/pulsar.cql执行成功后Cassandra 中就建好了计数器与原始指标对应的表结构。第 4 步按顺序启动管道核心服务接下来依次启动管道各环节每个服务都暴露了 9999 管理端口并映射到宿主机 80008005服务命令要点端口映射config配置中心8000:9999、8081:8080replay事件回放8001:9999sessionizer会话分析8003:9999distributor事件分发8004:9999metriccalculator指标计算8005:9999collector数据采集8002:9999、8080:8080例如启动采集器sudo docker run -d -p 0.0.0.0:8002:9999 -p 0.0.0.0:8080:8080 \ --link zkserver:zkserver --link mongoserver:mongoserver \ --link kafkaserver:kafkaserver -t pulsar/collector其余服务命令格式相同只需替换镜像名pulsar/replay、pulsar/sessionizer、pulsar/distributor、pulsar/metriccalculator即可。每启动一个建议 sleep 5 秒让服务注册到 ZooKeeper。第 5 步启动指标服务与可视化 UI管道跑起来后再启动查询与展示层metricservice指标查询服务端口 8083提供 REST 接口查询 Cassandra 中的指标数据metricUI可视化界面端口 8088基于 WebSocket 实时刷新指标图表启动命令同样来自官方脚本注意 metricUI 需要 link 到 metricservice 和 metriccalculator。 全部容器启动完成后通过sudo docker ps可以看到 10 个容器运行中实时分析管道即搭建完成验证管道发送一条测试数据管道是否真的通了只需向 collector 的采集接口 POST 一条 JSON 事件。数据接入逻辑定义在collector/src/main/java/com/ebay/pulsar/collector/servlet/IngestServlet.java中支持单条和批量两种入口curl -X POST http://localhost:8080/pulsar/ingest/event \ -H Content-Type: application/json \ -d {userId:10001,page:home,action:click}返回 200 OK 即表示事件已被接收随后会自动进入 Kafka → 会话分析 → 指标计算链路。查看实时指标REST API 与 Web UI方式一REST 接口查询metricservice 对外暴露了计数器与指标两类查询接口实现在Demo/metricservice/src/main/java/com/ebay/pulsar/metric/servlet/MetricRestServlet.java中GET /pulsar/counter查询计数器数据GET /pulsar/metric查询原始数值型指标GET /pulsar/ping健康检查例如健康检查curl http://localhost:8083/pulsar/ping方式二Web UI 实时看板浏览器打开http://localhost:8088即可看到基于 WebSocket 的实时指标面板指标更新由Demo/metricUI中的 MetricWebSocket 负责推送无需手动刷新页面。常见问题排查一次解决 90% 的坑❓容器启动后立刻退出→ 检查是否已先启动 zkserver 与 mongoserverJetStream 应用依赖配置中心❓采集接口返回 400→ 检查 JSON 格式是否符合校验规则校验逻辑在collector/src/main/java/com/ebay/pulsar/collector/validation/目录❓UI 无数据→ 先 curl 验证 metricservice 接口是否有数据再检查 metricUI 是否正确 link 到 metricservice❓端口冲突→ 修改 docker run 中-p宿主机端口即可容器内端口保持默认小结从零到跑通只需 5 分钟通过 Docker 镜像realtime-analytics 把复杂的实时分析管道变成了开箱即用的服务组合外部依赖一条命令、管道服务逐条启动、指标可视化即开即用。即使是实时分析的新手也能在 5 分钟内亲手跑通一整套 Pulsar 实时分析管道后续再按需深入研究 sessionizer 的会话逻辑、metriccalculator 的聚合算法都会轻松很多。现在就动手试试吧【免费下载链接】realtime-analyticsRealtime analytics, this includes the core components of Pulsar pipeline.项目地址: https://gitcode.com/gh_mirrors/re/realtime-analytics创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表