Environment:Heibaiying BigData Notes Storm 1 2 Environment
| Knowledge Sources | |
|---|---|
| Domains | Infrastructure, Stream_Processing |
| Last Updated | 2026-02-10 10:00 GMT |
Overview
Apache Storm 1.2.2 real-time computation environment with integrations for Kafka, HDFS, HBase, and Redis.
Description
This environment provides Apache Storm 1.2.2 for distributed real-time computation. It includes the Storm core framework (`storm-core:1.2.2`) plus integration modules: `storm-kafka-client:1.2.2` for Kafka connectivity, `storm-hdfs:1.2.2` for HDFS writes, `storm-hbase:1.2.2` for HBase persistence, and `storm-redis:1.2.2` for Redis storage. Storm topologies can run locally via `LocalCluster` for testing or be submitted to a remote cluster via `StormSubmitter`.
Usage
Use this environment for Storm topology development and deployment. It is the mandatory prerequisite for the Storm Topology Development workflow and all Storm integration examples (Kafka, HDFS, HBase, Redis).
System Requirements
| Category | Requirement | Notes |
|---|---|---|
| OS | Linux (CentOS 7.6 recommended) | Any Linux with JDK 8 |
| Java | JDK 1.8 | Required by Storm 1.2.2 |
| Zookeeper | 3.4.13+ | Required for Storm cluster coordination |
| Hardware | Minimum 2GB RAM per Supervisor | Per worker node |
| Disk | 10GB+ | For Storm logs and temporary data |
Dependencies
System Packages
- `storm` = 1.2.2
- `zookeeper` >= 3.4.13
- `java-1.8.0-openjdk-devel`
Java Packages (Maven)
- `org.apache.storm:storm-core` = 1.2.2
- `org.apache.storm:storm-kafka-client` = 1.2.2 (for Kafka integration)
- `org.apache.storm:storm-hdfs` = 1.2.2 (for HDFS integration)
- `org.apache.storm:storm-hbase` = 1.2.2 (for HBase integration)
- `org.apache.storm:storm-redis` = 1.2.2 (for Redis integration)
- `org.apache.commons:commons-lang3` >= 3.8.1
Credentials
No API credentials required. Storm cluster coordination uses Zookeeper.
Quick Install
# Download Storm 1.2.2
wget https://archive.apache.org/dist/storm/apache-storm-1.2.2/apache-storm-1.2.2.tar.gz
tar -xzf apache-storm-1.2.2.tar.gz -C /opt/
# Configure environment
export STORM_HOME=/opt/apache-storm-1.2.2
export PATH=$PATH:$STORM_HOME/bin
# Maven dependency:
# <dependency>
# <groupId>org.apache.storm</groupId>
# <artifactId>storm-core</artifactId>
# <version>1.2.2</version>
# </dependency>
Code Evidence
Storm core dependency from `storm-word-count/pom.xml`:
<dependency>
<groupId>org.apache.storm</groupId>
<artifactId>storm-core</artifactId>
<version>1.2.2</version>
</dependency>
Cluster submission from `ClusterWordCountApp.java`:
Config config = new Config();
config.setNumWorkers(2);
StormSubmitter.submitTopology("ClusterWordCountApp", config, builder.createTopology());
Common Errors
| Error Message | Cause | Solution |
|---|---|---|
| `Found multiple defaults.yaml resources` | storm-core included in uber-JAR | Exclude storm-core from packaged JAR (scope: provided) |
| `RuntimeException` with HDFS integration | Used maven-assembly-plugin | Use maven-shade-plugin instead of maven-assembly-plugin for HDFS integration |
| `Connection refused to Zookeeper` | Zookeeper not running | Start Zookeeper before launching Storm |
Compatibility Notes
- storm-core must be excluded from the uber-JAR when deploying to a cluster, as it is already in Storm's lib directory.
- HDFS integration: Requires matching Hadoop client version (`hadoop-common:2.6.0-cdh5.15.2`, `hadoop-client:2.6.0-cdh5.15.2`, `hadoop-hdfs:2.6.0-cdh5.15.2`).
- Packaging: Use `maven-shade-plugin` (not `maven-assembly-plugin`) to avoid classpath conflicts, especially for HDFS integration.
Related Pages
- Implementation:Heibaiying_BigData_Notes_DataSourceSpout_Implementation
- Implementation:Heibaiying_BigData_Notes_SplitBolt_and_CountBolt
- Implementation:Heibaiying_BigData_Notes_TopologyBuilder_Usage
- Implementation:Heibaiying_BigData_Notes_Storm_Parallelism_Config
- Implementation:Heibaiying_BigData_Notes_Storm_Topology_Submission
- Implementation:Heibaiying_BigData_Notes_Maven_Packaging_for_Storm