Storm分布式计算框架的搭建过程

什么是storm

storm是一个分布式的计算框架,并且,storm是基于内存式的计算服务,在storm计算期间,所有的数据都在内存中进行计算,没有进行耗时的io操作,也正是因为storm的这种特性,使得storm与hadoop的批处理形式不同,storm是流处理的形式,只要数据一进来就开始进行计算服务。

依赖一:zookeeper

zookeeper是一个分布式应用协调工具。其实可以这样说,zookeeper就是一个管家,它管理着一个分布式集群,所有的机器调度都通过zookeeper进行协调。

进入Apache官网下载zookeeper后进行解压缩,然后进入conf目录,创建一个新的文件conf.cfg,文件内容如下:

1
2
3
4
tickTime=2000  
dataDir= /usr/myenv/zookeeper-3.4.8/data (填写自己的data目录)
dataLogDir=/usr/myenv/zookeeper-3.4.8/logs
clientPort=2181

每个参数的含义:
。tickTime: zookeeper中使用的基本时间单位, 毫秒值
。dataDir: 数据目录. 可以是任意目录
。dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和#dataDir相同的设置.
。clientPort: 监听client连接的端口号.

然后保存该文件,回到conf的上一层目录,进入bin目录,然后执行如下指令:

1
2
./zkServer.sh start   (开启指令)
./zkServer.sh stop (关闭指令)

zookeeper start

依赖二:zeromq

如果是mac os的话,直接使用brew的包管理器进行安装:

1
brew install zeromq

如果是linux的话,这里有一个脚本,直接使用就可以
githu地址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/bash

# Download zeromq
# Ref http://zeromq.org/intro:get-the-software
wget https://github.com/zeromq/libzmq/releases/download/v4.2.2/zeromq-4.2.2.tar.gz

# Unpack tarball package
tar xvzf zeromq-4.2.2.tar.gz

# Install dependency
sudo apt-get update && \
sudo apt-get install -y libtool pkg-config build-essential autoconf automake uuid-dev

# Create make file
cd zeromq-4.2.2
./configure

# Build and install(root permission only)
sudo make install

# Install zeromq driver on linux
sudo ldconfig

# Check installed
ldconfig -p | grep zmq

# Expected
############################################################
# libzmq.so.5 (libc6,x86-64) => /usr/local/lib/libzmq.so.5
# libzmq.so (libc6,x86-64) => /usr/local/lib/libzmq.so
############################################################

搭建storm分布式计算框架

在Apache官网下载storm之后,解压缩,进入conf目录下,找到stoem.ymal文件;打开文件进行编辑:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#配置Zookeeper
storm.zookeeper.servers:
- "127.0.0.1"
storm.zookeeper.port: 2181
storm.zookeeper.root: "/storm"

#配置数据存储路径(这里的路径是我自己的,按自己需求来更改)
storm.local.dir: "/Volumes/Extended/Data/apache-storm/data"

#配置节点健康检测
storm.health.check.dir: "healthchecks"
storm.health.check.timeout.ms: 5000

#配置Nimbus节点,如果有多个,可以填写,用逗号隔开
nimbus.seeds: ["127.0.0.1"]

#配置Storm UI
ui.port: 8088

## 配置DRPC服务
drpc.servers:
- "127.0.0.1"

修改文件后保存,回退到conf的上层目录,进入bin目录,然后执行以下三条命令:

1
2
3
➜  ~ ./storm nimbus &
➜ ~ ./storm ui &
➜ ~ ./storm drpc &

然后在浏览器地址栏输入http://127.0.0.1:8088(端口号就是你设置的ui.port,我这里设置的是8088),然后如果看到这个界面,就表示配置成功了!!!