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。
本文介绍了电商中SKU和SPU的概念,并详细阐述了如何将MySQL业务数据批量和实时同步到HDFS,包括MySQL的安装、配置以及数据生成过程。在安装MySQL时,涉及到了依赖的卸载和安装,以及远程登录和密码策略的设置。
941

被折叠的 条评论
为什么被折叠?



