阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Twitter Storm 集群搭建

121次阅读
没有评论

共计 2815 个字符,预计需要花费 8 分钟才能阅读完成。

Storm 是什么?

Storm 是 Twitter 开源的一个分布式的实时计算系统

使用场景 :

数据的实时分析, 持续计算, 分布式 RPC 等等.

Storm 特点:(Storm 类似手扶电梯, 不出故障就会一直运行,Hadoop 类似升降电梯, 到达一定程度会停止)。

  • 分布式
  • 可扩展
  • 高可靠性
  • 编程模型简单
  • 高效实时

常用的类 :

  • BaseRichSpout(消息生产者)
  • BaseBasicBolt(消息处理者)
  • TopologyBuilder(拓扑的构建器)
  • Config(配置)
  • StormSubmitter/LocalCluster(拓扑提交器)

Storm 集群部署

Storm 集群架构:

如图:

Twitter Storm 集群搭建

在 Storm 的集群里面有两种节点:控制节点和工作节点。

控制节点上面运行一个叫 Nimbus 进程,Nimbus 负责在集群里面分发代码,分配计算任务,并且监控状态。

每一个工作节点上面运行一个叫做 Supervisor 进程。

Supervisor 负责监听从 Nimbus 分配给它执行的任务,据此启动或停止执行任务的工作进程

Nimbus 和 Supervisor 之间的所有协调工作都是通过 Zookeeper 集群完成。

集群规划:(根据具体需求规划)

linux 主机名    Storm 角色    Zookeeper

master        Nimubus      单节点 zk

slave01        Supervisor

slave02        Supervisor

准备工作

环境:CentOS 6.4

软件:

jzmq-master

storm-0.8.2

zeromq-2.1.7

zookeeper-3.4.5

环境配置 :

linux 基本配置:

修改主机名

修改 IP

修改主机和 IP 的映射关系

关闭防火墙

安装步骤:

1. 安装 jdk

2. 搭建 Zookeeper 集群 (这里我们只安装一个 zk 在主节点上)

解压

进入 zk 的 conf 目录下,cp zoo_sample.cfg zoo.cfg(修改一下名字)

其它的暂时都不变

3. 安装 Storm 依赖(zeromq、jzmq、python)

3.1 安装 zeromq, 然后进入到 zeromq-2.1.7/ 目录下

检测环境:./configure

cd zeromq-2.1.7

./configure

# 编译可能会出错:

configure: error: Unable to find a working C++ compiler

# 安装一下依赖的 rpm 包:libstdc++-devel gcc-c++

虚拟机可以上网的情况下:(建议使用此方法)

yum install gcc-c++

虚拟机不能上网情况:

首先到

http://mirrors.163.com/centos/6.4/os/x86_64/Packages/

(下载的版本一定要和系统对应)

rpm -i libstdc++-devel-4.4.7-3.el6.x86_64.rpm

rpm -i gcc-c++-4.4.7-3.el6.x86_64.rpm

rpm -i libuuid-devel-2.17.2-12.9.el6.x86_64.rpm

然后运行./configure

make(编译)

make install(这个才彻底安装)

3.2. 编译安装 JZMQ:

cd jzmq

执行./autogen.sh

(是为了让它产生配置文件, 默认没有配置文件的)

# 报错:autogen.sh: error: could not find libtool.

libtool is required to run autogen.sh.

缺少 libtool

同样,可上网情况下

yum install libtool(readhat 企业版不会出现这些报错)

或者手动安装

rpm -i autoconf-2.63-5.1.el6.noarch.rpm

rpm -i automake-1.11.1-4.el6.noarch.rpm

rpm -i libtool-2.2.6-15.5.el6.x86_64.rpm

./configure

make

make install

3.33. 编译安装 Python

(先确定你系统自带的版本,如果是 2.6.6 或者之上的不需要安装)

tar –zxvf Python-2.6.6.tgz

cd Python-2.6.6

./configure

make

make install

3.4 安装 storm

修改 storm.yaml 配置文件(子节点上也得修改)

修改 zk 对应的主机名

修改主节点对应的主机名

PS:

3.41.Storm 发行版本解压目录下有一个

conf/storm.yaml 文件:

用于配置 Storm。默认配置在这里可以查看

conf/storm.yaml 中的

配置选项将覆盖 defaults.yaml 中的默认配置。

以下配置选项是必须在

conf/storm.yaml 中进行配置的:

storm.zookeeper.servers:

Storm 集群使用的 Zookeeper 集群地址,

其格式如下:

storm.zookeeper.servers:

– “111.222.333.444”

– “555.666.777.888”

如果 Zookeeper 集群使用的不是默认端口,

那么还需要 storm.zookeeper.port 选项。

3.42storm.local.dir: Nimbus 和 Supervisor 进程

用于存储少量状态,

如 jars、confs 等的本地磁盘目录,

需要提前创建该目录并给以足够的访问权限。

然后在 storm.yaml 中配置该目录,如:

storm.local.dir: “/usr/storm/workdir”

分别启动三台机器

master: 到 storm 的 bin 目录下

./storm nimbus > /dev/null 2>&1 &

slave01: 到 storm 的 bin 目录下

./storm supervisor > ../logs/su.log 2>&1 &

slave02: 到 storm 的 bin 目录下

./storm supervisor > ../logs/su.log 2>&1 &

(启动后台进程, 并把正确和错误的信息输出到该文件中)

在 master 上启动 UI 管理界面

./storm ui > /dev/null 2>&1 &

通过浏览器观察:(主节点的 ip:8080)

观察集群的 worker 资源使用情况、

Topologies 的运行状态等信息。

至此,Storm 集群已经部署、配置完毕,可以向集群提交拓扑运行了

推荐阅读:

Twitter Storm 安装配置(集群)笔记 http://www.linuxidc.com/Linux/2013-05/84307.htm

安装 Twitter Storm 集群 http://www.linuxidc.com/Linux/2012-07/66336.htm

Twitter Storm 安装配置(单机版)笔记 http://www.linuxidc.com/Linux/2013-05/84306.htm

Storm 实战及实例讲解一 http://www.linuxidc.com/Linux/2012-08/69146.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计2815字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中