优秀的编程知识分享平台

网站首页 > 技术文章 正文

Storm的安装详细记录(storm drainage)

nanyue 2024-08-13 07:55:28 技术文章 11 ℃

1. 安装前准备

安装Storm之前需要安装ZeroMQJZMQ

(安装ZeroMQ、JZMQ之前需要先安装

zmq基本依赖库,libtool, pkg-config, build-essential, autoconf, make,

yum install -y gcc-c++.x86_64 uuid-devel.x86_64 libuuid-devel.x86_64 libtool.x86_64 git.x86_64

在安装ZeroMQ之前先安装如下命令:

yum install -y gcc-c++.x86_64

yum install -y uuid-devel.x86_64

yum install -y libuuid-devel.x86_64

yum install -y libtool.x86_64

yum install -y git.x86_64

yum install -y make

去官网下载libsodium库源码,然后编译安装

wget https://github.com/jedisct1/libsodium/releases/download/1.0.8/libsodium-1.0.8.tar.gz

tar xvzf libsodium-1.0.8.tar.gz

./autogen.sh

./configure

make && make check

make install

ZeroMQ安装:

tar -xzvf zeromq-2.1.7.tar.gz

cd zeromq-2.1.7

./autogen.sh

./configure

make

sudo make install

JZMQ安装:

git clone https://github.com/nathanmarz/jzmq.git

cd jzmq

./autogen.sh

./configure

make

sudo make install

2. storm配置

wget https://dl.dropboxusercontent.com/s/tqdpoif32gufapo/storm-0.9.0.1.tar.gz

tar xzvf . /storm-0.9.0.1.tar.gz

cd /opt/soft/storm-0.9.0.1/conf

[root@cdh5 conf]# vi storm.yaml

########### These MUST be filled in for a storm configuration

storm.zookeeper.servers:

- "cdh5.master"

- "cdh5.slave1"

- "cdh5.slave2"

nimbus.host: "cdh5.slave1"

storm.local.dir: "/opt/soft/storm-0.9.0.1/data"

# ##### These may optionally be filled in:

## List of custom serializations

# topology.kryo.register:

# - org.mycompany.MyType

# - org.mycompany.MyType2: org.mycompany.MyType2Serializer

## List of custom kryo decorators

# topology.kryo.decorators:

# - org.mycompany.MyDecorator

## Locations of the drpc servers

drpc.servers:

- "cdh5.slave1"

# - "server2"

## Metrics Consumers

# topology.metrics.consumer.register:

# - class: "backtype.storm.metrics.LoggingMetricsConsumer"

# parallelism.hint: 1

# - class: "org.mycompany.MyMetricsConsumer"

# parallelism.hint: 1

# argument:

# - endpoint: "metrics-collector.mycompany.org"

supervisor.slots.ports:

- 6700

- 6701

- 6702

- 6703

- 6704

- 6705

- 6706

- 6707

java.library.path: /usr/local/lib:/usr/java/jdk1.7.0_55-cloudera/lib:/usr/lib

ui.port: 8081

注意: 配置文件中有效行必须以空格开头(顶格会报如下错误):

参数说明:

1) storm.zookeeper.servers: Storm集群使用的Zookeeper集群地址,其格式如下:

storm.zookeeper.servers:

- "111.222.333.444"

- "555.666.777.888"

如果Zookeeper集群使用的不是默认端口,那么还需要storm.zookeeper.port选项。

2) storm.local.dir: Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录,需要提前创建该目录并给以足够的访问权限。然后在storm.yaml中配置该目录,如:

storm.local.dir: "/home/admin/storm/workdir"

3) java.library.path: Storm使用的本地库(ZMQ和JZMQ)加载路径,默认为"/usr/local/lib:/opt/local/lib:/usr/lib",一般来说ZMQ和JZMQ默认安装在/usr/local/lib 下,因此不需要配置即可。

4) nimbus.host: Storm集群Nimbus机器地址,各个Supervisor工作节点需要知道哪个机器是Nimbus,以便下载Topologies的jars、confs等文件,如:

nimbus.host: "111.222.333.444"

5) supervisor.slots.ports: 对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认情况下,每个节点上可运行4个workers,分别在6700、6701、6702和6703端口,如:

supervisor.slots.ports:

- 6700

- 6701

- 6702

- 6703

3. storm启动

Storm启动测试

cd /opt/soft/storm-0.9.0.1/bin

./storm nimbus 无告警即启动成功

./storm supervisor 无告警即启动成功


挂到后台运行命令

nohup storm nimbus & 进程名nimbus

nohup storm ui & //启动web窗口 进程名core

在浏览器中打开Storm UI,(在浏览器中输入” http://{nimbus host}:8081”访问UI)。


nohup storm supervisor &

在浏览器中刷新Storm UI(在你的浏览器中输入” http://{nimbus host}:8081”访问UI)。

4. DRPC服务启动

nohup storm drpc &

启动Storm drpc服务。没DB稳定

客户端连接代码

DRPCClient client = new DRPCClient(“192.168.112.112”, 3772); 具有单点故障问题

5. 向集群提交任务

1)启动Storm Topology:

在vi /etc/profile配置环境变量后

export STORM_HOME=/opt/soft/storm-0.9.0.1/

export PATH=$PATH::$STORM_HOME/bin

storm jar /opt/PvTopo.jar visits.PvTopo PvTopo

在浏览器中刷新Storm UI

2)停止Storm Topology:

storm kill {toponame}

其中,{toponame}为Topology提交到Storm集群时指定的Topology任务名称。

./storm kill PvTopo

6. Storm日志查看

0.9.0版本以后Storm增加了一个logviewer。新的logviewer进程与supervisor是相对独立的进程,如果要在新的Storm里启动它,你只需要在集群的supervisor节点执行如下命令:

nohup storm logviewer &

就可以直接在UI界面里点击端口号670x即可查看日志结果。

最近发表
标签列表