阿里 otter搭建過程整理


1 環境說明:

       本機ip 192.168.8.3

       虛擬機1 ip 192.168.8.5

       虛擬機2 ip 192.168.8.6

       虛擬機采取橋接模式

       虛擬機系統為CentOS 2.6.32-279.el6.i686

       java版本 1.6.0-24

       mysql版本 5.1.61-log

2 虛擬機8.5搭建otter

2.0配置固定ip和修改host

              2.0.1 虛擬機8.5 ip為192.168.8.5

                       vi /etc/syscnfig/network-script/ifcfg-eth0

        DEVICE="eth0"

        BOOTPROTO="static"

        IPADDR="192.168.8.5"

        NETMASK="255.255.255.0"

        HWADDR="00:0C......."

        NM_CONTROLLED="YES"

        ONBOOT="yes"

        .........

              2.0.2 修改host

                     vi /etc/hosts

         192.168.8.5 localhost.localdomain

 

     2.1 關閉防火牆

              root用戶 service iptables stop

     2.2 安裝mysql

              2.2.1 用戶為 root,密碼為hello

              2.2.2 修改mysql的配置文件

                     vi /etc/my.cnf

     [mysqld]

    log-bin=mysql-bin

binlog-frmat=ROW

server-id=1

datadir=/vat/lib/mysql/data

socket=/var/lib/mysql/mysql.sock

user=mysql

symbolic-links=0

default-character-set=utf8

其中,log-bin為打開mysql的binlog二進制日志

       binlog-format為列模式

       server-id需要保證不同的數據庫的id不相同,具有唯一性

       datadir為數據存儲的文件夾,沒有的話需要進行創建

       default-character-set=utf8,為設置mysql的默認字符集為utf-8

              2.2.2 初始化otter數據庫,初始化sql為文件夾中的 otter-manager-schema.sql

2.2.3 搭建雙A模式,需要初始化數據庫retl,初始化sql為文件夾中的otter-manager-retl.sql。

2.2.4 新建個測試庫 test,新建一張測試表test

create table test(id int(11),name varchar(32));

     2.3 安裝jdk,並配置環境變量,otter推薦使用1.6.5,說是穩定

     2.4 安裝 aria2(node需要aria2c的支持)

              2.4.1 下載壓縮包

              2.4.2 tar –zxvf aria2-1.17.1.tar.gz

              2.4.3 mv aria2-1.17.1 aria2

              2.4.4 mv aria2 /usr/local

              2.4.5 cd /usr/local/aria2

              2.4.6 ./configure

              2.4.7 make

              2.4.8 make install

     2.5 安裝node

              2.5.1 下載壓縮包

              2.5.2 mkdir node

              2.5.3 mv node.deployer-4.2.11.tar.gz ./node

              2.5.4 tar –zxvf node.deployer-4.2.11.tar.gz

              2.5.5 mv node.deployer-4.2.11.tar.gz ../

              2.5.6 mv ../node /usr/local

              2.5.7 cd /usr/local/node

              2.5.8 manager安裝成功之后,在機器管理/node管理中添加上本機的node之后,可以看到這個node對應的序號

 

上圖中 8.5虛擬機的node序號為1,8.6虛擬機的node序號為2

              2.5.9 進入node的conf文件夾

              2.5.10 echo 1 > nid

      

 

             

              node的日志在 logs/node/node.log

     2.6 安裝zookeeper

              2.6.1 下載壓縮包

              2.6.2 tar –zxvf zookeeper-3.4.5-cdh4.3.0.tar.gz

              2.6.3 mv zookeeper-3.4.5-cdh4.3.0 zookeeper

              2.6.4 cd ./zookeeper /usr/local

              2.6.5 cd /usr/local/zookeeper/conf

              2.6.6 cp zoo_sample.cfg zoo.cfg

              2.6.7 vi zoo.cfg

 

文件中 clientPort為zookeeper的端口號

              2.6.8 cd ../bin

              zookeeper啟動的時候打印日志到bin目錄下的zookeeper.out,如果不習慣,可以修改為打印到log日志,修改步驟如下

              a 修改conf/log4j.properties

zookeeper.root.logger=INFO, CONSOLE 

改成  

zookeeper.root.logger=INFO,ROLLINGFILE 

b 修改bin/zkEvn.sh文件,

 

if [ "x${ZOO_LOG4J_PROP}" = "x" ] 

then 

    ZOO_LOG4J_PROP="INFO,CONSOLE" 

fi 

改成

if [ "x${ZOO_LOG4J_PROP}" = "x" ] 

then 

    ZOO_LOG4J_PROP="INFO,ROLLINGFILE" 

fi 

c 這樣再啟動zkSever.sh start的時候 就會生成log4j.properties配置的中設定的zookeeper.log文件。

              2.6.9 啟動zookeeper

              ./zkServer.sh start

              停止命令為 ./zkServer.sh stop

     2.7 安裝manager(需要zookeeper的支持)

       2.7.1 下載manager.deployer-4.2.11.tar.gz

       2.7.2 mkdir manager

       2.7.3 mv manager.deployer-4.2.11.tar.gz ./manager

       2.7.4 cd ./manager

2.7.5 tar –zxvf manager.deployer-4.2.11.tar.gz

       2.7.6 mv manager.deployer-4.2.11.tar.gz ../

       2.7.7 cd ../

       2.7.8 mv ./manager /usr/local

       2.7.9 cd /usr/local/manager/conf

       2.7.10 vi otter.properties

      

       a otter.domaniName 可以寫本機hostname,但是要修改/etc/hosts,保證hostname映射為本機的固定ip

       b otter.port 為manager管理端的端口,即web工程的端口

       c otter.database.driver.url為mysql地址和數據庫實例,寫本機ip而不是127.0.0.1,寫127.0.0.1,8.6虛擬機訪問不到

       d otter.database.driver.username為數據庫的用戶名

       e otter.database.driver.password 為數據庫的密碼

       f otter.communication.manager.port為manager的服務端口

       g otter.zookeeper.cluster.default為zookeeper的地址,包括本機ip和端口,這個端口就是zookeeper的conf中的zoo.cfg中的clientPort

2.7.11 啟動manager

              ./bin/startup.sh

       如果文件夾中有otter.pid文件,說明manage已經啟動或者上次沒有關閉,先執行一次 ./stop.sh ,就可以啟動起來了

       manager的日志在 logs/manager.log

 

3 虛擬機8.6安裝數據庫和node

       3.0 設置固定ip和修改hosts

 

  

 

 

       3.1 安裝mysql

              配置/etc/my.cnf

 

注意server-id號和虛擬機8.5的mysql的server-id不同

 

       3.2 安裝node

       3.3 配置固定ip

4 操作步驟

4.1 192.168.8.5虛擬機

           4.1.1 關閉防火牆

                     service iptables stop

 

           4.1.2 root開啟mysql數據庫

 

可以通過以下操作本地登陸mysql數據庫

 

           4.1.3 開啟zookeeper

   root用戶

  cd /usr/local/zookeeper/bin

./zkServer.sh start

 

./zkServer.sh stop

            4.1.4 開啟manager

 cd /usr/local/manager/bin

./startup.sh

              可以通過 tail –f ../logs/manager.log 通過日志查看查看開啟狀態

 

           4.1.5 開啟node

 cd /usr/local/node/bin

./startip.sh

通過以下操作查看node開啟狀態

 

4.2 192.168.8.6 虛擬機

           4.2.1 root用戶關閉防火牆

 service iptables stop

           4.2.2 啟動mysql數據庫

 service mysqld start

              使用以下命令本地連接數據庫查看

 mysql -y root -phello

 

           4.2.3 啟動node

 

4.3 otter配置(虛擬機192.168.8.5中進行操作)

           4.3.1 登陸 http://192.168.8.5:8080/login.htm

              用戶名:admin

              密碼:    admin

 

           4.3.2 配置zookeeper管理    (機器管理/zookeeper管理)

zookeeper集群填寫的是你啟動zookeeper的機器的ip地址,端口號為zookeeper/conf/配置的clientPort

 

           4.3.3 配置node

 機器端口 2088

下載端口 9090

 

配置完成后,會在列表中顯示,如果node節點已經正常啟動,列表中對應node的狀態為已啟動

 

            4.3.4 配置數據源(配置管理/數據源配置)

 

如果數據庫url配置對了,用戶名密碼正確,數據庫默認編碼為utf8,則能成功驗證數據庫

 

 

           4.3.5 配置表

 

schema name為數據庫名稱

table name為表名稱,如果要做全庫的同步,可以用 .* 表示

 

添加完的表在下圖中列表中

 

           4.3.6 配置canal(配置管理/canal配置)

 

填寫 canal名稱,數據庫地址,賬戶,密碼,位點信息,其中,位點信息格式復制例子,journalName 、position 和 timestamp可以通過對應數據庫的執行相應sql取得

 select unix_timestamp(now());

show mastr status;

 

           4.3.7 配置同步管理

 基於當前日志變更

列記錄模式

 

            4.3.8 配置Pipeline(點擊配置好的Channel名稱進入)

 

Pipeline名稱可以隨便取

select機器和load機器選項選擇同一個node節點,采取就近原則,8.5的虛擬機向8.6同步數據庫,選擇8.5節點,8.6虛擬機向8.5同步數據庫選擇8.6節點

選擇Canal,8.5向8.6同步,選擇5>>>6(double) Canal;8.6向8.5同步,選擇6>>>5(double)

 

            4.3.9 配置關系映射表

 

源數據表和目標數據表選擇,選擇的是數據表配置的某個項。

 

 

4.3.10 調整設置

 

雙A互備,就是兩個單向的同步

其中,一個設置為主站點,另一個設置為非主站點

在高級設置中,一個設置為支持ddl同步,一個設置為不支持ddl同步,原因是一個Channel中只能有一個ddl,要不會沖突

 

配置完之后,點擊Channel管理,選擇對應的Channel,點擊啟動

 

運行狀態變成運行。

配置完成

5 驗證效果

     5.1  虛擬機8.5中插入一條記錄

 

 

 

8.6虛擬機mysql

 

 

測試反向8.6向8.5同步

 

 

8.5 mysql

 

5.2 現在驗證出效果    :

       5.2.1無論channel是否運行,點擊推送,都可以同步兩個數據庫的數據

       5.2.2 channel配置的兩個數據庫,一個數據庫停止,channel會掛起,點擊推送后恢復正常運行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM