模拟日志数据。。
日志模拟器主要模拟站点的用户信息和用户行为日志数据 使用shell调用java类实现数据的生产 !
所需文件如下:
datagen.jar
genlog.sh
注意: 存储数据的文件夹要预先创建好
Bash mkdir -p /tmp/doit/user_data mkdir -p /tmp/doit/log_data |
将用来模拟生成数据的jar包和脚本下载后上传到Linux到指定位置,我当前是放到了/tmp/doit目录下,也可以放到任意目录下 |
执行sh脚本文件 ,内部调用datagen.jar中的java类生成特定格式的数据!
Shell #!/bin/bash # $1 生成数据的种类:user | log # 如果生成user # $2 如果生成user,则是user数据的用户量 # $3 如果生成user,则是user数据的输出路径(到文件名) # =================================================== # 如果生成log # $2, 在线人数 # $3, 要生成的日期 # $4, 1:流式生成 0:批量生成 # $5, user数据的路径 # $6, 日志数据的输出路径(到目录) # $7, 是否日志模式(每行flush) # ===================================================== # 注意脚本中的java环境变量 修改成自己对应的位置 export JAVA_HOME=/opt/apps/jdk1.8.0_191/ if [ $1 = user ];then echo "generating user data ..." $JAVA_HOME/bin/java -cp datagen.jar cn.doitedu.datagen.beans.GenUsers $2 $3 & fi # 生成日志数据 if [ $1 = log ];then echo "generating log data ..." $JAVA_HOME/bin/java -jar datagen.jar ${2} ${3} ${4} ${5} ${6} ${7} & fi |
首先准备虚拟机环境 , 必须有java开发环境 ! 将所需的脚本文件和Jar包上传到指定的虚拟机中!
1.1 模拟用户数据
生成用户数据
Shell # 初始化用户数据(10000000代表公司的用户总量级别) sh genlog.sh user 100000 /tmp/doit/user_data/user.json |
扩展:
- 用户数据信息是存储在MySQL这样的关系型数据库中 ,
- 可以修改日志生成脚本,在生成用户的时候 将数据存储到MySQL中
1.2 模拟日志数据
为公司生成1000W用户 , 日志可以滚动生成也可以批量生成
Bash # 流式生成日志(200000代表当天在活跃用户总量) # sh genlog.sh log 20000 2022-03-10_08:30:00 1 /tmp/doit/user_data/user.json /tmp/doit/log_data 1 # 批量生成日志 sh genlog.sh log 20000 2022-07-09_11:11:11 0 /tmp/doit/user_data/user.json /tmp/doit/log_data 0 |