zoukankan      html  css  js  c++  java
  • 离线电商数仓(四)之用户行为数据采集(四)数据生成模块(二) 数据生成

    3 服务器和JDK准备

    3.1 服务器准备

    安装如下文档配置步骤,分别安装hadoop102hadoop103hadoop104三台主机。

    3.2 阿里云服务器准备(可选)

    3.3 JDK准备

    1卸载现有JDK3台节点)

    [atguigu@hadoop102 opt]# sudo rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps

    [atguigu@hadoop103 opt]# sudo rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps

    [atguigu@hadoop104 opt]# sudo rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps

    2SecureCRT工具将JDK导入到hadoop102/opt/software文件夹下面

    3 “alt+p进入sftp模式

    4)选择jdk1.8拖入工具

    5Linux系统下的opt目录中查看软件包是否导入成功

    [atguigu@hadoop102 software]# ls /opt/software/

    看到如下结果:

    jdk-8u212-linux-x64.tar.gz

    6解压JDK/opt/module目录下

    [atguigu@hadoop102 software]# tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/

    7配置JDK环境变量

    1新建/etc/profile.d/my_env.sh文件

    [atguigu@hadoop102 module]# sudo vim /etc/profile.d/my_env.sh

    添加如下内容,然后保存(:wq)退出

    #JAVA_HOME

    export JAVA_HOME=/opt/module/jdk1.8.0_212

    export PATH=$PATH:$JAVA_HOME/bin

    2让环境变量生效

    [atguigu@hadoop102 software]$ source /etc/profile.d/my_env.sh

    8测试JDK是否安装成功

    [atguigu@hadoop102 module]# java -version

    如果能看到以下结果、则Java正常安装

    java version "1.8.0_212"

    9)分发JDK 

    [atguigu@hadoop102 module]$ xsync /opt/module/jdk1.8.0_212/

    10)分发环境变量配置文件

    [atguigu@hadoop102 module]$ sudo /home/atguigu/bin/xsync /etc/profile.d/my_env.sh

    11)分别在hadoop103hadoop104上执行source

    [atguigu@hadoop103 module]$ source /etc/profile.d/my_env.sh

    [atguigu@hadoop104 module]$ source /etc/profile.d/my_env.sh

    3.4 环境变量配置说明

    Linux的环境变量可在多个文件中配置,如/etc/profile/etc/profile.d/*.sh~/.bashrc等,下面说明上述几个文件之间的关系和区别。

    bash的运行模式可分为login shellnon-login shell。

    例如,我们通过终端,输入用户名、密码,登录系统之后,得到就是一个login shell,而当我们执行以下命令ssh hadoop103 command,在hadoop103执行command的就是一个non-login shell。

    这两种shell的主要区别在于,它们启动时会加载不同的配置文件,login shell启动时会加载/etc/profilenon-login shell启动时会加载~/.bashrc。

    而在加载~/.bashrc(实际是~/.bashrc中加载的/etc/bashrc)或/etc/profile时,都会执行如下代码片段,

    因此不管是login shell还是non-login shell,启动时都会加载/etc/profile.d/*.sh中的环境变量。

    4 模拟数据

    4.1 使用说明

    1)将application.propertiesgmall2020-mock-log-2020-05-10.jarpath.jsonlogback.xml上传到hadoop102/opt/module/applog目录下

    1)创建applog路径

    [atguigu@hadoop102 module]$ mkdir /opt/module/applog

    2)上传文件

    2)配置文件

    1application.properteis文件

    可以根据需求生成对应日期的用户行为日志。

    [atguigu@hadoop102 applog]$ vim application.properties

    修改如下内容

    # 外部配置打开
    logging.config=./logback.xml
    #业务日期
    mock.date=2020-06-14
    
    #模拟数据发送模式
    mock.type=log
    #mock.type=http
    #http模式下,发送的地址
    mock.url=http://localhost:8080/applog
    
    #启动次数
    mock.startup.count=100
    #设备最大值
    mock.max.mid=50
    #会员最大值
    mock.max.uid=500
    #商品最大值
    mock.max.sku-id=10
    #页面平均访问时间
    mock.page.during-time-ms=20000
    #错误概率 百分比
    mock.error.rate=3
    #每条日志发送延迟 ms
    mock.log.sleep=10
    #商品详情来源  用户查询,商品推广,智能推荐, 促销活动
    mock.detail.source-type-rate=40:25:15:20

    2path.json,该文件用来配置访问路径

    根据需求,可以灵活配置用户点击路径。

    [
      {"path":["home","good_list","good_detail","cart","trade","payment"],"rate":20 },
      {"path":["home","search","good_list","good_detail","login","good_detail","cart","trade","payment"],"rate":50 },
      {"path":["home","mine","orders_unpaid","trade","payment"],"rate":10 },
      {"path":["home","mine","orders_unpaid","good_detail","good_spec","comments","trade","payment"],"rate":10 },
      {"path":["home","mine","orders_unpaid","good_detail","good_spec","comments","home"],"rate":10 }
    ]

    (3logback配置文件

    可配置日志生成路径,修改内容如下

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <property name="LOG_HOME" value="/opt/module/applog/log" />
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%msg%n</pattern>
            </encoder>
        </appender>
    
        <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${LOG_HOME}/app.%d{yyyy-MM-dd}.log</fileNamePattern>
            </rollingPolicy>
            <encoder>
                <pattern>%msg%n</pattern>
            </encoder>
        </appender>
    
        <!-- 将某一个包下日志单独打印日志 -->
        <logger name="com.atgugu.gmall2020.mock.log.Mocker"
                level="INFO" additivity="true">
            <appender-ref ref="rollingFile" />
             <appender-ref ref="console" />
        </logger>
    
        <root level="error" additivity="true">
            <appender-ref ref="console" />
            <!-- <appender-ref ref="async-rollingFile" />  -->
        </root>
    </configuration>

    3)生成日志

    1)进入到/opt/module/applog路径,执行以下命令

    [atguigu@hadoop102 applog]$ java -jar gmall2020-mock-log-2020-05-10.jar

    2)在/opt/module/applog/log目录下查看生成日志

    [atguigu@hadoop102 log]$ ll

    4.2 集群日志生成脚本

    hadoop102/home/atguigu目录下创建bin目录,这样脚本可以在服务器的任何目录执行。

    [atguigu@hadoop102 ~]$ echo $PATH

    /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/atguigu/.local/bin:/home/atguigu/bin

    1)在/home/atguigu/bin目录下创建脚本lg.sh

    [atguigu@hadoop102 bin]$ vim lg.sh

    2)在脚本中编写如下内容

    #!/bin/bash
    for i in hadoop102 hadoop103; do
        echo "========== $i =========="
        ssh $i "cd /opt/module/applog/; java -jar gmall2020-mock-log-2020-05-10.jar >/dev/null 2>&1 &"
    done 

    注:

    1/opt/module/applog/jar包及配置文件所在路径

    2/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。

    标准输入0:从键盘获得输入 /proc/self/fd/0

    标准输出1:输出到屏幕(即控制台) /proc/self/fd/1

    错误输出2:输出到屏幕(即控制台) /proc/self/fd/2

    3)修改脚本执行权限

    [atguigu@hadoop102 bin]$ chmod u+x lg.sh

    4)将jar包及配置文件上传至hadoop103/opt/module/applog/路径

    5)启动脚本

    [atguigu@hadoop102 module]$ lg.sh

    6)分别hadoop102hadoop103/opt/module/applog/log目录查看生成的数据

    [atguigu@hadoop102 logs]$ ls

    app.2020-06-14.log

    [atguigu@hadoop103 logs]$ ls

    app.2020-06-14.log

     

    本文来自博客园,作者:秋华,转载请注明原文链接:https://www.cnblogs.com/qiu-hua/p/14117816.html

  • 相关阅读:
    Roce ofed 环境搭建与测试
    Ubuntu 1804 搭建NFS服务器
    Redhat 8.0.0 安装与网络配置
    Centos 8.1 安装与网络配置
    SUSE 15.1 系统安装
    VSpare ESXi 7.0 基本使用(模板、iso、SRIOV)
    VSpare ESXi 7.0 服务器安装
    open SUSE leap 15.1 安装图解
    KVM虚拟机网卡连接网桥
    GitHub Action一键部署配置,值得拥有
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/14117816.html
Copyright © 2011-2022 走看看