业务数据采集(一)整体架构设计以及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\|mariadbmariadb-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 password2021-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 --statenot running
显示防火墙没有开启,因为3台集群要相互访问,所以这里我们是没有开启防火墙。
(2)开放3306端口给防火墙
firewall-cmd --zone=public --add-port=3306/tcp --permanentfirewall-cmd --reloadsuccess
4、远程连接测试
使用Navicat 链接数据库测试是否正常链接
