学习过程中,不要强烈追求集群,有个单机就够了,单机好了,再学习集群,否则都把时间浪费在了集群搭建上,还影响心情,影响我们核心内容的学习。你自己搞的小破集群也没有什么用,与生产环境的差别大了,还需要深入研究,才能搭建一个可以应用于生产环境的集群。
一、Storm单机环境搭建
我们先看下官网是如何介绍的?
http://storm.apache.org/releases/1.1.2/Setting-up-a-Storm-cluster.html
Here's a summary of the steps for setting up a Storm cluster:
- Set up a Zookeeper cluster
- Install dependencies on Nimbus and worker machines
- Download and extract a Storm release to Nimbus and worker machines
- Fill in mandatory configurations into storm.yaml
- Launch daemons under supervision using "storm">
1、基础环境准备
Install dependencies on Nimbus and worker machines
Next you need to install Storm's dependencies on Nimbus and the worker machines. These are:
- Java 7+ (Apache Storm 1.x is tested through travis ci against both java 7 and java 8 JDKs)
- Python 2.6.6 (Python 3.x should work too, but is not tested as part of our CI enviornment)
简而言之:
jdk:1.7+
python:2.6+
1)JDK环境
java -version
关于具体安装,这里就不说了,太简单了
2)Python环境
python --version
注释:默认机器都安装了Python(2.6.6)
3)ZooKeeper环境
storm自带了一个开发版的ZK,也不需要自己去部署,配置都不需要,极其简单的,这也是Storm的一个好处,基本上是开箱即用的。
2、单机环境搭建
在Linux下安装软件无非就这几个步骤
1)下载
我们课程使用的Storm版本是:1.1.2
cd /usr/local/src/
wget http://mirrors.hust.edu.cn/apache/storm/apache-storm-1.1.2/apache-storm-1.1.2.tar.gz
2)解压
tar -zxvf apache-storm-1.1.2.tar.gz
mv apache-storm-1.1.2 ../
3)配置环境变量
vim /etc/profile
export STORM_HOME=/usr/local/apache-storm-1.1.2
export PATH=$STORM_HOME/bin:$PATH
source /etc/profile
4)基本配置
storm-env.sh
建议配置下JAVA_HOME:防止没有配环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_181
5)启动
我们先不过多讲解storm.yaml,我们先吧storm启动起来
$STORM_HOME/bin/storm 如何使用 执行storm就能看到很多详细的命令
- 启动我们内置的zookeeper
nohup sh $STORM_HOME/bin/storm dev-zookeeper &
[root@jikeh src]# nohup sh $STORM_HOME/bin/storm dev-zookeeper &
[1] 2122
[root@jikeh src]# nohup: ignoring input and appending output to `nohup.out'
^C
注释:当执行完后,通过ctrl+c来结束命令
此时,jps查看当前进程信息:
[root@jikeh src]# jps
2160 Jps
2150 config_value
注释:中间会有个config_value进程过滤
最终的进程信息为:
[root@jikeh src]# jps
2213 Jps
2122 dev_zookeeper
[root@jikeh src]# jps -l
2228 sun.tools.jps.Jps
2122 org.apache.storm.command.dev_zookeeper
- 启动nimbus
nohup sh $STORM_HOME/bin/storm nimbus &
[root@jikeh src]# jps -l
2248 org.apache.storm.daemon.nimbus
2425 sun.tools.jps.Jps
2122 org.apache.storm.command.dev_zookeeper
注释:启动了nimbus进程
- 启动supervisor
nohup sh $STORM_HOME/bin/storm supervisor &
[root@jikeh src]# jps
2435 Supervisor
2248 nimbus
2122 dev_zookeeper
2539 Jps
[root@jikeh src]# jps -l
2435 org.apache.storm.daemon.supervisor.Supervisor
2549 sun.tools.jps.Jps
2248 org.apache.storm.daemon.nimbus
2122 org.apache.storm.command.dev_zookeeper
注释:启动了Supervisor进程
- 启动ui界面:storm的web ui界面
nohup sh $STORM_HOME/bin/storm ui &
[root@jikeh src]# jps
2435 Supervisor
2248 nimbus
2122 dev_zookeeper
2655 Jps
2559 core
[root@jikeh src]# jps -l
2435 org.apache.storm.daemon.supervisor.Supervisor
2248 org.apache.storm.daemon.nimbus
2665 sun.tools.jps.Jps
2122 org.apache.storm.command.dev_zookeeper
2559 org.apache.storm.ui.core
注释:启动了core进程
- 启动logview日志查看服务:方便查看各组件的运行日志
nohup sh $STORM_HOME/bin/storm logviewer &
[root@jikeh src]# jps
2675 logviewer
2435 Supervisor
2774 Jps
2248 nimbus
2122 dev_zookeeper
2559 core
[root@jikeh src]# jps -l
2784 sun.tools.jps.Jps
2675 org.apache.storm.daemon.logviewer
2435 org.apache.storm.daemon.supervisor.Supervisor
2248 org.apache.storm.daemon.nimbus
2122 org.apache.storm.command.dev_zookeeper
2559 org.apache.storm.ui.core
注释:启动了logviewer进程
启动了上述命令时候,默认会在storm的安装目录生产一个logs的文件夹,存放运行日志的一些信息,对于拍错是很有用的
6)Storm UI界面初探:
访问端口:默认端口为8080
http://192.168.199.147:8080/index.html
界面参数介绍:
- slot是个什么东西,之前我们没有见过呀?
注释:
Total slots:Total number of Slots. Slots are Workers (processes).
slot=worker,slot就是worker;
Used slots:当前使用的worker。此时我们没有提交拓扑,肯定就是0了
Free slots:当前可分配的worker。
- slot为什么是4个呢?
默认配置文件中,配置的就是4个,之后我们会详细解释如何调整该数量
- nimbus为什么会有两个呢?
因为1.x版本之后,为了实现高可用ha功能,内部默认配置一个备用节点,0.x版本都是单点的。
- logview上查看nimbus、supervisor的运行日志
注意需要配置下本地hosts:
192.168.199.147 jikeh
还有一点需要注意:这个域名不要与你计算机名,否则在Windows下是ping不通,无法解析的,Linux没有该问题!!!
7)错误
一定要配置hosts:服务器
原因Storm会通过主机名来进行网络访问==>必须配置hosts,否则将会启动失败!!!
vim /etc/hosts
127.0.0.1 your hostname
下篇,我们将在我们搭建的环境上部署storm程序,并详解Storm UI界面,简单介绍下三节点Storm集群环境的搭建!!!
閱讀更多 極客慧 的文章