vlambda博客
学习文章列表

业务数据采集(一)整体架构设计以及MySQL安装配置

畅谈Fintech
关注Fintech领域的各种Stack技术、架构。包括大数据领域Hadoop、CDH、spark全家桶、数据分析;javaWeb领域Spring全家桶;微服务架构serviceMesh;分布式数据库;敏捷项目管理;devops、K8S等。
12篇原创内容
Official Account



通过前面5次内容分享,我们逐步完成了“”。


假设现在又有一个场景:产品经理提了1个优先级极高的需求:应用系统业务数据都需要 T+ 1被采集到大数据平台hadoop上


为了方便小白从0到1渐进学习,我拆分成5期来完成这个需求的解决方案,每期阅读时间在10分钟左右。




业务数据采集系列:

一、整体架构设计以及MySQL安装配置
二、业务表建模以及mock业务数据生成
三、简析数据同步策略
四、Sqoop安装配置以及导入数据到HDFS
五、业务数据采集总结





一、整体架构设计


在前端埋点数据采集系列里面,我们已经介绍了整个数据采集的整体设计,这里单独再把业务数据采集的架构设计给大家贴出来,我们在做具体项目实施的时候,经常要把road map 架构图拿出来看、对比,做到哪一步了,下一步该怎么做。


业务数据采集(一)整体架构设计以及MySQL安装配置



  1、数据来源层

假设我们业务数据都存储在MySQL关系型数据库上。

2、数据采集层

采集的组件主要是选择Sqoop,Sqoop主要用于在Hadoop(Hive)与传统的数据库(mysql)间进行数据的相互传递,可以将一个关系型数据库(例如:MySQL ,Oracle 等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

3、数据存储层

数据会被采集到Hadoop集群上,即HDFS上存储。






二、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 链接数据库测试是否正常链接




总结:
1、应用系统业务数据的采集架构设计;
2、mysql安装搭建
3、mysql配置