2015-04-23 56 views
0

我是Hadoop的新手。日志文件解析hcatalog正则表达式或serde

我想将我的日志文件加载到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来解析这个问题还是可以通过regex来实现?

回答

0

我相信您希望将外部日志文件加载到Hive表中,其中Hive Metastore由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: data types

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