网站流量日志分析--统计分析--多维统计分析--终端维度--自定义 UDF 解析 UA|学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习网站流量日志分析--统计分析--多维统计分析--终端维度--自定义 UDF 解析 UA

开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第四阶段) 网站流量日志分析--统计分析--多维统计分析--终端维度--自定义 UDF 解析 UA】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/696/detail/12226


网站流量日志分析--统计分析--多维统计分析--终端维度--自定义 UDF 解析 UA


1、如何开发 hve 的自定义函数udf 实现对 ua 的解析需要使用第三方的库并且需要编写 hive java 代码

2、打开开发环境编译器 IntelliJ IDEA,在里面创建标准的工程开发hive自定义函数udf需要 hive 的执行包hadoop 包此外因为涉及到解析涉及到 ua 第三方 的java包需要导入 bitwalker 公司的 USerAgentutils 开源免费的工具类

3、创建工程选择 new project

image.png

选择 maven 模块点击 next

image.png

groupid 是公司组织域名 cn.itcast.bigdata,框架名 example-udf,版本号 version 是1.1。

工程名与框架名保持一致 example-udf。

点击 finish提示目录不存在是否需要创建点击 ok

image.png

4、引入依赖

<dependencies>

<dependency>

<qroupIdsorg. apache .hive</groupId>

<artifactId>hive-exec</artifactId>

version>1.2.1</versi on>

</dependency>

<dependency>

<gr oupId>org. apache .hadoop</groupId>

<artifactId>hadoop-common</artifactId>

<version>2.7.4</version>

</dependency>

<dependency>

<groupId>eu .bitwalker </groupId>

<artifactId>userAgentuti1s </artifactId>

<version>1.21</version>

</dependency>

</dependencies>

可以 把 jar 包联网下载过来做相关的验证工作有了依赖后把插件导入进来需要 jar 包,maven- shade- plugin 插件比较好用把 build 模块复制进来

<build>

<plugins>

<plugin>

<groupId>org . apache . maven . plugins</groupId>

<artifactId> maven- shade -plugin</artifactId>

<version>2.2</version>

<executions>

<execution>

<phase>package</phase>

<goals>

<goal>shade</goal>

</goals>

<configuration>

<filters>

<filter>

<artifact>*:*</artifact>

<excludes>

<exclude>META- INF/* .SF</exclude>

<exclude>META- INF/* .DSA</exclude>

<exclude>META- INF/* . RSA</exclude>

</excludes>

</filter>

</filters>

</ configuration>

</execution>

</executions>

</plugin>

</plugins>

</build>

可以保证通过 maven 插件打包 jar 包整个 udf 的编写就是集成一个类写里面的方法。

5、创建一个 package,cn.itcast.hive.udf

image.png

创建 class,UAParseUDF。

这个核心中当把第三方的 jar 导入之后就很简单只要传入标准的 ua 字 符串就像数据中的第三行

image.png

就可以构建 useragent 的实例使用的对象就是第三方 jar 包提供的对象基于它构建后里面就非常方便的调用各种api相关的数据信息比如调用getoperatingSystem 获得操作系统,getBrowser 获得浏览器版本,, getBrowserVersion 获得浏览器版本号返回就可以做解析非常标准的 udf 函数标准的普通函数实现一进一出

public string evaluate(final string userAgent){

//hive 自定义函数实现对 ua 的解析

StringBûilder builder = new StringBuilder() ;

//todo 利用第三方 ar 包构建一个 UserAgent 对象基于该对象实现 ua 的解析解析不需要操作直接 api 就可以完成

UserAgentua = new UserAgent (userAgent) ;

builder .append(ua. getoper atingSystem()+"t"+ua. getBrowser ()+"t"+ua. getBrowserVersion());

return

(builder . toString());

}

6、选择 Maven Projectslifecyclepackage 打包

image.png

这时就会把 jar 包打到工程目录下因为涉及到签名冲突依赖所以打包的长一些需要把依赖的 jar 包也导入进来打包完显示 build success这时也弹出新的 target 目录在目录下有两个jar包一个是 example-udf-1.1.jar 工程 jar 包另一个是 original- example -udf-1.1.jar区别很明显一个是把所有以来的 jar 包导入进去一个是只把自己写的 jar 导入进来选择第一个 example-udf-1.1.jarjar 包的名字是框架的名字加版本

image.png

把 jar 上传到 hive 服务器中做一个自定义函数的注册拖拽上传 jar 包添加自定义函数需要通过命令把 jar 包添加到 hive 环境变量中进行 agent 注册临时函数就可以使用

7、第一个叫导入 hive 的环境变量中用 add jar 命令在 root 路径下 example-udf-1.1.jar注意要删除空格否则会报错在服务器日志中显示出来添加到成功的 jar 包中

image.png

8、注册临时函数

使用:打成 jar 包,hive 中 add jar xx.jar ;

create temporary function ua_parse as ‘cn. itcast.hive.udf .TestUA' ;自定义函数的名字jar 组类的全路径

select ua_ parse(ua) from table_ name limit 3;

打开编辑器,Copy Peference。全路径拷贝下来替换到 cn. itcast. hive.udf. TestUA

image.png

复制注册create temporary function ua_ parse as 'cn. itcast.hive . udf .UAParseUDF' ;

在 hive 中执行注册成功使用自定义函数 ua_parse 对字段进行相关的解析pageviews 中有 useragent非常标准针对 ods_click

_pageviews.http_user agent 表进行相关的操作演示是否能解析成功

字段叫 ods_ click_ pageviews因为返回的字段比较多所以限制返回三条记录解析 http_user agent 字段执行 sql 语句 select ua_parse(http_user_agent) from ods_click_ pageviewslimit 3;

如果不解析返回会如何把解析函数去掉直接返回字段可以看到返回的是一长串字符串

image.png

执行解析可以看到出现了相关信息windows 平台谷歌平台ie 浏览器相关的版本如果没有显示NULL如果做这样的解析处理再统计来自于 windows 平台火狐浏览器有多少个根据分组统计即可这就是按照终端维度分析的好处

image.png

重点在如何使用第三方的 jar 包解析 ua特别注意 hive 自定义函数 udf 的编写过程在企业中用的非常多一定要梳理清楚

相关文章
|
7月前
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
1636 1
|
7月前
|
监控 Java 应用服务中间件
Tomcat log日志解析
理解和解析Tomcat日志文件对于诊断和解决Web应用中的问题至关重要。通过分析 `catalina.out`、`localhost.log`、`localhost_access_log.*.txt`、`manager.log`和 `host-manager.log`等日志文件,可以快速定位和解决问题,确保Tomcat服务器的稳定运行。掌握这些日志解析技巧,可以显著提高运维和开发效率。
544 13
|
7月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
7月前
|
人工智能 运维 监控
一招高效解析 Access Log,轻松应对泼天流量
一招高效解析 Access Log,轻松应对泼天流量
115 0
一招高效解析 Access Log,轻松应对泼天流量
|
8月前
|
弹性计算 运维 网络安全
阿里云轻量应用服务器产品解析与搭建个人博客网站教程参考
轻量应用服务器(Simple Application Server)作为阿里云面向单机应用场景推出的云服务器产品,以其一键部署、一站式管理、高性价比等特性,深受个人开发者、中小企业及入门级用户的喜爱。本文将全面解析阿里云轻量应用服务器的产品优势、应用场景、使用须知,以及使用轻量应用服务器搭建个人博客网站的详细教程,帮助用户更好地了解和使用这一产品。
|
11月前
|
监控 前端开发 安全
如何开发一个网站:全面解析与实战指南
在数字化时代,网站是企业和个人展示形象、传播信息的关键平台。本文提供从规划、设计、开发、上线到后期维护的全方位网站开发指南,涵盖明确目标、分析用户、设定功能需求、设计风格、技术选型、测试部署及优化升级等内容,帮助你打造既美观又实用的网站。
789 4
|
12月前
|
监控 网络协议 应用服务中间件
深入解析:如何确定网站使用的端口号
【10月更文挑战第21天】 在网络通信中,端口号是识别特定服务的关键。一个IP地址可以有多个端口,每个端口可能运行着不同的服务。当我们在浏览器地址栏输入一个网址时,实际上是通过特定的端口与服务器进行通信。本文将探讨如何确定一个网站使用的端口号,以及端口号在网络通信中的作用。
908 4
|
11月前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
385 1
|
12月前
|
存储 监控 安全
深入解析Sysmon日志:增强网络安全与威胁应对的关键一环
在不断演进的网络安全领域中,保持对威胁的及时了解至关重要。Sysmon日志在这方面发挥了至关重要的作用,通过提供有价值的见解,使组织能够加强其安全姿态。Windows在企业环境中是主导的操作系统,因此深入了解Windows事件日志、它们的独特特性和局限性,并通过Sysmon进行增强,变得至关重要。
294 1
|
12月前
|
数据采集 XML 前端开发
Jsoup在Java中:解析京东网站数据
Jsoup在Java中:解析京东网站数据

推荐镜像

更多
  • DNS