准备虚拟机
- 用户名:root
- 密码:123456
- IP: 192.168.100.100
- 主机名: node01
修改虚拟机IP地址:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:61:02:EC
TYPE=Ethernet
UUID=78ce60bd-12ff-4f76-9783-c1ddba997090
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.100.100
GATEWAY=192.168.100.2
NETMASK=255.255.255.0
DNS1=8.8.8.8
修改主机名(重启后永久生效)
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=node01
设置ip和域名映射
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.100 node01 node01.hadoop.com
关闭防火墙
service iptables stop #关闭防火墙
chkconfig iptables off #禁止开机启动
关闭selinux
vi /etc/selinux/config
SELINUX=disabled
免密码登录
ssh-keygen -t rsa
ssh-copy-id node01
时钟同步
## 安装
yum install -y ntp
## 启动定时任务
crontab -e
## 随后在输入界面键入
*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;
rz安装
yum -y install lrzsz
nc安装
yum install -y nc
测试nck
nc -lk 9999
文件夹规划
mkdir -p /export/servers # 安装目录
mkdir -p /export/softwares # 软件包存放目录
mkdir -p /export/scripts # 启动脚本目录
安装JDK
查看自带的openjdk
rpm -qa | grep java
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cDIEi4CS-1589797262624)(assets/1569122548836.png)]
卸载
rpm -e java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64 tzdata-java-2016j-1.el6.noarch java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64 --nodeps
上传并解压
rz上传jdk-8u141-linux-x64.tar.gz
到softwares目录中
tar -zxvf jdk-8u141-linux-x64.tar.gz -C ../servers/
配置环境变量
vim /etc/profile
export JAVA_HOME=/export/servers/jdk1.8.0_141
export PATH=:$JAVA_HOME/bin:$PATH
重新加载环境变量
source /etc/profile
此时, java
和javac
命令都可以使用了
MySql安装
安装步骤
-
上传tar包
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-riOtIl7f-1589797262627)(assets/1558497513983.png)]
-
解压
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BOF2gLYo-1589797262630)(assets/1558497763834.png)]
-
卸载历史MySql
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0uMvonKt-1589797262631)(assets/1558497974334.png)]
# 搜索mysql相关依赖 rpm -qa | grep mysql # 卸载查询到的所有依赖 rpm -e --nodeps mysql-libs-5.1.73-8.el6_8.x86_64
-
顺序安装
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BtftJAj8-1589797262634)(assets/1558498345558.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cho0S9fV-1589797262636)(assets/1558498497274.png)]
# 查询mysql所有的安装包 cd /export/softwares/mysql-5.7 ll # 依次安装下列依赖 rpm -ih mysql-community-common-5.7.26-1.el6.x86_64.rpm rpm -ih mysql-community-libs-5.7.26-1.el6.x86_64.rpm rpm -ih mysql-community-client-5.7.26-1.el6.x86_64.rpm rpm -ih mysql-community-server-5.7.26-1.el6.x86_64.rpm rpm -ih mysql-community-devel-5.7.26-1.el6.x86_64.rpm # 供后续superset使用
-
初始化
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0O2WgQS5-1589797262639)(assets/1558498601105.png)]
# 启动Mysql服务 service mysqld start
-
查询初始密码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BlYs8CM0-1589797262640)(assets/1558498659003.png)]
grep 'temporary password' /var/log/mysqld.log
-
登录MySql系统, 修改密码
# 登录系统
mysql -uroot -paVGidM5/.RtN
# 修改密码,密码默认是8位,并且包含大小写字母+特殊字符+数字
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MySql5.7';
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aWG0HRID-1589797262642)(assets/1558500805405.png)]
查看密码规则:
SHOW VARIABLES LIKE 'validate_password%';
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SktOBdMf-1589797262644)(assets/1558500941206.png)]
关于 mysql 密码策略相关参数:
- validate_password_length 固定密码的总长度;
- validate_password_dictionary_file 指定密码验证的文件路径;
- validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数
- validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;
- validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;
关于 validate_password_policy 的取值:
- 0/LOW:只验证长度;
- 1/MEDIUM:验证长度、数字、大小写、特殊字符;
- 2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
- validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;
**修改密码规则【选做】:**
set global validate_password_policy=LOW;
set global validate_password_length=6;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n4UmmsUj-1589797262647)(assets/1558501305997.png)]
-
设置远程登录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gtPy0KRl-1589797262648)(assets/1558501680556.png)]
# 赋予root用户远程登录的权限 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; # 刷新权限 flush privileges;
-
测试远程登录
使用SqlYog测试是否可以远程连接到node01的mysql
-
配置MySql开机自启
chkconfig mysqld on
MySql开启binlog
-
使用vi打开
/etc/my.cnf
-
添加以下配置
[mysqld] log-bin=/var/lib/mysql/mysql-bin binlog-format=ROW server_id=1
注释说明
# 配置binlog日志的存放路径为/var/lib/mysql目录,文件以mysql-bin开头
log-bin=/var/lib/mysql/mysql-bin# 配置mysql中每一行记录的变化都会详细记录下来
binlog-format=ROW# 配置当前机器器的服务ID(如果是mysql集群,不能重复)
server_id=1 -
重启mysql
service mysqld restart
-
mysql -u root -p
登录到mysql,执行以下命令show variables like '%log_bin%';
-
mysql输出以下内容,表示binlog已经成功开启
+---------------------------------+--------------------------------+ | Variable_name | Value | +---------------------------------+--------------------------------+ | log_bin | ON | | log_bin_basename | /var/lib/mysql/mysql-bin | | log_bin_index | /var/lib/mysql/mysql-bin.index | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | | sql_log_bin | ON | +---------------------------------+--------------------------------+ 6 rows in set (0.00 sec)
-
进入到
/var/lib/mysql
可以查看到mysql-bin.000001文件已经生成
Canal安装
-
上传
canal.deployer-1.0.24.tar.gz
到/export/softwares
目录 -
在
/export/servers
下创建canal
目录,一会直接将canal的文件解压到这个目录中cd /export/servers mkdir canal
-
解压canal到
/export/servers
目录cd /export/softwares tar -xvzf canal.deployer-1.0.24.tar.gz -C ../servers/canal
-
修改
canal/conf/example
目录中的instance.properties
文件## mysql serverId canal.instance.mysql.slaveId = 1234 # position info canal.instance.master.address = node01:3306 canal.instance.dbUsername = root canal.instance.dbPassword = 123456
- canal.instance.mysql.slaveId这个ID不能与之前配置的
service_id
重复 - canal.instance.master.address配置为mysql安装的机器名和端口号
- canal.instance.mysql.slaveId这个ID不能与之前配置的
-
执行/export/servers/canal/bin目录中的
startup.sh
启动canalcd /export/servers/canal/bin ./startup.sh
-
控制台如果输出如下,表示canal已经启动成功
cd to /export/servers/canal/bin for workaround relative path LOG CONFIGURATION : /export/servers/canal/bin/../conf/logback.xml canal conf : /export/servers/canal/bin/../conf/canal.properties CLASSPATH :/export/servers/canal/bin/../conf:/export/servers/canal/bin/../lib/zookeeper- ... cd to /export/servers/canal/bin for continue
注意:
Canal的远程连接端口号默认为
11111
,当然如果需要,可以在canal.properties
文件中修改
重置Canal和MySql的binlog位置
重置mysql的binlog
- 进入mysql,
mysql -uroot -p123456
- reset master;
- show master status;
删除zookeeper中的数据
- rmr /otter/canal
删除
Zookeeper的安装
上传压缩包并解压
zookeeper-3.4.9.tar.gz
tar -zxvf zookeeper-3.4.9.tar.gz -C ../servers/
配置zookeeper
cd /export/servers/zookeeper-3.4.9/conf/
cp zoo_sample.cfg zoo.cfg
mkdir -p /export/servers/zookeeper-3.4.9/zkdatas/
vim zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/export/servers/zookeeper-3.4.9/zkdatas
# the port at which the clients will connect
clientPort=2181
# 保留多少个快照
autopurge.snapRetainCount=3
# 日志多少小时清理一次
autopurge.purgeInterval=1
# 集群中服务器地址
server.1=node01:2888:3888
创建myid
echo 1 > /export/servers/zookeeper-3.4.9/zkdatas/myid
启动
# 后台启动
/export/servers/zookeeper-3.4.9/bin/zkServer.sh start
# 前台启动
/export/servers/zookeeper-3.4.9/bin/zkServer.sh start-foreground
# 查看启动状态
/export/servers/zookeeper-3.4.9/bin/zkServer.sh status
jps查看
可以观察到下列进程
QuorumPeerMain
配置环境变量
vi /etc/profile
export ZK_HOME=/export/servers/zookeeper-3.4.9
export PATH=:$ZK_HOME/bin:$PATH
重新加载环境变量source /etc/profile
安装Hadoop
集群规划
服务器IP | 192.168.174.100 |
---|---|
主机名 | node01 |
NameNode | 是 |
SecondaryNameNode | 是 |
dataNode | 是 |
ResourceManager | 是 |
NodeManager | 是 |
上传apache hadoop包并解压
cd /export/softwares
tar -zxvf hadoop-2.7.5.tar.gz -C ../servers/
修改core-site.xml
cd /export/servers/hadoop-2.7.5/etc/hadoop