文档章节

Storm集群搭建

迪allen
 迪allen
发布于 2014/04/05 21:08
字数 1096
阅读 4727
收藏 202

Storm是什么?
        Storm是Twitter开源的一个分布式的实时计算系统
        使用场景:
            数据的实时分析,持续计算,分布式RPC等等.
           
        Storm特点:(Storm类似手扶电梯,不出故障就会一直运行.
                    hadoop类似升降电梯,到达一定程度会停止)
            分布式
            可扩展
            高可靠性
            编程模型简单
            高效实时
           
        常用的类:
            BaseRichSpout(消息生产者)
            BaseBasicBolt(消息处理者)
            TopologyBuilder(拓扑的构建器)
            Config(配置)
            StormSubmitter/LocalCluster(拓扑提交器)

Storm集群部署           
    Storm集群架构:
   
        如图:

           



        在Storm的集群里面有两种节点:控制节点和工作节点。
            控制节点上面运行一个叫Nimbus进程,Nimbus负责在集群里面

            分发代码,分配计算任务,并且监控状态。
        每一个工作节点上面运行一个叫做Supervisor进程。
            Supervisor负责监听从Nimbus分配给它执行的任务,

            据此启动或停止执行任务的工作进程 

        Nimbus和Supervisor之间的所有协调工作都是通过Zookeeper集群完成。
       
    集群规划:(根据具体需求规划)
        linux主机名    Storm角色    Zookeeper
        master         Nimubus      单节点zk
        slave01        Supervisor   
        slave02        Supervisor
   
    准备工作:
        环境:centos6.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集群已经部署、配置完毕,可以向集群提交拓扑运行了


© 著作权归作者所有

上一篇: nginx安装
迪allen
粉丝 28
博文 14
码字总数 11554
作品 0
程序员
私信 提问
加载中

评论(9)

百晓
百晓
科普
贾珣
贾珣
+1
空云万里晴
空云万里晴
mark
空云万里晴
空云万里晴
mark
空云万里晴
空云万里晴
mark
list1024
list1024
非常好
车开源
车开源
很好
huazai9999
huazai9999
Twitter Storm集群搭建小结

最近自己尝试搭建了一下Twitter Storm的集群,参考了很多网友的博客,特别是徐明明的;这里只对自己搭建时的过程和所遇到的问题做一个小总结,方便查阅。 Storm是Twitter开源的一个实时计算框...

Breath_L
2012/10/21
7.3K
4
Kafka实战-Storm Cluster

1.概述   在《Kafka实战-实时日志统计流程》一文中,谈到了Storm的相关问题,在完成实时日志统计时,我们需要用到Storm去消费Kafka Cluster中的数据,所以,这里我单独给大家分享一篇Sto...

smartloli
2015/06/18
0
0
Storm入门 第三章 Storm安装部署步骤

本文以Twitter Storm官方Wiki为基础,详细描述如何快速搭建一个Storm集群,其中,项目实践中遇到的问题及经验总结,在相应章节以“注意事项”的形式给出。 3.1 Storm集群组件 Storm集群中包含...

坏坏一笑
2014/12/03
72
0
Apache Storm简介及安装部署

Apache Storm是一个分布式的、可靠的、容错的实时数据流处理框架。它与Spark Streaming的最大区别在于它是逐个处理流式数据事件,而Spark Streaming是微批次处理,因此,它比Spark Streaming...

风火数据
2018/07/20
0
0
Storm概念讲解和工作原理介绍

Strom的结构 Storm与传统关系型数据库 传统关系型数据库是先存后计算,而storm则是先算后存,甚至不存 传统关系型数据库很难部署实时计算,只能部署定时任务统计分析窗口数据 关系型数据库重...

张超
2015/04/26
2.8K
0

没有更多内容

加载失败,请刷新页面

加载更多

可见性有序性,Happens-before来搞定

写在前面 上一篇文章并发 Bug 之源有三,请睁大眼睛看清它们 谈到了可见性/原子性/有序性三个问题,这些问题通常违背我们的直觉和思考模式,也就导致了很多并发 Bug 为了解决 CPU,内存,IO ...

tan日拱一兵
29分钟前
2
0
网络七层模型与TCP/UDP

为了使全球范围内不同的计算机厂家能够相互之间能够比较协调的进行通信,这个时候就有必要建立一种全球范围内的通用协议,以规范各个厂家之间的通信接口,这就是网络七层模型的由来。本文首先...

爱宝贝丶
32分钟前
2
0
Jenkins World 贡献者峰会及专家答疑展位

本文首发于:Jenkins 中文社区 原文链接 作者:Marky Jackson 译者:shunw Jenkins World 贡献者峰会及专家答疑展位 本文为 Jenkins World 贡献者峰会活动期间的记录 Jenkins 15周岁啦!Jen...

Jenkins中文社区
50分钟前
8
0
杂谈:面向微服务的体系结构评审中需要问的三个问题

面向微服务的体系结构如今风靡全球。这是因为更快的部署节奏和更低的成本是面向微服务的体系结构的基本承诺。 然而,对于大多数试水的公司来说,开发活动更多的是将现有的单块应用程序转换为...

liululee
今天
7
0
OSChina 周二乱弹 —— 我等饭呢,你是不是来错食堂了?

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @ 自行车丢了:给主编推荐首歌 《クリスマスの夜》- 岡村孝子 手机党少年们想听歌,请使劲儿戳(这里) @烽火燎原 :国庆快来,我需要长假! ...

小小编辑
今天
832
11

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部