Storm集群搭建

jopen 10年前發布 | 45K 次閱讀 Storm 分布式/云計算/大數據

Storm是什么?
        Storm是推ter開源的一個分布式的實時計算系統
        使用場景:
            數據的實時分析,持續計算,分布式RPC等等.
           
        Storm特點:(Storm類似手扶電梯,不出故障就會一直運行.
                    hadoop類似升降電梯,到達一定程度會停止)
            分布式
            可擴展
            高可靠性
            編程模型簡單
            高效實時
           
        常用的類:
            BaseRichSpout(消息生產者)
            BaseBasicBolt(消息處理者)
            TopologyBuilder(拓撲的構建器)
            Config(配置)
            StormSubmitter/LocalCluster(拓撲提交器)

Storm集群部署           
    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集群已經部署、配置完畢,可以向集群提交拓撲運行了

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!