1 电商业务简介
SKU = Stock Keeping Unit(库存量基本单位)。现在已经被引申为产品统一编号的简称,每种产品均对应有唯一的SKU号。
SPU(Standard Product Unit):是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息集合。
例如:iPhoneX手机就是SPU。一台银色、128G内存的、支持联通网络的iPhoneX,就是SKU。
2 业务数据采集模块
核心操作:将MySQL上的业务数据同步到HDFS上边(批量同步和实时同步)
MySQL安装
将安装包和JDBC驱动上传到/opt/software,共计6个
[zhang@hadoop102 ~]$ cd /opt/software/
压缩包太多,整理一下:
[zhang@hadoop102 software]$ mkdir flume
[zhang@hadoop102 software]$ mkdir zookeeper
[zhang@hadoop102 software]$ mkdir java
[zhang@hadoop102 software]$ mkdir kafka
[zhang@hadoop102 software]$ mkdir mysql
[zhang@hadoop102 software]$ mkdir hadoop
[zhang@hadoop102 software]$ ll
[zhang@hadoop102 software]$ mv apache-flume-1.9.0-bin.tar.gz flume/
[zhang@hadoop102 software]$ mv apache-zookeeper-3.5.7-bin.tar.gz zookeeper/
[zhang@hadoop102 software]$ mv hadoop-3.1.3.tar.gz hadoop
[zhang@hadoop102 software]$ mv jdk-8u212-linux-x64.tar.gz java/
[zhang@hadoop102 software]$ mv kafka_2.11-2.4.1.tgz kafka
[zhang@hadoop102 software]$ ll
再把不要的文件都删了
进入MySQL,上传MySQL需要的安装包
[zhang@hadoop102 software]$ cd mysql/
卸载自带的Mysql-libs(如果之前安装过MySQL,要全都卸载掉)
[zhang@hadoop102 mysql]$ rpm -qa | grep -i -E mysql\|mariadb | xargs -n1 sudo rpm -e --nodeps
[zhang@hadoop102 mysql]$ rpm -qa | grep -i -E mysql\|mariadb
如果是阿里云服务器按照如下步骤执行
说明:由于阿里云服务器安装的是Linux最小系统版,没有如下工具,所以需要安装。
(1)卸载MySQL依赖,虽然机器上没有装MySQL,但是这一步不可少
[atguigu@hadoop102 software]# sudo yum remove mysql-libs
(2)下载依赖并安装
[atguigu@hadoop102 software]# sudo yum install libaio
[atguigu@hadoop102 software]# sudo yum -y install autoconf
k开始安装:
[zhang@hadoop102 mysql]$ rpm -qa | grep -i -E mysql\|mariadb | xargs -n1 sudo rpm -e --nodeps
[zhang@hadoop102 mysql]$ sudo rpm -ivh 02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm
[zhang@hadoop102 mysql]$ sudo rpm -ivh 03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
[zhang@hadoop102 mysql]$ sudo rpm -ivh 04_mysql-community-client-5.7.16-1.el7.x86_64.rp
[zhang@hadoop102 mysql]$ sudo rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm
启动MySQL
[zhang@hadoop102 software]$ sudo systemctl start mysqld
查看状态[zhang@hadoop102 mysql]$ sudo systemctl status mysqld
查看MySQL密码
[zhang@hadoop102 software]$ sudo cat /var/log/mysqld.log | grep password
用刚刚查到的密码进入MySQL(如果报错,给密码加单引号)
[zhang@hadoop102 mysql]$ mysql -uroot -p'f&8U;US.yhP#'
设置复杂密码(由于MySQL密码策略,此密码必须足够复杂)
mysql> set password=password("Qs23=zs32");
更改MySQL密码策略
mysql> set global validate_password_length=4;
mysql> set global validate_password_policy=0;
设置简单好记的密码
mysql> set password=password("000000");
配置远程登录:进入MySQL库
mysql> use mysql
查询user表
mysql> select user, host from user;
修改user表,把Host表内容修改为%
mysql> update user set host="%" where user="root";
刷新
mysql> flush privileges;
退出
mysql> quit;
业务数据生成
连接MySQL
使用一个MySQL客户端生成一个数据库(Navicat for MySQL)
先测试连接,连接成功,再确定。(我主机使用hadoop102,连接失败,换成IP地址就连接成功了,不知道前面哪个环节出错了,总得使用IP)
开始执行
生成业务数据
在hadoop102的/opt/module/目录下创建db_log文件夹
[zhang@hadoop102 module]$ mkdir db_log/
[zhang@hadoop102 db_log]$ vim application.properties
[zhang@hadoop102 db_log]$ java -jar gmall2020-mock-db-2021-01-22.jar
写入数据完成。
查看gmall数据库,观察是否有2020-06-14的数据出现
已经生成2020-06-14的内容,如果要再生产其他天的数据,直接进去 application.properties修改时间,并且1置为0。