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
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
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
配置完成后执行source /etc/profile/使得配置生效
1.2.1.6 JDK安装校验
[root@hadoop2 ~]# java -version
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
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
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
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
修改数据库默认密码
mysql> alter user 'root'@'localhost' identified by '123456'; (修改密码自行定义遵循密码设置规则包含大小写数字及特殊字符)
查看数据库
mysql> show databases;
切换至MySQL数据库
mysql> use mysql
查看MySQL数据库用户权限
mysql> select host,user,authentication_string,plugin from user;
1.2.2.9、更改MySQL目录下所有的目录及文件夹所属的用户组和用户,以及权限
[root@hadoop2 local]# chown -R mysql:mysql /usr/local/mysql
[root@hadoop2 local]# chmod -R 755 /usr/local/mysql
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
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"
1.2.3 .6修改bin/zkServer.sh脚本:
[root@hadoop2 bin]#vim zkServer.sh
将ZOOBIN="${BASH_SOURCE-$0}"
修改为ZOOBIN=`readlink -f "${BASH_SOURCE-$0}"`
1.2.3 .7修改bin/zkCli.sh脚本:
[root@hadoop2 bin]#vim zkCli.sh
将ZOOBIN="${BASH_SOURCE-$0}"
修改为ZOOBIN=`readlink -f "${BASH_SOURCE-$0}"`
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 #查看状态
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
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管理页面的序号相同
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
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/
JSON-RPC Path改成自己服务器地址就可以了
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 的-号改为+号
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/
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
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 Manager站点后,使用账号: admin,密码: admin(默认),获得超级管理员权限。