本节主要介绍如何使用IntelliJ IDEA开发模拟用户行为数据。
源代码下载
一、创建项目
- 选择菜单File -> New Project,在弹出界面左侧选择Maven,右侧Project SDK:选择java version 1.8.0_101,与服务器安装的java版本要一致。点击Next按钮。
- 填写项目名称,存储地址,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
- 设置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>
四、开发与打包
- 添加package
选择src -> main -> java 目录,右键New -> Package
package 名称:com.jack.logdata.collector
package 名称:com.jack.logdata.collector.bean - 添加主程序class
选择collector包 ,右键New -> Java Class
class 名称:LogDataCollectorApplication - 程序结构如下
- 测试运行
选择LogDataCollectorApplication类,右键选择Run ‘LogDataCollect…main()’。或者Ctrl + Shift + F10。 - 打包
右侧选择Maveng工具(需要安装Maven Helper插件,在Setting -> Plugins 中,搜索Maven Helper ,点击安装),选择package,点击运行。
编译完成后,在target目录下会生成两个jar,使用带有依赖包的jar包:mock-log-collector-1.0.0-jar-with-dependencies.jar,另外一个是不带依赖包的jar包。
- 在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
- 后续将借助Azkaban实现自动定时运行,Azkaban安装配置看下一节内容。
电商数仓项目(一) 系统规划和配置
电商数仓项目(二) Maven 安装和hadoop-lzo编译
电商数仓项目(三) hadoop3.2.2 安装与配置
电商数仓项目(四) 模拟电商日志数据开发