00:00
在部署大数据组件之前啊,我们再分析一个问题啊,我们的大数据集群,它最终是用来处理数据的,那处理数据首先我们要有数据呀,但我们现在没有,那怎么办?我们就要模拟一些数据,那模拟数据我们已经把模拟数据的炸包给大家准备好了,在Mo这,Mo这呢有两个,一个是日志,一个是业务日志,它就代表模拟用户行为日志,那业务啊,它是模拟业务日志的啊,那我们呢,把模拟用户行为日志的这个炸包给他拿到我们的项目当中。来到我哈杜102,我CD到OPT model目录,那在这里呢,我创建一个文件夹make点叫做。APP,我CD到APP里。进来之后,我把这四个文件给他拿回来。好。那这四个文件它都是干嘛的啊,我们看一看这个炸包啊,当我们一执行这个炸包,Java杠炸一执行,那么它就会帮我们生成用户行为数据了,你看我来一个Java杠加gma回。
01:17
回车之后,你看它现在一条一条的数据,诶,它就已经在生成了,好,那这呢,我就不让它生成完了啊,我直接CTRLC给它强退了,那强退我们来简单的看一看,你看这是不是就是我们的数据格式啊啊TS时间戳common模块啊,以及一些其他的组件模块啊,那炸包我们都知道了,它是一个可执行的,一执行就生成数据,那这些文件它里面都是什么内容啊行,我们一个一个的来看一看。首先我们看application.yml,我呢在这打开。打开之后它加载了一个文件,是当前目录下面的log back,点叉ML,那我们看一看。
02:02
application.yml,它当前目录是不是就这个目录啊,在这个目录下面有一个log back点叉ML再往下来,那主要啊,我们要看这啊叫业务日期,它呢就能模拟我们数据生成的日期,那我们在这儿模拟的是2020年6月14号这一天的数据,那接下来我们看看这个地方启动的次数,也就是我们启动日志模拟的次数,设备的最大值,设备ID,会员的最大值UID。设备的最大值,设备ID会员的最大值UID商品的最大值啊商品ID35个平均页面的访问时间,也就是每一个页面它的平均的访问时长,那有些页面可能访问了一秒,那有的页面可能访问了三四十秒,哎,这平均的是20秒错误的比例,发生错误的一个比重啊,我们不是有错误日志吗?每条日志啊,我们还给它设置了一个发送的延迟间隔。
03:14
商品详情的来源啊,一共是有这么多种用户查询呢,商品推广啊,智能推荐,促销活动诶等等等等,那这些加一起一共是啊100啊,也就是说用户查询的相对来说还要多一些,那接下来是领购物券的概率,还有购物券的最大ID,我们在这一共就模拟了三个购物券,然后搜索的一些关键词,那下面是男女的比重啊,那这个比重是35款商品男女的比重啊,你看上面的是ma男人female是女人嘛,那你看这男人哎,前面的比重是不是相对来说要比较高啊,那中间的这个比重,你看这一部分男人浏览的就比较少了,那你看女人这那这是比较低的,那女人在这一部分相对来说就比较高了,那你看男人少的这一部分女人多,那大家想想这一部分商品它应该是啥呀?在我们这儿你看一共有这么多商品,是不是有可能就是口红啊。女人搜索口。
04:15
红的概率要比较高,那男人呢,搜索口红的概率还是比较低的,那有没有呢?有他有可能是给女朋友买的吗?啊,这个是点YML这个文件啊,那接下来我们再看一看这个log back,它是干嘛的,我打开。在这里我们主要看这个地方,这个文件当中啊,它是配置我们日志落盘的一个规则的,那rolling policy,你看滚动的策略嘛,滚动的策略是rolling file。通过文件来进行滚动,那怎么通过文件来进行滚动呢?你看滚动的时候我们来一个文件的名字的模板,它首先获取了一个log home,那log home在这呢,是OPT model目录下面的log下面的log目录,诶我们看一看,那在这我们刚刚一执行是不是刚好生成了一个log目录啊,那在log目录当中,我们看看我们的文件名是什么样的啊,我们的文件名是以点APP开头,然后点log结尾,那中间呢,百分号D格式化了我们的年月日YYYYMMDD,好,那我们呢,也对应的来到这个log目录,看一看它的文件名是什么样的啊,你看APP点,然后呢,点log,那这个滚动的时间是2020杠零四杠零一,也就是4月1号今天。
05:50
诶,那大家有没有一个疑问呢?我们刚刚在这个文件当中设置的。这个业务日期是哪天了?是不是2020年6月14号啊,但我的文件名它是2022年的4月1号,那这数据的日期它出现了错误啊,那是这样的吗?哎,其实不是的啊,那看这我们的数据啊,是在这个地方呢,这个TS我们拿过来看一下复制。
06:22
复制完了来到百度,在百度上啊,我们搜索一个时间戳转化的工具,那我把刚刚复制的这个时间戳给他拿过来,我点击转化,转化之后我们就能看到这个时间,它就是2020年的6月14号,也就是说我们数据上的日期啊,它是没有问题的,那有问题的是哪啊,是我们文件的名字的这个日期。那为什么它会出现这个问题呢?原因是它这个滚动的方式啊,是以文件的形式来进行滚动的,那我们这个文件它滚动的日期啊,它是跟我们服务器的日期相关的,所以说4月1号它也没问题,由于我们现在是模拟数据嘛,它会出现这个问题,但在生产环境上大家分析一下会有这个问题吗?我们6月14号的数据是不是肯定会落入到6月14号的这个文件下面呀。
07:18
6月14号的数据,它肯定会落入到6月14号的这个文件夹嘛,那我们现在是模拟的6月14号,所以说它会模拟到当天的这个文件夹。在生产环境上是不会出现这个问题的啊,那我们现在是模拟嘛,所以说出现这个问题也无所谓。那这个文件我们看完了,我们再来。看一下pass这个文件。在pass这个文件当中,我们看它是一个zson的文件,里面呢,是一个一个的,再那我们看看这个文件它是啥意思啊,你看pass后面呢,诶,Home在我们的电商当中,Home它一般代表首页god list,商品列表页面,Got detail,商品详情,购物车结算支付,诶这个是不是刚好就是我们一个用户啊,他的一个浏览路径呢,这个用户首先来到了首页,然后呢,搜索了一个商品,来到了商品列表页面,那点击了一个商品,进入到了商品详情页面,加入了购物车,来到购物车页面,那最终啊去结算支付,那这个路径的比例啊,它是占了20%,OK,那下面每一个浏览路径它都有一个对应的比例在后面,那我们看看下面最后一个后,后面就没了,那这代表啥呀?
08:41
他只来到我们的首页,来到首页之后它就退出了,所以说他就只有一个页面。那这个就是我们的用户行为日志模拟,我们刚刚在102上部署了一台用户行为日志模拟的服务器,但是我们想让他在103上也不属于台。
09:03
那我们就可以把刚刚的这个用户行为日志模拟的炸包给他发送到103,那我CD点点。然后LL,我呢,先把这个log给它删掉,RM-rf log。删掉之后我CD到OPT model目录啊,我呀把这个APP log也给它分发到哈多吧,103上一份啊,我直接就用X s y clo分发一下。分发完了,那在103104都有了,那我对应的把104上呢,我给它删掉a r log-RF好上完了呢,我们现在在102和103上,它对应的就都有了这个applo了,Op APP。它对应的在102和103就都有了模拟日志的服务器了。
10:03
我们想在102和103上都模拟数据,那我们就要在102和103上分别执行一个加八杠上的命令,但每一台机器啊都执行,我还是觉得它比较麻烦,我呀想通过脚本的方式一键执行这两台机器的日志模拟,那接下来我们看看这个日志模拟的脚本我们应该怎么写。三脚本那首先井号叹号B杠八。那我呢,想通过这个下有脚本呢,在两台机器上来执行一个Java钢煞,那我呢就可以通过报循环在哪啊,在哈杜102和哈杜。103来执行,那既然是放循环,我来一个度,再来一个到一个开始,一个结尾,那在这个中间来执行我们的代码逻辑,我就通过SSH到Dollar I,哎,当前的这台机器上来执行我们的Java命令了,那Java命令就是Java杠,这找到我的这个炸包LL。
11:13
把它给复制一下。右键复制CTRLV右键粘贴。粘贴完之后啊,我们来试一试啊,给他执行一下复制。我在这儿右键粘贴。在执行的时候,我们看我在控制台上打印了这个数据,那同时呢,我还会生成一个log目录,在这个目录当中,我是不是也有数据啊,那同样的一份数据我是不是。写了两份,那写了两份它是不是相对来说就会耗我们的计算机的资源呢?那我不想让控制台上打印的这个内容出现,那我怎么办呢?那说到这儿啊,我们就要来说一下计算机系统的操作符了,在我们计算机系统当中常用的操作符有三个,一个是零。
12:06
一还有二,零,它的意思代表标准输入。一标准输出。二标准错误输出,这什么意思啊?标准输入的意思,它就代表键盘的键入,我通过键盘的按键,这个就是标准输入。那什么是标准输出呢?我们在控制台上打印的这个内容,它就是标准输出,那什么是标准的错误输出呢?我们在控制台上打印出来的一些错误的内容,它就是标准错误输出,那这些内容我们都不需要,我们怎么办?在我们的计算机系统当中有这么一个目录。第一位下面的那这个目录啊,我们通常叫它计算机系统的黑洞,在这个目录当中的内容,那就相当于移除我们计算机了。
13:05
那也就是说我们是不是可以把标准输出给它输出到DV no呢?我们可以这么来看,我们把一呀给它重定向到第一位呢。那这样它就没了,那同样错误的输出我们也不需要,我们是不是也可以这么来干呢?把二我也给你重定向道D为now,但是这么写看起来它比较low,那作为大神你可以这么看,我把一可以给你省略掉,但是二不能省略,那二不能省略,我可以这么写,我把二啊,我给你重定向到一,那一它已经输入到了低位闹了,你二重定向到了一,那相当于二也给它输出到了低维闹,那我在这儿呢,再给一个后台运行,但这我们在执行的时候还要注意一点啊,我们呢,来到这个炸包它的目录下面,我们才能执行这个炸包吧。
14:04
所以说我在这儿还要CD到OPT model。那这个目录是APP log,好,我给他一个分号,分号的意思啊,是多行执行,那我先执行前面的这个命令,然后呢,我在执行分号后面的这个命令,OK,那这个脚本到这儿我们就写完了,写完了我在这再给他一个输出ech choq一个。双引号啊。在这Dollar I获取一下当前机器啊好,那我呢,把这个脚本给它复制一下CTRLC来到我的机器上。我CD到加目录的并目录下面V'M一个叫做Lg.SH,然后右键粘贴进来,冒号WQ保存。
15:00
那接下来呢,我再给他一个权限,Ch mod777Lg.SH回事,那我执行一下看看结果。回ER,好,那它现在就正在生成了,那我们看一看它好不好使啊,LL回R,你看这个目录就已经出来了,时间是最新的,我在CD到OPT目录下面的log啊,我CD到log当中。啊,这个时间它也是最新的没有问题。
我来说两句