我对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来解析这个问题,还是可以通过正则表达式来实现?
答案 0 :(得分:0)
我相信您希望将外部日志文件加载到Hive表中,其中Hive Metastore由HCatalog服务管理。
如果是这样,首先分析一个固定分隔符的源日志记录,这将有助于Hive将记录解析为所需的n个列,主要是tab(\ t)char将有所帮助。
下一个选项可能是使用带有相关正则表达式的Hive RegexSerDe类从源日志记录中实现列解析。
如果正则表达式解析不可行,那么另一个选项是创建自定义hive 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/