1、什麼是UA?
用戶訪問服務器時,所攜帶的一些基本信息。
日誌字段如下:
Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 main%2F1.0 baiduboxapp/11.15.5.16 (Baidu; P2 13.1.2 )
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 main%2F1.0 baiduboxapp/11.15.5.16 (Baidu; P2 13.1.2 )
Mozilla/5.0 (Linux; Android 9; COL-AL10 Build/HUAWEICOL-AL10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.155 Mobile Safari/537.36 Zeus
Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 main%2F1.0 baiduboxapp/11.15.5.16 (Baidu; P2 13.1.2 )
Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
Mozilla/5.0 (Linux; Android 9; COL-AL10 Build/HUAWEICOL-AL10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.155 Mobile Safari/537.36 Zeus
2、思路
添加自定義UDF 函數,進行解析。Jar 包有現成的,如何下載如何打包?
步驟如下:
1、用你的IDEAL 創建一個 maven 工程
2、添加maven 依賴 進行 下載 Jar 包
添加依賴:
<dependency>
<groupId>nl.basjes.parse.useragent</groupId>
<artifactId>yauaa-hive</artifactId>
<classifier>udf</classifier>
<version>5.8</version>
</dependency>
版本到 2020-1-6 有如下版本:
5.8\5.6\5.5
打包: 這裏要注意我怎麼打包!
直接上傳到 hive 目錄下的
/opt/hive/apache-hive-2.1.1-bin/lib/
最後上傳 jar 包 執行下面命令即可:
add jar /opt/hive/apache-hive-2.1.1-bin/lib/yauaa-hive-5.8-udf.jar;
CREATE FUNCTION ParseUserAgent AS 'nl.basjes.parse.useragent.hive.ParseUserAgent';
DESCRIBE FUNCTION EXTENDED ParseUserAgent;
SELECT ParseUserAgent("Mozilla 5.0 Windows NT 10.0 WOW64 AppleWebKit 537.36 KHTML like Gecko Chrome 63.0.3239.132 Safari 537.36").OperatingsystemNameVersion as a;
OK
Windows NT 10.0 WOW64
結果展示:
這個是 具體的介紹方法:
https://github.com/nielsbasjes/yauaa/blob/29cf3abbd2207e0634c9a7f2917c999bb0fd71c7/src/main/docs/UDF-ApacheHive.md