0

我对 Hadoop 很陌生。

我正在尝试将我的日志文件加载到 HCatalog 中。以下是我的日志文件的格式。

Time: 2014-10-28 06:32:34Z
UserID: arun
GroupID: admin
Page: welcome.aspx
Message: Login successful

Time: 2014-10-28 06:32:34Z
UserID: arun
GroupID: admin
Page: main.aspx
Message: menu load
..
..

我需要编写一个 SerDe 来解析这个还是可以通过正则表达式来实现?

4

1 回答 1

0

我相信您希望将外部日志文件加载到 Hive 表中,其中 Hive 元存储由 HCatalog 服务管理。

如果是这样,首先分析源日志记录的固定分隔符,这将有助于 Hive 将记录解析为所需的 n 列,主要是制表符 (\t) 字符会有所帮助。

下一个选项可能是使用带有相关正则表达式的 Hive RegexSerDe 类从源日志记录中实现列解析。

如果正则表达式解析不可行,那么另一个选项是创建自定义配置单元 serde 类来解析源日志文件记录。在自定义 serde 类的帮助下,Hive 将能够完美地将分隔单元格放入 Hive 外部表的相关列中。

请参考,

http://docs.aws.amazon.com/gettingstarted/latest/emr/getting-started-emr-load-data.html

Apache Hive regEx serde:数据类型

http://blog.cloudera.com/blog/2012/12/how-to-use-a-serde-in-apache-hive/

于 2015-04-23T07:19:40.377 回答