电商数仓项目(四) 模拟用户行为数据开发


本节主要介绍如何使用IntelliJ IDEA开发模拟用户行为数据。
源代码下载

一、创建项目

  1. 选择菜单File -> New Project,在弹出界面左侧选择Maven,右侧Project SDK:选择java version 1.8.0_101,与服务器安装的java版本要一致。点击Next按钮。
    在这里插入图片描述
  2. 填写项目名称,存储地址,GroupId、ArtifactId、Version信息,后点击Finish,选择新窗口打开Project。
    Name:mock-log-collector
    Location:E:\Dev\java\mock-log-collector (根据自己的开发目录填写)
    GroupId:com.jack
    ArtifactId:mock-log-collector,和Name一致
    Version:1.0.0

    在这里插入图片描述
    在这里插入图片描述
  3. 设置Maven,不要使用IntelliJ IDEA自带的Maven。菜单File -> Settings ,左侧菜单选择Build,Execution,Deployment -> Build Tools -> Maven。在右侧选择如下,之后点击Apply和OK:
    Maven home directory:本地Maven目录
    User Settings file:本地Maven配置目录,settings.xml文件的目录
    Local reposiroty:下载jar包的存储路径

    在这里插入图片描述

二、添加项目依赖

修改pom.xml文件,内容如下:

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.jack</groupId>
    <artifactId>mock-log-collector</artifactId>
    <version>1.0.0</version>
    <packaging>jar</packaging>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.75</version>
        </dependency>

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.2.3</version>
        </dependency>

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.30</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>com.jack.logdata.collector.LogDataCollectorApplication</mainClass>
                            //这个是打包程序的主程序类
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

三、配置日志文件

在resources目录下,配置logback.xml文件,配置文件输出路径

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <property name="LOG_HOME" value="/u01/gmall/data/in/log-data/" />
    <appender name="STDOUT"  class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="FILE" 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>
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>

        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%msg%n</pattern>
        </encoder>

        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
    </appender>

    <appender name ="ASYNC_FILE" class= "ch.qos.logback.classic.AsyncAppender">
        <discardingThreshold >0</discardingThreshold>
        <queueSize>512</queueSize>
        <appender-ref ref = "FILE"/>
    </appender>

    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="ASYNC_FILE" />
    </root>
</configuration>

四、开发与打包

  1. 添加package
    选择src -> main -> java 目录,右键New -> Package
    package 名称:com.jack.logdata.collector
    package 名称:com.jack.logdata.collector.bean
  2. 添加主程序class
    选择collector包 ,右键New -> Java Class
    class 名称:LogDataCollectorApplication
  3. 程序结构如下
    在这里插入图片描述
  4. 测试运行
    选择LogDataCollectorApplication类,右键选择Run ‘LogDataCollect…main()’。或者Ctrl + Shift + F10。
  5. 打包
    右侧选择Maveng工具(需要安装Maven Helper插件,在Setting -> Plugins 中,搜索Maven Helper ,点击安装),选择package,点击运行。
    编译完成后,在target目录下会生成两个jar,使用带有依赖包的jar包:mock-log-collector-1.0.0-jar-with-dependencies.jar,另外一个是不带依赖包的jar包。
    在这里插入图片描述
    在这里插入图片描述
  6. 在linux运行
    在u01下创建gmall目录,目录结构如下:
    bin:存放shell文件
    data/in:存放输入文件,模拟的用户数据放在该目录下。
    data/out:存放输出文件
    jar:存放可执行的jar文件
    在这里插入图片描述
[jack@node01 gmall]$ java -jar /u01/gmall/jar/mock-log-collector-1.0.0-jar-with-dependencies.jar
  1. 后续将借助Azkaban实现自动定时运行,Azkaban安装配置看下一节内容。

电商数仓项目(一) 系统规划和配置
电商数仓项目(二) Maven 安装和hadoop-lzo编译
电商数仓项目(三) hadoop3.2.2 安装与配置
电商数仓项目(四) 模拟电商日志数据开发

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涛2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值