有关如何处理日志的hadoop建议

kri*_*itx 1 java regex linux apache-pig

我需要一些关于如何使用Java中的hadoop而不是Pig处理基础结构日志的建议,因为我认为Pig在读取日志文件时不支持正则表达式过滤器.

例如,我有cisco日志和Web服务器日志,我想按行过滤特定值并输入hadoop.

在线有几个建议,即首先将其更改为csv格式,但如果日志文件是GBs ???

是否可以在"map"阶段过滤行,即程序将从HDFS中的文件中读取行并将其发送到mapper ...

我需要一些关于最佳方式和清洁方式的建议....

谢谢.

Jag*_*uri 6

我们可以做REGEX 的操作PIG.PIG内部仅使用JAVA REGEX规范.

请仔细阅读以下示例:

myfile = LOAD '999999-99999-2007' AS (a:chararray);

filterfile = FILTER myfile BY a MATCHES '.*DAY+.*';

selectfile = FOREACH filterfile GENERATE a, SIZE(a) AS size;

STORE selectfile INTO '/home/jagadish/selectfile';
Run Code Online (Sandbox Code Playgroud)

示例中使用的文件大小为2.7 GB,包含1100万行.其中正则表达式输出为450,000行.

我相信这回答了你的问题,否则请告诉我.