Storm 核心概念详解

一、Storm核心概念

img

Storm单机版本环境搭建

1. 安装环境要求

you need to install Storm’s dependencies on Nimbus and the worker machines. These are:

  1. Java 7+ (Apache Storm 1.x is tested through travis ci against both java 7 and java 8 JDKs)
  2. Python 2.6.6 (Python 3.x should work too, but is not tested as part of our CI enviornment)

按照官方文档 的说明:storm 运行依赖于 Java 7+ 和 Python 2.6.6 +,所以需要预先安装这两个软件。由于这两个软件在多个框架中都有依赖。

Storm 编程模型

一、简介

下图为 Strom 的运行流程图,在开发 Storm 流处理程序时,我们需要采用内置或自定义实现 spout(数据源) 和 bolt(处理单元),并通过 TopologyBuilder 将它们之间进行关联,形成 Topology

Storm和流处理简介

一、Storm

1.1 简介

Storm 是一个开源的分布式实时计算框架,可以以简单、可靠的方式进行大数据流的处理。通常用于实时分析,在线机器学习、持续计算、分布式 RPC、ETL 等场景。Storm 具有以下特点:

  • 支持水平横向扩展;
  • 具有高容错性,通过 ACK 机制每个消息都不丢失;
  • 处理速度非常快,每个节点每秒能处理超过一百万个 tuples ;
  • 易于设置和操作,并可以与任何编程语言一起使用;
  • 支持本地模式运行,对于开发人员来说非常友好;
  • 支持图形化管理界面。

Storm集成HDFS和HBase

一、Storm集成HDFS

1.1 项目结构

img

Storm集群环境搭建

一、集群规划

这里搭建一个 3 节点的 Storm 集群:三台主机上均部署 SupervisorLogViewer 服务。同时为了保证高可用,除了在 hadoop001 上部署主 Nimbus 服务外,还在 hadoop002 上部署备用的 Nimbus 服务。Nimbus 服务由 Zookeeper 集群进行协调管理,如果主 Nimbus 不可用,则备用 Nimbus 会成为新的主 Nimbus

Storm集成Kafka

一、整合说明

Storm 官方对 Kafka 的整合分为两个版本,官方说明文档分别如下:

这里我服务端安装的 Kafka 版本为 2.2.0(Released Mar 22, 2019) ,按照官方 0.10.x+ 的整合文档进行整合,不适用于 0.8.x 版本的 Kafka。

Storm三种打包方式对比分析

一、简介

在将 Storm Topology 提交到服务器集群运行时,需要先将项目进行打包。本文主要对比分析各种打包方式,并将打包过程中需要注意的事项进行说明。主要打包方式有以下三种:

  • 第一种:不加任何插件,直接使用 mvn package 打包;
  • 第二种:使用 maven-assembly-plugin 插件进行打包;
  • 第三种:使用 maven-shade-plugin 进行打包。

Storm 集成 Redis 详解

一、简介

Storm-Redis 提供了 Storm 与 Redis 的集成支持,你只需要引入对应的依赖即可使用:

1
2
3
4
5
6
<dependency>
<groupId>org.apache.storm</groupId>
<artifactId>storm-redis</artifactId>
<version>${storm.version}</version>
<type>jar</type>
</dependency>
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×