Storm 是一个分布式实时计算系统
参考资料
Storm 详细简介
Storm 是一个分布式实时计算系统,用于处理大规模数据流。由 Twitter 开发并开源,现为 Apache 顶级项目。核心设计目标是高吞吐、低延迟和容错性,适用于实时分析、在线机器学习等场景。
特点
实时处理:毫秒级延迟
水平扩展:支持动态增加节点
容错机制:自动重启失败任务
多语言支持:原生支持 Java/Clojure,通过 Shell/Python 适配器扩展
精确一次语义:通过 Trident 实现
最新更新内容及时间
v2.5.0 (2023-05-18):
移除对 Java 8 的支持(最低要求 Java 11)
新增 Prometheus 监控集成
优化 Kafka 连接器性能
修复 ZooKeeper 连接泄漏问题
下载地址
官网地址
文档地址
Docker 安装示例
# 单节点模式 docker run -it -p 8080:8080 \ -e STORM_ZOOKEEPER_SERVERS="zookeeper" \ apache/storm:2.5.0 storm nimbus # 使用 docker-compose version: '3' services: nimbus: image: apache/storm:2.5.0 command: storm nimbus ports: - "6627:6627" supervisor: image: apache/storm:2.5.0 command: storm supervisor depends_on: - nimbus
YAML 配置教程
# storm.yaml 示例 storm.zookeeper.servers: - "zk1.example.com" - "zk2.example.com" nimbus.seeds: ["nimbus1.example.com"] supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703 storm.local.dir: "/var/lib/storm" # 启用 Kerberos 认证 storm.thrift.transport: "org.apache.storm.security.auth.kerberos.KerberosSaslTransportPlugin"
常见错误及解决
No space left on device
原因:
storm.local.dir
磁盘空间不足解决:清理工作目录或增加存储空间
Connection refused to ZooKeeper
原因:ZK 服务未启动或网络不通
解决:检查
storm.zookeeper.servers
配置和防火墙设置Topology submission timeout
原因:Nimbus 负载过高
解决:增加
nimbus.thrift.max_buffer_size
或优化拓扑结构Worker heartbeat timeout
原因:Supervisor 节点资源不足
解决:调整
worker.heap.memory.mb
或减少并发数Serialization exception
原因:使用了不可序列化的 Spout/Bolt
解决:实现
Serializable
接口或使用 Kryo 序列化
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。