编号 |
内容 |
日期 |
编写、修改 |
版本 |
1 |
跨数据中心双A数据同步 -软件安装 |
2014-12-17 |
Cybend |
Yw-Peizhi-V2014121701 |
目 录
1 在AB上安装JDK并配置JDK的环境变量
2 在AB上安装mysql,安装过程可参考:
3 安装zookeeper,安装过程可参考:
4 安装node和aria2
5 安装manager
otter的wiki页面:https://github.com/alibaba/otter
otter的环境需要:mysql ,jdk,zookeeper , node , aria2 , manager
为了防止otter的闪断,把一些软件上传到了百度云上:
http://pan.baidu.com/share/link?uk=3708161223&shareid=2987646776#dir/path=/软件/otter
otter安装首先需要两台服务器,我实现的是两台服务器之间的Mysql数据库双主同步,即双写同步。
假设两个服务为A,B,下面进行安装
1 在 AB 上安装 JDK 并配置 JDK 的环境变量
具体可参考http://blog.sina.com.cn/s/blog_6f6bc30e0101pazw.html
LINUX环境下JDK安装和配置:
JDK下载包:http://pan.baidu.com/share/link?uk=3708161223&shareid=2987646776#dir/path=/软件/otter
# 解压缩JDK安装包,假如安装到/usr/java/下
mkdir -p /usr/java/
tar zxvf jdk-7u25-linux-x64.tar.gz&&
mv jdk1.7.0_25 /usr/java/
# 设定JAVA_HOME环境变量
用文本编辑器打开/etc/profile
·在profile文件末尾加入:
export JAVA_HOME=" /usr/java/jdk1.7.0_71 /
exportPATH="$PATH:$JAVA_HOME/bin"
export JRE_HOME="$JAVA_HOME/jre"
exportCLASSPATH=".:$JAVA_HOME/lib:$JRE_HOME/lib"
更改后,执行命令使其生效
source ~/.bash_profile
查看安装结果:
执行命令:java-version
结果类似下面的即成功:
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build24.71-b01, mixed mode)
或:
apt-get install openjdk-7-jre-headless
2 在 AB 上安装 mysql, 安装过程可参考:
http://blog.sina.com.cn/s/blog_6f6bc30e0101pb0t.html
otter只支持5.6及以下版本的Mysql,不支持maridb
安装完后,修改mysql的配置文件:
vi/etc/my.cnf
检查以下的配置:
log-bin=mysql-bin
#binary logging format - mixed recommended
#binlog_format=mixed
binlog_format=ROW #修改成ROW
server-id = 1 #两个机房的serverid设置为不一样的值
然后启动数据库,分别在AB库上分配otter的数据库账号和密码,例如canal/canal
执行sql:
CREATE USER canal IDENTIFIED BY 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
--赋权限,
FLUSH PRIVILEGES;
show grants for 'canal';
--查看权限
需要注意的是,有的Mysql版本,自带了两个匿名用户,需要把两个匿名用户删除。
执行sql:
use mysql;--进入mysql库
select user,host,password from mysql.user;--查询用户列表
delete from mysql.user where user='';--删除匿名用户
3 安装 zookeeper, 安装过程可参考:
http://blog.sina.com.cn/s/blog_6f6bc30e0101pb13.html
zookeeper可以只单机安装,也可以以集群形式安装,安装完成后启动。
zookeeper下载地址:
http://pan.baidu.com/share/link?uk=3708161223&shareid=2987646776#dir/path=/软件/otter
编译安装:
# 解压缩
tar zxvf zookeeper-3.4.5-cdh4.3.0.tar.gz&& mv zookeeper-3.4.5-cdh4.3.0 /data/app/zookeeper
cd !$
mv conf/zoo_sample.cfg conf/zoo.cfg
修改conf/zoo.cfg配置文件:
dataDir=/data/app/zookeeper/data
autopurge.purgeInterval=1
修改bin/zkEnv.sh脚本:
将ZOO_LOG_DIR="."修改为ZOO_LOG_DIR="/data/app/zookeeper/data"
将ZOO_LOG4J_PROP=”INFO,CONSOLE”修改为ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
修改bin/zkServer.sh脚本:
将ZOOBIN="${BASH_SOURCE-$0}"修改为ZOOBIN=`readlink-f "${BASH_SOURCE-$0}"`
增加一行环境变量SERVER_JVMFLAGS="-Xms4096m -Xmx4096m",设定进程内存
修改bin/zkCli.sh脚本:
将ZOOBIN="${BASH_SOURCE-$0}"修改为ZOOBIN=`readlink-f "${BASH_SOURCE-$0}"`
建立软连接到PATH:
ln -s /data/app/zookeeper/bin/zkServer.sh/usr/local/bin/zk-server
ln -s /data/app/zookeeper/bin/zkCli.sh/usr/local/bin/zk-cli
mkdir data
echo 1 > data/myid 将本节点id设定到data/myid文件中
服务启动、重启及关闭:
启动:zk-server start
关闭:zk-server stop
4 安装 node 和 aria2
node 需要aria2支持,我是在AB机房各安装了一套。
安装node:
创建目录:mkdirnode
进入目录:cd node
下载node:
解压缩:tar zxvfnode.deployer-$version.tar.gz
修改node的配置:
viconf/otter.properties
otter.manager.address =172.20.150.70:1099
##对应manager中otter.properties的配置 otter.communication.manager.port
node的启动/停止:
cdbin
startup.sh/stop.sh
安装aria2:
下载aria2:
解压缩:tar zxvfaria2-$version.tar.gz
为了方便切换目录:mvaria2-$version aria2
进入目录: cdaria2
编译:
./configure
Make
Make install
把aria2安装后的bin目录下的执行文件添加到环境变量path中
( 我本地安装的目录是/usr/local/aria2,安装后 ,bin目录在/usr/local/bin/)
5 安装 manager
manager的数据也存储在Mysql中,我直接使用上面安装的数据库了,也可以单独装个新库。
创建目录:mkdirmanager
进入目录:cd manager
下载:wgethttps://github.com/alibaba/otter/releases/download/otter-x.y.z/manager.deployer-x.y.z.tar.gz
解压缩:tar zxvfmanager.deployer-$version.tar.gz
安装manager的数据库:
下载初始化sql:wgethttps://raw.github.com/alibaba/otter/master/manager/deployer/src/main/resources/sql/otter-manager-schema.sql
进入Mysql中执行:mysql>source /usr/local/otter-manager-schema.sql
修改manager的配置文件:viconf/otter.properties
##otter manager domain name
otter.domainName =172.20.150.70##本地的域名
##otter manager http port
otter.port = 8080 ##对外访问的端口号
##jetty web config xml
otter.jetty = jetty.xml
##otter manager database config
otter.database.driver.class.name = com.mysql.jdbc.Driver
otter.database.driver.url = jdbc:mysql://192.168.85.10:3308/otter##otter数据的配置
otter.database.driver.username = canal ##otter数据的账号
otter.database.driver.password = canal ##otter数据的密码
##otter communication port
otter.communication.manager.port = 1099 ##对应Node中的配置
##otter communication pool size
otter.communication.pool.size = 10
##default zookeeper address
otter.zookeeper.cluster.default = 192.168.85.10:2181##zookeeper的地址
manager的启动/停止:
cdbin
tartup.sh/stop.sh
完成后,直接访问上面配置的本地的域名:对外访问的端口号 即可。