流计算框架-最新版Apache Storm v2.0单机模式安装详细步骤
现在,我们来看看如何在你的机器上以单机模式安装Apache Storm流计算框架。主要有4个步骤:
- 在系统上安装JDK(如果还没有安装)。
- 安装Python(如果还没有安装)。
- 安装Zookeeper框架。
- 安装Apache Storm框架。
查看Storm的官方安装文档,注意到如下信息:
Storm Nimbus和worker有2个依赖,分别为Java 8+和Python 2.6.6(或以上版本,不过未经测试验证)。
一、验证Java安装
java -version
二、验证或安装Python
一般操作系统上都安装了Python,查看当前Python版本:
三、ZooKeeper框架安装和启动
(1)下载最新版本的Zookeeper
http://zookeeper.apache.org/releases.html
(2)选择一个最近的镜像站点下载:
http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.5/
下载Zookeeper
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz
(3)解压tar文件
cd /opt
tar -zxf apache-zookeeper-3.5.5-bin.tar.gz
mv apache-zookeeper-3.5.5-bin apache-zookeeper
mkdir data
(4)创建配置文件
使用命令“vim conf/zoo.cfg”打开名为“conf/zoo.cfg”的配置文件,并将所有以下参数设置为如下。
cd conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
参数设置如下,主要是调整dataDir目录设置。
还需要设置Zookeeper AdminServer的端口号(默认是8080,需要调整,否则和Storm UI 默认端口号冲突)。
仍然是在 zoo.cfg 配置文件中,添加:
admin.serverPort=8090
配置文件保存成功后,可以启动ZooKeeper服务器。
(5)启动Zookeeper服务器
使用以下命令启动Zookeeper服务器。
bin/zkServer.sh start
如果在启动过程中,出现异常信息,可以按照如下思路排查问题:
一是查看Zookeeper Server的状态。
bin/zkServer.sh status
二是通过 start-foreground 参数,查看失败原因。
bin/zkServer.sh start-foreground
(6)启动CLI
使用以下命令启动CLI。
$ bin/zkCli.sh
(7)停止ZooKeeper服务器
连接服务器并执行所有操作后,可以使用以下命令停止ZooKeeper服务器。
bin/zkServer.sh stop
现在,已成功在计算机上安装Java和ZooKeeper。
四,Apache Storm框架安装
请访问以下链接并下载最新版本的Storm:
http://storm.apache.org/downloads.html
当前最新Release版本为 2.0。
此版本的主要亮点是Storm已经在纯Java中重新构建。以前,Storm的核心功能很大一部分是在Clojure中实现的。此版本还包括在性能,新Streams API,窗口增强功能和Kafka集成更改方面的重大改进。
进入/opt 目录
cd /opt
(1)下载apache storm 2.0
wget https://mirrors.tuna.tsinghua.edu.cn/apache/storm/apache-storm-2.0.0/apache-storm-2.0.0.tar.gz
(2)解压缩
tar -zxf apache-storm-2.0.0.tar.gz
更改apache-storm目录名称
mv apache-storm-2.0.0 apache-storm
创建data子目录
cd apache-storm
mkdir data
(3)修改配置文件
vim conf/storm.yaml
其中,配置参数说明:
- storm.zookeeper.servers:Storm集群使用的Zookeeper集群地址,如果Zookeeper集群使用的不是默认端口,那么还需要storm.zookeeper.port选项。
- ui.port:Storm UI的服务端口。
- storm.local.dir:Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录。
- nimbus.host: Storm集群Nimbus机器地址。
- supervisor.slots.ports: 对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认情况下,每个节点上可运行4个workers,分别在6700、6701、6702和6703端口。
(4)配置一下storm 环境变量
为了操作方便,可以进一步配置一下storm环境变量。
vim /etc/profile
添加如下配置信息:
# Zookeeper setting
export ZOOKEEPER_HOME=/opt/apache-zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
# Storm setting
export STORM_HOME=/opt/apache-storm
export PATH=$PATH:$STORM_HOME/bin
执行 source /etc/profile,使配置即时生效。
五、启动Zookeeper和Storm
在启动storm之前要确保nimbus和supervisor上的Zookeeper已经启动。
(1)查看 Zookeeper的状态
zkServer.sh status
(2)如果Zookeeper Server没有开启,则需要将nimbus和supervisor 机器上的Zookeeper开启
zkServer.sh start
(3)启动Storm nimbus
nohup storm nimbus &
(4)启动Storm supervisor
nohup storm supervisor &
(5)启动Storm UI
nohup storm ui &
检查一下Zookeeper和Storm 各进程的运行情况。如下图所示,都运行正常。
- nimbus进程:主要职责是管理、协调和监控集群上运行的topology(包括topology的发布、任务指派、时间处理时重新指派任务等)。
- supervisor进程:等待nimbus分配任务后生成并监控worker(jvm进程)执行任务。supervisor与worker运行在不同的jvm上,如果由supervisor启动的某个worker因为错误异常退出(或被kill掉),supervisor会尝试重新生成新的worker进程。
- ui进程:为Stom集群提供一个web的gui监控界面,对正在运行的nimbus、supervisor、topology进行展示,对正在运行的topology有一定管理功能,提供其统计信息,对监控Storm集群的运转和topology的功能有很大的帮助。ui进程属于Storm的可选服务,可以自由选择启动或不启动。
启动Storm用户界面应用程序后,在浏览器中键入URL http://localhost:8080,就可以看到Storm群集信息及其运行的拓扑。
该页面应类似于以下屏幕截图。
UI 界面简单介绍:
- Used slots:使用的worker数。
- Free slots:空闲的worker数。
- Executors:每个worker的物理线程数。
参考链接:
Setting up a Storm Cluster
http://storm.apache.org/releases/2.0.0-SNAPSHOT/Setting-up-a-Storm-cluster.html