数据采集及清洗

24 Mar 2021

数据采集

数据采集:日志文件 => Flume => HDFS => ODS

选择Flume1.8+作为采集日志数据的工具:

taildir Source的特点:

采集启动日志和事件日志

本系统中要采集两种日志:启动日志、事件日志,不同的日志放置在不同的目录下。
要想一次拿到全部日志需要监控多个目录。

总体思路
1、taildir监控多个目录
2、修改自定义拦截器,不同来源的数据加上不同标志
3、hdfs sink 根据标志写文件

json数据处理

数据文件中每行必须是一个完整的 json 串,一个 json串 不能跨越多行。 Hive 处理json数据总体来说有三个办法:

使用内建函数处理

使用UDF处理

自定义UDF处理json串中的数组。自定义UDF函数: 输入:json串、数组的key
输出:字符串数组

使用SerDe处理

SerDe 是Serializer 和 Deserializer 的简写形式。Hive使用Serde进行行对象的序列 与反序列化。最后实现把文件内容映射到 hive 表中的字段数据类型。SerDe包括 Serialize/Deserilize 两个功能:

https://cwiki.apache.org/confluence/display/Hive/DeveloperGuide#DeveloperGuide-HiveSerDe