otter學習(二)—— 快速搭建一個能夠本地調試的otter系統

一、搭建otter系統需要的環境

    1.jdk1.6.25以上的版本

    2.方便本地調試用的IDE(Eclipse\IntelliJ IDEA)

    3.mysql數據庫

    4.zookeeper

    5.node

    6.otter.manager

    7.maven

 

二、數據庫搭建

    在你的mysql數據庫新建一個otter的database,然後獲取初始化otter的sql:初始化sql

    執行這個初始化sql

 

 

三、下載otter源碼

     otter的github地址:https://github.com/alibaba/otter,我們目前選用的是4.2.15tag版本。

     源碼下載完成後,進入你所保存的路徑,執行maven命令 mvn clean install

     將otter工程導入到你的IDEA裏去

 

四、部署manager

     manager是otter的配置管理系統,部署manager的前提是已經配置好zookeeper,及第二步導入的數據庫。

    由於manager並非otter的核心模塊,所以我們直接部署manager,而不是在IDEA裏配置調試

     manager有兩種打包方式:

         一種是直接下載github上的發佈版本包https://github.com/alibaba/otter/releases

         另一種則是本地使用maven命令自己編譯:mvn clean install -Dmaven.test.skip -Denv=release,編譯完成後,會在根目錄下產生target/manager.deployer-$version.tar.gz

    無論哪種方式,產出結果都是一個壓縮包,接着,我們對壓縮包進行解壓

    解壓完成後,進入"manager.deployer-4.2.15/conf/"目錄,找到otter.properties文件,此文件爲manager的配置文件,我們需要對此文件進行編輯

    主要是對url及端口、mysql、zookeeper的配置進行修改,修改成你搭建時的相應配置。以下爲我本人的配置,僅供參考:

       otter.domainName = 127.0.0.1

       otter.port = 8080

       otter.jetty = jetty.xml

       otter.database.driver.class.name = com.mysql.jdbc.Driver
       otter.database.driver.url = jdbc:mysql://127.0.0.1:3306/otter
       otter.database.driver.username = root
       otter.database.driver.password = 123QWE!@#qwe

       otter.communication.manager.port = 1099

       otter.communication.pool.size = 10

       otter.zookeeper.cluster.default = 127.0.0.1:2181
       otter.zookeeper.sessionTimeout = 60000

       otter.manager.address = ${otter.domainName}:${otter.communication.manager.port}

       otter.manager.productionMode = true

       otter.manager.monitor.self.enable = true
       otter.manager.monitor.self.interval = 120
       otter.manager.monitor.recovery.paused = true
       otter.manager.monitor.email.host = smtp.gmail.com
       otter.manager.monitor.email.username = 
       otter.manager.monitor.email.password = 
       otter.manager.monitor.email.stmp.port = 465

    當配置完成後,我們進入"manager.deployer-4.2.15/bin/"目錄,執行startup.sh腳本啓動manager,執行腳本的命令爲sh startup.sh

    啓動manager後,我們可訪問manager.deployer-4.2.15/logs/manager.log來查看是否啓動成功,如果出現類似下方的日誌,則表示啓動成功

        2013-08-14 13:19:45.911 [] WARN com.alibaba.otter.manager.deployer.JettyEmbedServer - ##Jetty Embed Server is startup!

        2013-08-14 13:19:45.911 [] WARN com.alibaba.otter.manager.deployer.OtterManagerLauncher - ## the manager server is running now ......

   訪問http://127.0.0.1:8080/,如果出現otter的頁面,表示manager已啓動成功(管理員的初始賬號爲admin\admin)

    

五、部署node

   1.部署前的準備工作 (配置node,並記錄下相應的nid)

       首先訪問manager頁面的機器管理頁面,點擊添加機器按鈕

 

      
        幾點說明:

 

  • 機器名稱:可以隨意定義,方便自己記憶即可
  • 機器ip:對應node節點將要部署的機器ip,如果有多ip時,可選擇其中一個ip進行暴露. (此ip是整個集羣通訊的入口,實際情況千萬別使用127.0.0.1,否則多個機器的node節點會無法識別)
  • 機器端口:對應node節點將要部署時啓動的數據通訊端口,建議值:2088
  • 下載端口:對應node節點將要部署時啓動的數據下載端口,建議值:9090
  • 外部ip :對應node節點將要部署的機器ip,存在的一個外部ip,允許通訊的時候走公網處理。
  • zookeeper集羣:爲提升通訊效率,不同機房的機器可選擇就近的zookeeper集羣.

 

       node這種設計,是爲解決單機部署多實例而設計的,允許單機多node指定不同的端口

 

 

 

       機器添加完成後,跳轉到機器列表頁面,獲取對應的機器序號nid

 

       

 

 

 

       通過這兩部操作,獲取到了node節點對應的唯一標示,稱之爲node id,簡稱:nid. 記錄該nid,後續啓動nid時會使用

    2.部署node包

        此步驟一般用於運維或實施人員進行部署環境時使用,如果是希望能本地調試的開發人員,可以跳過此步驟直接看第3步,也可以瀏覽此步驟參考

        跟manager包相同,node包也有兩種獲取方式:

            一種是直接下載github上的發佈版本包https://github.com/alibaba/otter/releases

 

            另一種則是本地使用maven命令自己編譯:mvn clean install -Dmaven.test.skip -Denv=release  ,編譯完成後,會在根目錄下產生target/node.deployer-$version.tar.gz

        無論哪種方式,產出結果都是一個壓縮包,接着,我們對壓縮包進行解壓

        解壓完成後,進入"node.deployer-4.2.15/conf/"目錄,找到nid文件,如果沒有,則手動創建一個(注意此文件並沒有後綴名)。

            此文件爲node的nid配置文件,我們需要對此文件進行編輯,修改文件內容爲步驟1裏配置的nid

       接着,編輯node.deployer-4.2.15/conf/otter.properties,將配置信息修改爲相應的配置。以下爲我本地的配置,僅供參考

              otter.nodeHome = ${user.dir}/../

 

              otter.htdocs.dir = ${otter.nodeHome}/htdocs
              otter.download.dir = ${otter.nodeHome}/download
              otter.extend.dir= ${otter.nodeHome}/extend

              otter.zookeeper.sessionTimeout = 60000

 

              otter.communication.pool.size = 10

 

              otter.manager.address = 172.16.28.43:1099

        最後,我們進入"node.deployer-4.2.15/bin/"目錄,執行startup.sh腳本啓動manager,執行腳本的命令爲sh startup.sh

        啓動node後,我們可訪問node.deployer-4.2.15/logs/node.log來查看是否啓動成功,如果出現類似下方的日誌,則表示啓動成功

 

               2013-08-14 15:42:16.886 [main] INFO com.alibaba.otter.node.deployer.OtterLauncher - INFO ## the otter server is running now ......

       如果出現這種日誌,則表示ip配置的有錯誤,需要檢查ip

              Exception in thread "main" java.lang.IllegalArgumentException: node[1] ip[127.0.0.1] port[2088] , but your host ip[10.12.48.215] is not matched!

        at com.alibaba.otter.node.etl.OtterController.checkNidVaild(OtterController.java:245)
        at com.alibaba.otter.node.etl.OtterController.initNid(OtterController.java:230)
        at com.alibaba.otter.node.etl.OtterController.start(OtterController.java:73)
        at com.alibaba.otter.node.deployer.OtterLauncher.main(OtterLauncher.java:25)

 

 

 

       啓動成功後,可訪問 http://127.0.0.1:8080/node_list.htm,查看對應的節點狀態,如果變爲了已啓動,代表已經正常啓動。(ps,如果是未啓動,會是一個紅色高亮)

             

    3.本地debug node模塊

        此步驟適合本地有IDEA工具,可以debug的開發人員食用

        1.修改配置文件

            找到/node.deployer/src/main/resources/otter.properties配置文件,修改ip地址

            

        2.修改nid

             找到文件:

                  /node.common/src/main/java/com/alibaba/otter/node/common/config/impl/ConfigClientServiceImpl.java

                  /node.etl/src/main/java/com/alibaba/otter/node/etl/OtterController.java

              搜索:"throw new ConfigException("nid is not set!");"

              如下圖所示,替換爲System.setProperty("nid", "1"); nid = "1";

             

        3.啓動main方法

            找到文件/node.deployer/src/main/java/com/alibaba/otter/node/deployer/OtterLauncher.java,以debug模式啓動

             

 

結束

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章