Storm 是开源免费的分布实时计算系统(Apache Storm is a free and open source distributed realtime computation system)。这里提到了两个关键词:html
一、分布式意味着 Storm 是部署在多台主机上,它解决并发性(多机资源同时做业)以及可用性(一台主机出现问题,计算任务移交到其余机器)问题java
分布式天然而然让咱们联想到了须要一个协调服务,这里提到的就是 zookeeper。zookeeper 用于协调 Nimbus、Supervisor。git
二、实时则区别于 Mapreduce 的批处理github
至于如何从原理上理解 Storm 的特性,我会在后面的文章中具体介绍。本文则简单介绍如何安装以及启动 Storm, 先将其完整的运做起来可以帮助咱们理解以及创建信心。这里为何说是简单介绍呢,由于安装并启动一个 Storm 运行环境确实很简单。apache
安装 Storm 以前请确保你已经安装好:vim
- jdk
- zookeeper
参见 zookeeper 集群安装配置 ,固然你能够安装单节点的 zookeeperbash
访问官网,下载你须要的版本,本文使用的是 1.0.6 版本(apache-storm-1.0.6.tar.gz)。 将 apache-storm-1.0.6.tar.gz 拷贝到三台主机上并解压。微信
cd /home/app
tar -zxvf apache-storm-1.0.6.tar.gz
复制代码
修改/etc/profile,将 Storm 加入环境变量并发
vim /etc/profile
复制代码
/etc/profile 文件以下app
export STORM_HOME=/home/app/apache-storm-1.0.6
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$STORM_HOME/bin:$PATH
复制代码
生效/etc/profile
source /etc/profile
复制代码
cd apache-storm-1.0.6/conf
vim storm.yaml
复制代码
配置每台主机上的 storm.yaml 文件,配置内容以下
storm.zookeeper.servers:
- "mini01"
- "mini02"
- "mini03"
storm.local.dir: "/home/app/apache-storm-1.0.6/data"
nimbus.seeds: ["mini01"]
supervisor.slots.ports:
- 6700
ui: 8088
复制代码
其中:
特别注意,配置项冒号后面须要接一个空格
这里只列出了几个能保证服务正常运行的配置项,Storm 提供了不少其余配置项,感兴趣的能够看看 Storm 配置文件源码
mini01 上 启动 nimbus 以及 Storm UI
nohup storm nimbus &
nohup storm ui &
复制代码
mini02 和 mini03 上启动 supervisor
nohup storm supervisor &
复制代码
mini01 上能够看到 zookeeper(QuorumPeerMain) 以及 nimnus 进程
[root@mini01 5257]# jps
4810 QuorumPeerMain
5257 core
5206 nimbus
5410 Jps
复制代码
mini02 和 mini03 上能够看到 supervisor 进程
[root@mini02 bin]# jps
2823 QuorumPeerMain
3100 Supervisor
3191 Jps
复制代码
访问 mini01:8088
在安装启动时可能会有一些报错(例以下面):
请确保:
不能正常运行,查看以下几个日志,对症下药便可: