荐 顶 Storm集群搭建

2019-03-02 23:58|来源: 网路

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集群已经部署、配置完毕,可以向集群提交拓扑运行了



转自:http://my.oschina.net/allen1088/blog/219418

相关问答

更多
  • 生理学和心理学了解运用如何?去什么地方不重要,重要的是能够运用到您的专业,来奠定你的职业方向!从事教学工作还是教务管理工作。
  • 你去贵阳艺龙居室内设计学校啊,哪里就包就业,而且在哪学过的学员都很厉害,在装修行列中都很出名,还有小班教学,白天工作,晚上也可以来学,这是我的回答,希望能帮助你。
  • 广州思达笔记本维修中心, 地址是:岗顶百脑汇B座2205 联系电话:22035056
  • 我建议选择培训班的时候一定要选择业内口碑最好的机构,这样才能顺利通过公务员考试。随着现在公务员考试的持续升温,选择好的培训机构尤为重要,汇金大厦14楼的中青不错哦有空可以去看看
  • 秒杀系统,是典型的短时大量突发访问类问题。对这类问题,有三种优化性能的思路: 写入内存而不是写入硬盘、异步处理而不是同步处理、分布式处理 用上这三招,不论秒杀时负载多大,都能轻松应对。更好的是,Redis能够满足上述
  • 请自行学习win2008的群集做法,其实就把esxi上面的VM当成个服务器就好了。加共享硬盘的时候如果想用SCSI卡的记得选共享等级起码要虚拟级别。其他参照microsoft官方的做法即可。
  • 如何使用 Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据...
  • bg4.png 如果对zookeeper系统的认识一下,可能会加深理解,下面可以参考:zookeeper适用场景:zookeeper解决了哪些问题什么是ZooKeeper,ZooKeeper 能干什么?ZooKeeper的作用zookeeper原理zookeeper适用场景:如何竞选Master及代码实现zookeeper适用场景:配置文件同步分布式网站架构:zookeeper技术浅析zookeeper适用场景:分布式锁实现