业务数据采集(一)整体架构设计以及MySQL安装配置
通过前面5次内容分享,我们逐步完成了“”。
假设现在又有一个场景:产品经理提了1个优先级极高的需求:应用系统业务数据都需要 T+ 1被采集到大数据平台hadoop上。
为了方便小白从0到1渐进学习,我拆分成5期来完成这个需求的解决方案,每期阅读时间在10分钟左右。
业务数据采集系列:
一、整体架构设计
在前端埋点数据采集系列里面,我们已经介绍了整个数据采集的整体设计,这里单独再把业务数据采集的架构设计给大家贴出来,我们在做具体项目实施的时候,经常要把road map 架构图拿出来看、对比,做到哪一步了,下一步该怎么做。
1、数据来源层
假设我们业务数据都存储在MySQL关系型数据库上。
2、数据采集层
采集的组件主要是选择Sqoop,Sqoop主要用于在Hadoop(Hive)与传统的数据库(mysql)间进行数据的相互传递,可以将一个关系型数据库(例如:MySQL ,Oracle 等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
3、数据存储层
二、MySQL数据库安装
Node01服务器安装MySQL
1、卸载Linux系统自带安装包
#查看是否有安装包
[qiusheng@node01 ~]$ rpm -qa | grep -i -E mysql\|mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
#删除系统自带安装包
[qiusheng@node01 /]$ sudo yum remove mariadb-libs-5.5.60-1.el7_5.x86_64
需要删除以上两个安装包。
2、下载上传MySQL安装包到Linux集群
涉及3个依赖包,以及Client、Server、jdbc驱动包,共计6个包
#以下6个包
-rw-rw-r-- 1 qiusheng qiusheng 277604 May 10 22:18 01_mysql-community-common-5.7.16-1.el7.x86_64.rpm
-rw-rw-r-- 1 qiusheng qiusheng 2237116 May 10 22:18 02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm
-rw-rw-r-- 1 qiusheng qiusheng 2112700 May 10 22:18 03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
-rw-rw-r-- 1 qiusheng qiusheng 25034716 May 10 22:18 04_mysql-community-client-5.7.16-1.el7.x86_64.rpm
-rw-rw-r-- 1 qiusheng qiusheng 159295840 May 10 22:18 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm
-rw-rw-r-- 1 qiusheng qiusheng 872303 May 10 22:18 mysql-connector-java-5.1.27-bin.jar
3、安装5个包
安装顺便依次为:3个依赖包,Client和Server包。
[qiusheng@node01 / software]$ sudo rpm -ivh 01_mysql-community-common-5.7.16-1.el7.x86_64.rpm
[qiusheng@node01 / software]$ sudo rpm -ivh 02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm
[qiusheng@node01 / software]$ sudo rpm -ivh 03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
[qiusheng@node01 / software]$ sudo rpm -ivh 04_mysql-community-client-5.7.16-1.el7.x86_64.rpm
[qiusheng@node01 / software]$ sudo rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm
4、启动mysql并登录
(1)启动MySQL
[qiusheng@node01 7.mysql]$ sudo systemctl start mysqld
(2)拿到系统随机密码登录
[qiusheng@node01 7.mysql]$ sudo cat /var/log/mysqld.log | grep password
2021-05-10T14:25:04.356079Z 1 [Note] A temporary password is generated for root@localhost: xYe8am8Mx<lG
(3)登录
[qiusheng@node01 7.mysql]$ mysql -uroot -p'xYe8am8Mx<lG'
三、MySQL数据库配置
1、设置密码策略
(1)修改密码复杂度
mysql> set global validate_password_length=6;
mysql> set global validate_password_policy=LOW;
(2)设置密码
mysql> set password=password("xxxxx");
(3)显示密码表
#mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 6 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+--------------------------------------+-------+
2、设置mysql远程访问权限
(1)查看user表
mysql> show databases;
mysql> use mysql;
mysql> select user,host from mysql.user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
3 rows in set (0.01 sec)
(2)修改使用远程用户连接
mysql> update mysql.user set host = '%'where user = 'root';
(3)重启mysql服务
mysql> flush privileges;
[qiusheng@node01 7.mysql]$ service mysqld restart
3、检查3306端口
(1)查看防火墙状态
[qiusheng@node01 7.mysql]$ firewall-cmd --state
not running
显示防火墙没有开启,因为3台集群要相互访问,所以这里我们是没有开启防火墙。
(2)开放3306端口给防火墙
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
success
4、远程连接测试
使用Navicat 链接数据库测试是否正常链接