0
点赞
收藏
分享

微信扫一扫

otter主从复制部署手册

余寿 2022-11-09 阅读 110

1.准备阶段

1.1环境准备

1.1.1硬件环境

虚拟机镜像

CentOS-7-x86_64-DVD-2003.iso

节点类型

操作系统

IP地址

主机名

说明

主节点A

CentOS7

192.168.0.115

hadoop3

内存8G+

从节点B

CentOS7

192.168.0.107

hadoop2

内存8G+

1.1.2软件环境

软件名称


版本号


安装要求

JDK

1.8.0_181

A、B节点

MySQL

5.7.30

A、B节点

ZOOPEEKER

3.4.10

只装A节点

Otter Manager

4.2.14

只装A节点

otter Node

4.2.14

A、B节点

canal

1.0.24

A、B节点

aria2

1.34.0-5.el7

A、B节点

HTTPD

2.4.6-97.el7.centos

A、B节点

1.1.3网络环境

2台服务机为局域网可以互连并且可访问互联网。

1.2环境安装

1.2.1 JDK安装

1.2.1.1使用rpm -qa | grep jdk 指令查看服务器是否安装过JDK,这里一般用于卸载OPENJDK

[root@hadoop2 ~]# rpm -qa|grep java

otter主从复制部署手册_hadoop

1.2.1.2 OPENJDK卸载----卸载指令

[root@hadoop2 java]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.251-2.6.21.1.el7.x86_64

[root@hadoop2 java]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.251-2.6.21.1.el7.x86_64

[root@hadoop2 java]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64

[root@amb2 java]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.242.b08-1.el7.x86_64

[root@hadoop2 java]# rpm -e --nodeps copy-jdk-configs-3.3-10.el7_5.noarch

1.2.1.3查看OPENJDK是否卸载干净

[root@hadoop2 java]# rpm -qa | grep jdk

otter主从复制部署手册_hadoop_02

1.2.1.4 在/usr/创建java目录

[root@hadoop2 java]# mkdir /usr/java

把jdk-8u181-linux-x64.tar.gz 部署包放到/usr/local/java/目录下

执行解压指令

[root@hadoop2 java]# tar -xvf jdk-8u181-linux-x64.tar.gz  

JDK部署包解压到该目录下 

修改包名

[root@hadoop2 java]# mv jdk1.8.0_181   jdk1.8

1.2.1.5 配置JDK环境  

[root@hadoop2 java]# vim /etc/profile

#JDK环境配置

export JAVA_HOME=/usr/java/jdk1.8

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$PATH

otter主从复制部署手册_java_03

配置完成后执行source /etc/profile/使得配置生效

1.2.1.6 JDK安装校验

[root@hadoop2 ~]# java -version

otter主从复制部署手册_hadoop_04

1.2.2 MySQL安装

1.2.2.1、部署包上传

将mysql-5.7.30-linux-glibc2.12-x86_64.tar部署包利用SCP工具上传到/usr/local/目录下;

1.2.2.2、查看系统是否安装了MySQL数据库

如果Linux中安装了mariadb数据库,先卸载掉,因为CentOS 7.6 内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb;

1.2.2.2.1 查看系统是否安装了MariaDB数据库(MySQL开源分支库)

[root@hadoop2 ~]# rpm -qa |grep mariadb

otter主从复制部署手册_java_05

1.2.2.2.2 卸载MariaDB数据库

[root@hadoop2 ~]# rpm -e --nodeps mariadb-5.5.68-1.el7.x86_64

[root@hadoop2 ~]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

1.2.2.3、解压mysql-5.7.30-linux-glibc2.12-x86_64.tar

执行指令:

[root@hadoop2 local]#tar -xvf mysql-5.7.30-linux-glibc2.12-x86_64.tar

解压后生成2个.gz包

1)、mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

2)、mysql-test-5.7.30-linux-glibc2.12-x86_64.tar.gz

[root@hadoop2 local]#tar -xvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

修改包名

[root@hadoop2 local]#mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql

1.2.2.4、在/usr/local/mysql目录下创建data目录

[root@hadoop2 ~]# mkdir -vp /usr/local/mysql/data (v表示创建新目录都显示信息,p表示递归创建)

添加mysql用户及用户组

groupadd mysql

useradd mysql -g mysql (-g: 是指定用户所在组)

1.2.2.5、初始化MySQL数据库

切换到/usr/local/mysql/bin目录下执行:根据自己的MySQL目录修改成对应的目录

[root@hadoop2 bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

otter主从复制部署手册_java_06

1.2.2.6、设置mysql.server

[root@hadoop2 bin]# cd ../support-files

[root@hadoop2 support-files]# cp mysql.server /etc/init.d/mysqld

[root@hadoop2 support-files]#vim /etc/init.d/mysqld修改以下内容: 

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

otter主从复制部署手册_mysql_07

1.2.2.7、启动MySQL服务

[root@hadoop2 bin]# /etc/init.d/mysqld start

1.2.2.8、记住初始化密码,或者重新开启一个终端,使用初始化密码登录MySQL

登录进入MySQL,在/usr/local/mysql/bin目录下执行命令:

[root@hadoop2 bin]# ./mysql -uroot -p

otter主从复制部署手册_hadoop_08

修改数据库默认密码

mysql> alter user 'root'@'localhost' identified by '123456'; (修改密码自行定义遵循密码设置规则包含大小写数字及特殊字符)

查看数据库

mysql> show databases;

otter主从复制部署手册_hadoop_09

切换至MySQL数据库

mysql> use mysql

otter主从复制部署手册_java_10

查看MySQL数据库用户权限

mysql> select host,user,authentication_string,plugin from user;

otter主从复制部署手册_hadoop_11

otter主从复制部署手册_mysql_12

1.2.2.9、更改MySQL目录下所有的目录及文件夹所属的用户组和用户,以及权限

[root@hadoop2 local]# chown -R mysql:mysql /usr/local/mysql

[root@hadoop2 local]# chmod -R 755 /usr/local/mysql

otter主从复制部署手册_hadoop_13

1.2.2.10、在mysql/data/3306 目录下创建my.cnf文件

[client]

port = 3306

socket = /tmp/mysql.sock

default-character-set=utf8

 

[mysqld]

port = 3306

socket = /tmp/mysql.sock

datadir = /usr/local/mysql/data

log-error = /usr/local/mysql/data/hadoop2.err

pid-file = /usr/local/mysql/data/hadoop2.pid

character-set-server =utf8

 

#MySQL的BinLOG日志同步

server-id=1

log-bin=/usr/local/mysql/data/mysql-bin

binlog_format = ROW

 

#是否忽略大小写,unix下lower_case_table_names默认值为 0 .Windows下默认值是 1(名称比较对大小写不敏感) .Mac OS X下默认值是 2 .

lower_case_table_names = 1

#是否自动提交 0表示不自动提交 1表示自动提交,mysql事务支持的引擎是InnoDB,默认情况下autocommit的值为1

autocommit = 1

至此MySQL安装完成;

1.2.2.11、授权远程访问

1.2.2.11.1、登录之后,执行命令:(这样远程客户端才能访问)

将root用户设置为所有地址可登录,原来是localhost表示只用本机可登录 mysql> update user set host='%' where user='root';

授权远程

mysql> alter user 'root'@'localhost' identified by '123456'; 

mysql> grant all privileges on *.* to root@'%' identified by '123456';  

刷新权限,使得授权指令生效

mysql>  flush privileges;

其中*.* 的第一个*表示所有数据库名,第二个*表示所有的数据库表;

root@'%' 中的root表示用户名,%表示任意地址,'%'也可以修改成指定具体的某个ip地址,比如本机root@'localhost'、某台具体的服务器root@'192.168.0.115'

1.2.2.11.2、如果还不能远程访问,执行以下如下命令刷新权限:

mysql> flush privileges;

1.2.2.11.3、如果上面授权远程访问执行之后依然远程连接不上MySQL,可能是Linux上防火墙拦截了

1.2.2.11.4、防火墙开放端口命令:该部分指令可以在任意路径下执行

firewall-cmd --zone=public --add-port=3306/tcp --permanent

命令含义:--zone #作用域:查看当前的区域:firewall-cmd --get-default-zone--add-port=3306/tcp #添加端口,格式为:端口/通讯协议--permanent #永久生效,没有此参数重启后失效

重新加载防火墙配置:firewall-cmd --reload

重启防火墙:systemctl restart firewalld

取消端口开放:

[root@hadoop2 bin]# firewall-cmd --zone=public --remove-port=3306/tcp --permanent 

查询端口号8080 是否开启:

[root@hadoop1 bin]# firewall-cmd --query-port=8080/tcp

查询有哪些端口是开启的:

[root@hadoop1 bin]# firewall-cmd --list-port 

1.2.3 ZOOKEEPER安装

官网地址:​​https://zookeeper.apache.org/​​

1.2.3 .1解压安装包

[root@hadoop2 home]# tar -zxvf zookeeper-3.4.10.tar.gz

1.2.3 .2修改包名

[root@hadoop2 home]# mv zookeeper-3.4.10 zookeeper

1.2.3 .3修改zoo.cfg配置文件

[root@hadoop2 home]# cd /usr/local/zookeeper/conf

[root@hadoop2 conf]#  mv zoo_sample.cfg zoo.cfg

[root@hadoop2 conf]# vim zoo.cfg

dataDir=/home/zookeeper/data

autopurge.purgeInterval=1

otter主从复制部署手册_mysql_14

1.2.3 .4创建同步信息数据存储文件夹

[root@hadoop2 conf]# mkdir /usr/local/zookeeper/data

1.2.3 .5修改bin/zkEnv.sh脚本,在/home/zookeeper/bin目录下

[root@hadoop2 bin]# vim zkEnv.sh

将ZOO_LOG_DIR="." 修改为ZOO_LOG_DIR="/home/zookeeper/data"

 将ZOO_LOG4J_PROP=”INFO,CONSOLE” 修改为ZOO_LOG4J_PROP="INFO,ROLLINGFILE" 

otter主从复制部署手册_hadoop_15

1.2.3 .6修改bin/zkServer.sh脚本:

[root@hadoop2 bin]#vim zkServer.sh

将ZOOBIN="${BASH_SOURCE-$0}" 

修改为ZOOBIN=`readlink -f "${BASH_SOURCE-$0}"`

otter主从复制部署手册_java_16

1.2.3 .7修改bin/zkCli.sh脚本:

[root@hadoop2 bin]#vim zkCli.sh

将ZOOBIN="${BASH_SOURCE-$0}" 

修改为ZOOBIN=`readlink -f "${BASH_SOURCE-$0}"`

otter主从复制部署手册_hadoop_17

1.2.3 .8编辑myid

[root@hadoop2 bin]#echo 1 > /home/zookeeper/data/myid

1.2.3 .9 zookeeper启停及查看状态命令

[root@hadoop2 bin]#./zk-server start    #启动

[root@hadoop2 bin]#./zk-server stop     #关闭

[root@hadoop2 bin]#./zk-server status   #查看状态

otter主从复制部署手册_hadoop_18

1.2.4 Otter Manager安装

官网地址:​​https://github.com/alibaba/otter/releases​​

1.2.4 .1解压安装包

[root@hadoop2 home]#mkdir /home/manager 

[root@hadoop2 home]#tar zxvf manager.deployer-4.2.14.tar.gz -C /home/manager 

1.2.4 .2配置修改

[root@hadoop2 home]#vim /home/manager/conf/otter.properties

## otter manager domain name #修改为正确访问ip,生成URL使用 otter.domainName = 192.168.0.115 

## 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.0.115:3306/otter otter.database.driver.username = root otter.database.driver.password = 123456

## default zookeeper address #修改为zookeeper地址信息 otter.zookeeper.cluster.default = 192.168.0.115:2181

otter主从复制部署手册_mysql_19

1.2.4 .3Otter Manager服务启动和停止 

启动:/usr/local/manager/bin/startup.sh 

关闭:/usr/local/manager/bin/stop.sh

1.2.5 Otter Node安装

官网地址:​​https://github.com/alibaba/otter/releases​​

1.2.5 .1解压安装包

[root@hadoop2 home]#mkdir /home/node

[root@hadoop2 home]#tar zxvf node.deployer-4.2.14.tar.gz -C /home/node

1.2.5 .2 配置nid

[root@hadoop2 home]#cd /home/node

[root@hadoop2 node]#echo 3 > conf/nid

#需要和manager管理页面的序号相同

otter主从复制部署手册_java_20

1.2.5 .3配置修改

[root@hadoop2 home]#vim /home/node/conf/otter.properties

## otter arbitrate & node connect manager config

#修改manager的地址信息 

otter.manager.address = 127.0.0.1:1099

1.2.5 .4 node启动、停止 

启动:/usr/local/node/bin/startup.sh #先不用启动 

关闭:/usr/local/node/bin/stop.sh

1.2.5 .5 node需要aria2

[root@hadoop2 home]# rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

1.2.5 .5.1 安装epel源(需要连接到互联网)

[root@hadoop2 home]# rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

1.2.5 .5.2 安装Aria2

[root@hadoop2 home]# yum install aria2 -y

1.2.5 .5.3 生成配置文件

[root@hadoop2 home]# mkdir /etc/aria2/

[root@hadoop2 home]# vim /etc/aria2/aria2.conf

配置内容

#用户名 #rpc-user=user

#密码 #rpc-passwd=passwd 

#上面的认证方式不建议使用,建议使用下面的token方式

#设置加密的密钥

#rpc-secret=token

#允许rpc enable-rpc=true 

#允许所有来源, web界面跨域权限需要

rpc-allow-origin-all=true 

#允许外部访问,false的话只监听本地端口

rpc-listen-all=true 

#RPC端口, 仅当默认端口被占用时修改

rpc-listen-port=6800 

#最大同时下载数(任务数), 路由建议值: 3 

max-concurrent-downloads=5 

#断点续传 continue=true 

#同服务器连接数

max-connection-per-server=5 

#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要 min-split-size=10M #单文件最大线程数, 路由建议值: 5 

split=10 

#下载速度限制

max-overall-download-limit=0 

#单文件速度限制

max-download-limit=0 

#上传速度限制

max-overall-upload-limit=0 

#单文件速度限制

max-upload-limit=0 

#断开速度过慢的连接

#lowest-speed-limit=0 

#验证用,需要1.16.1之后的release版本

#referer=*

#文件保存路径, 默认为当前启动位置

 dir=/var/www/html/downloads

#文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用

#disk-cache=0 

#另一种Linux文件缓存方式

#enable-mmap=true 

#文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长

file-allocation=prealloc

otter主从复制部署手册_hadoop_21

1.2.5 .5.4 测试启动 

aria2c --conf-path=/etc/aria2/aria2.conf

1.2.5 .5.5 无错误启动

aria2c --conf-path=/etc/aria2/aria2.conf -D

1.2.5 .5.6 开启6800端口

firewall-cmd --zone=public --add-port=6800/tcp --permanent systemctl restart firewalld.service

1.2.5 .5.7 利用webUI控制下载

网址:​​http://aria2c.com/​​

otter主从复制部署手册_mysql_22

JSON-RPC Path改成自己服务器地址就可以了

otter主从复制部署手册_java_23

1.2.5 .6配置httpsd服务器

1.2.5.6.1 安装httpd

yum -y install httpd

1.2.5.6.2 开启目录

这步是为了利用httpd将已经下载好的文件传到本地

将配置文件 /etc/httpd/conf.d/welcome.conf

"^/+$"> Options +Indexes ErrorDocument 403 /.noindex.html 的-号改为+号

otter主从复制部署手册_hadoop_24

1.2.5.6.3 开启访问

在/etc/httpd/conf目录下进入配置界面

vim httpd.conf

第103、125、151行把里面的 AllowOverride None 全部修改为 AllowOverride All

顺便在 DirectoryIndex index.html 后面加上 index.htm index.php index.shtml   第164行

这个是配置默认首页的

:wq 保存退出

service httpd restart 重启 apache 服务

1.2.5.6..4 端口放行

firewall-cmd --zone=public --add-port=80/tcp --permanent systemctl restart firewalld.service

然后打开​​http://ip/​​就行了

访问​http://192.168.0.115/​

otter主从复制部署手册_hadoop_25

1.2.6、部署canal

官网地址:​​https://github.com/alibaba/canal/releases​​ 

#下载canal.deployer

[root@hadoop2 home]#mkdir /home/canal

[root@hadoop2 home]#tar zxvf canal.deployer-1.0.24.tar.gz -C /home/canal

只需部署canal无需配置和启动,canal可嵌入式运行,在manager页面管理中设置

2.启动

2.1启动ZooKeeper

进入ZooKeeper目录下的bin文件夹,执行以下命令

[root@hadoop2 bin]#./zkServer.sh start

[root@hadoop2 bin]#./zkServer.sh status

otter主从复制部署手册_mysql_26

2.2启动Otter Manager

在A机MySQL创建Otter库,将otter-manager-schema.sql导入otter数据库。

授予用户权限,在192.168.0.115服务器/home/manager/bin目录下执行

[root@hadoop3 bin]# ./stop.sh       #先执行停止

[root@hadoop3 bin]# ./startup.sh    #执行启动

2.3启动Otter Node

在192.168.0.115服务器/home/node/bin目录下执行

[root@hadoop3 bin]# ./stop.sh       #先执行停止

[root@hadoop3 bin]# ./startup.sh    #执行启动

3、平台登录访问

访问链接URL:​​http://192.168.0.115:8080/​​

otter主从复制部署手册_java_27

进入Otter Manager站点后,使用账号: admin,密码: admin(默认),获得超级管理员权限。

otter主从复制部署手册_java_28

举报

相关推荐

0 条评论