簡單搭建Strom集羣

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

Storm集羣部署           
    Storm集羣架構:
   
        如圖:
linux

           



        在Storm的集羣裏面有兩種節點:控制節點和工做節點。
            控制節點上面運行一個叫Nimbus進程,Nimbus負責在集羣裏面
c++

            分發代碼,分配計算任務,而且監控狀態。
        每個工做節點上面運行一個叫作Supervisor進程。
            Supervisor負責監遵從Nimbus分配給它執行的任務,
編程

            據此啓動或中止執行任務的工做進程 centos

        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
oop

                        (是爲了讓它產生配置文件,默認沒有配置文件的)
                        #報錯:autogen.sh: error: could not find libtool.
                              libtool is required to run autogen.sh. 
ui

                            缺乏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集羣已經部署、配置完畢,能夠向集羣提交拓撲運行了

相關文章
相關標籤/搜索