一、集群规划

这里搭建一个3节点的Storm集群:三台主机上均部署SupervisorLogViewer服务。同时为了保证高可用,除了在hadoop001上部署主Nimbus服务外,还在hadoop002上部署备用的Nimbus服务。Nimbus服务由Zookeeper集群进行协调管理,如果主Nimbus不可用,则备用Nimbus会成为新的主Nimbus

二、前置条件

Storm 运行依赖于Java 7+ 和 Python 2.6.6 +,所以需要预先安装这两个软件。同时为了保证高可用,这里我们不采用Storm内置的Zookeeper,而采用外置的Zookeeper集群。由于这三个软件在多个框架中都有依赖,其安装步骤单独整理至 :

三、集群搭建

1. 下载并解压

下载安装包,之后进行解压。官方下载地址:http://storm.apache.org/downloads.html

# 解压
tar -zxvf apache-storm-1.2.2.tar.gz

2. 配置环境变量

# vim /etc/profile

添加环境变量:

export STORM_HOME=/usr/app/apache-storm-1.2.2
export PATH=$STORM_HOME/bin:$PATH

使得配置的环境变量生效:

# source /etc/profile

3. 集群配置

修改${STORM_HOME}/conf/storm.yaml文件,配置如下:

# Zookeeper集群的主机列表
storm.zookeeper.servers:
     - "hadoop001"
     - "hadoop002"
     - "hadoop003"

# Nimbus的节点列表
nimbus.seeds: ["hadoop001","hadoop002"]

# Nimbus和Supervisor需要使用本地磁盘上来存储少量状态(如jar包,配置文件等)
storm.local.dir: "/home/storm"

# workers进程的端口,每个worker进程会使用一个端口来接收消息
supervisor.slots.ports:
     - 6700
     - 6701
     - 6702
     - 6703

supervisor.slots.ports参数用来配置workers进程接收消息的端口,默认每个supervisor节点上会启动4个worker,当然你也可以按照自己的需要和服务器性能进行设置,假设只想启动2个worker的话,此处配置2个端口即可。

4. 安装包分发

将Storm的安装包分发到其他服务器,分发后建议在这两台服务器上也配置一下Storm的环境变量。

scp -r /usr/app/apache-storm-1.2.2/ root@hadoop002:/usr/app/
scp -r /usr/app/apache-storm-1.2.2/ root@hadoop003:/usr/app/

四. 启动集群

4.1 启动ZooKeeper集群

分别到三台服务器上启动ZooKeeper服务:

 zkServer.sh start

4.2 启动Storm集群

因为要启动多个进程,所以统一采用后台进程的方式启动。进入到${STORM_HOME}/bin目录下,执行下面的命令:

hadoop001 & hadoop002 :

# 启动主节点 nimbus
nohup sh storm nimbus &
# 启动从节点 supervisor
nohup sh storm supervisor &
# 启动UI界面 ui
nohup sh storm ui &
# 启动日志查看服务 logviewer
nohup sh storm logviewer &

hadoop003 :

hadoop003上只需要启动supervisor服务和logviewer服务:

# 启动从节点 supervisor
nohup sh storm supervisor &
# 启动日志查看服务 logviewer
nohup sh storm logviewer &

4.3 查看集群

使用jps查看进程,三台服务器的进程应该分别如下:

访问hadoop001或hadoop002的8080端口,界面如下。可以看到有一主一备2个Nimbus和3个Supervisor,并且每个Supervisor有四个slots,即四个可用的worker进程,此时代表集群已经搭建成功。

五、高可用验证

这里手动模拟主Nimbus异常的情况,在hadoop001上使用kill命令杀死Nimbus的线程,此时可以看到hadoop001上的Nimbus已经处于offline状态,而hadoop002上的Nimbus则成为新的Leader

更多大数据系列文章可以参见个人 GitHub 开源项目: 程序员大数据入门指南

Storm 学习之路(四)—— Storm集群环境搭建的更多相关文章

  1. Storm 系列(四)—— Storm 集群环境搭建

    一.集群规划 这里搭建一个 3 节点的 Storm 集群:三台主机上均部署 Supervisor 和 LogViewer 服务.同时为了保证高可用,除了在 hadoop001 上部署主 Nimbus ...

  2. 一:Storm集群环境搭建

    第一:storm集群环境准备及部署[1]硬件环境准备--->机器数量>=3--->网卡>=1--->内存:尽可能大--->硬盘:无额外需求[2]软件环境准备---& ...

  3. Storm —— 集群环境搭建

    一.集群规划 这里搭建一个3节点的Storm集群:三台主机上均部署Supervisor和LogViewer服务.同时为了保证高可用,除了在hadoop001上部署主Nimbus服务外,还在hadoop ...

  4. ZooKeeper学习之路(二)—— Zookeeper单机环境和集群环境搭建

    一.单机环境搭建 1.1 下载 下载对应版本Zookeeper,这里我下载的版本3.4.14.官方下载地址:https://archive.apache.org/dist/zookeeper/ # w ...

  5. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十二)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网。

    Centos7出现异常:Failed to start LSB: Bring up/down networking. 按照<Kafka:ZK+Kafka+Spark Streaming集群环境搭 ...

  6. 大数据 -- Hadoop集群环境搭建

    首先我们来认识一下HDFS, HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.它其实是将一个大文件分成若干块保存在不同服务器的多个节点中.通过联网 ...

  7. ElasticSearch 集群环境搭建,安装ElasticSearch-head插件,安装错误解决

    ElasticSearch-5.3.1集群环境搭建,安装ElasticSearch-head插件,安装错误解决 说起来甚是惭愧,博主在写这篇文章的时候,还没有系统性的学习一下ES,只知道可以拿来做全文 ...

  8. Redis集群环境搭建实践

    0 Redis集群简介 Redis集群(Redis Cluster)是Redis提供的分布式数据库方案,通过分片(sharding)来进行数据共享,并提供复制和故障转移功能.相比于主从复制.哨兵模式, ...

  9. Spark 1.6.1分布式集群环境搭建

    一.软件准备 scala-2.11.8.tgz spark-1.6.1-bin-hadoop2.6.tgz 二.Scala 安装 1.master 机器 (1)下载 scala-2.11.8.tgz, ...

随机推荐

  1. c语言学习笔记(3)——输入输出

    一.基本的输入和输出函数的用法 printf()  //屏幕输出 用法: (1)printf("字符串\n"); (2)printf("输出控制符", 输出参数 ...

  2. 解决eclipse中找不到jar包问题

    当使用eclipse导入外部的web工程时,有时会提示HttpServletRequest, ServletActionContext找不到的情况,解决办法: (注:我已经引用了struts2的jar ...

  3. 利用反汇编手段解析C语言函数

    1.问题的提出函数是 C语言中的重要概念.利用好函数能够充分利用系统库的功能写出模块独立.易于维护和修改的程序.函数并不是 C 语言独有的概念,其他语言中的方法.过程等本质上都是函数.可见函数在教学中 ...

  4. windows8运行zxing源码 生成与解码二维码 详解(含注释与图解可直接运行)

    1 下载zxing2.1 2 本代码配置环境:eclipse.java1.6.windows8.zxing2.1 3 解压后将文件夹里面core/src下面的com文件夹导入到eclipse工程(工程 ...

  5. DevOps技术路线图

    来自roadmap.sh github地址 自己整理的百度脑图中文版

  6. wpf C# 操作DirectUI窗口 SendMessage+MSAA

    原文:wpf C# 操作DirectUI窗口 SendMessage+MSAA 最近做一个抓取qq用户资料的工具,需要获取qq窗口上的消息,以前这种任务是用句柄获取窗口中的信息,现在qq的窗口用的是D ...

  7. LeapMotion Demo2

    原文:LeapMotion Demo2    官方doc有四个手势,最近尝试实现对握拳的识别,并能在我的程序界面上体现出来.    调试过程较为繁琐,幸好最终效果还差强人意! 首先看看我的效果图:   ...

  8. XF 定制图片

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  9. WPF IDataErrorInfo使用-数据对象上验证

    <Window x:Class="DataBindingExam.MainWindow"        xmlns="http://schemas.microsof ...

  10. 展讯通信:文章"紫光收购后展讯困难重重”失实(展讯的成就确实很高)

    6月22日上午消息,展讯通信官方微信对自媒体文章<五大危机缠身,紫光收购后展讯困难重重>作出声明,称,其中内容严重失实,对公司造成了不良影响,并表示,将坚决采取法律手段维护自身的合法权益. ...