hadoop建议

zysjyyx4  于 2021-06-25  发布在  Pig
关注(0)|答案(1)|浏览(277)

我需要一些关于如何在java中使用hadoop而不是pig处理基础设施日志的建议,因为我认为pig在读取日志文件时不支持regex过滤器。
例如,我有cisco日志和web服务器日志,我想按行过滤特定的值,并将其输入hadoop。
网上有几个建议,比如先把它改成csv格式,但是如果日志文件是gbs格式呢???
有没有可能在“Map”阶段过滤行,即程序将读取hdfs文件中的行,并将其发送到Map器。。。
我需要一些最好的方法和干净的方法来做这件事的建议。。。。
谢谢。

j2datikz

j2datikz1#

我们能做到 REGEX 上的操作 PIG . pig只在内部使用javaregex规范。
请看下面的例子:

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';

示例中使用的文件大小为2.7GB,包含1100万行。其中regex的输出是450000行。
我相信这回答了你的问题,否则请告诉我。

相关问题