gpt4 book ai didi

java - 映射代码以过滤掉日志文件中每一行的某些字段

转载 作者:行者123 更新时间:2023-12-02 21:48:46 26 4
gpt4 key购买 nike

这是我的 java 映射代码,用于从日志文件的每一行中过滤掉某些字段

public class TAnalyser {

public static class TMapper
extends Mapper<Object, Text, Text, IntWritable>{
public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException,InterruptedException {

String LogEntryPattern=("(srcip=(?:\\\\d+\\\\.)+\\\\d+)(?:.*)?(dstip=(?:\\\\d+\\\\.)+\\\\d+)(?:.*)?(dstport=(\\\\d+))(?:.*)?(status=\\\\w(?:.*))");
String LogEntryLine=value.toString();
Pattern p=Pattern.compile(LogEntryPattern);
Matcher matcher = p.matcher(LogEntryLine);

System.out.print(" " + matcher.group(1) + " " );
System.out.print(" " + matcher.group(2) + " " );
System.out.print("status=close" + matcher.group(4) + " " );
System.out.println(" " + matcher.group(3));
}
}
}

这是一个示例输入文件 inp.txt

2014<>10.100.2.3<><189>date=2014-01-16,time=11:26:14,devname=B39001569,devid=B39001569,logid=000013,type=traffic,srcip=192.168.192.12,srcport=22,srcintf=port2,dstip=10.180.1.10,dstport=3106,dstintf=port1,sessionid=121543,status=close,policyid=196,service=MYSQL,proto=6,duration=10,sentbyte=3910,rcvdbyte=175085,sentpkt=74,rcvdpkt=132";

2014<>10.100.2.3<><189>date=2014-01-16,time=11:26:14,devname=B39001569,devid=B39001569,logid=000013,type=traffic,srcip=192.168.192.13,srcport=209,srcintf=port2,dstip=10.180.1.15,dstport=206,dstintf=port1,sessionid=123,status=warning,policyid=196,service=MYSQL,proto=6,duration=10,sentbyte=3910,rcvdbyte=175085,sentpkt=74,rcvdpkt=132";



我已经给出了正则表达式,将输入作为字符串,编译并匹配了模式。但我需要过滤掉并仅打印状态字段中包含“警告”的那些行。

当我在 hadoop 中运行此文件时,显示以下错误

Exception in thread "main" java.lang.NoSuchMethodException: tanalyser.TAnalyser.main([Ljava.lang.String;) at java.lang.Class.getMethod(Class.java:1655) at org.apache.hadoop.util.RunJar.main(RunJar.java:154)



我坚持下去。任何建议都会非常有帮助。谢谢你。

最佳答案

你能检查你的静态类声明代码吗?

公共(public)静态类 TMapper
扩展映射器{

似乎不对。你能把它放在一个单独的类中,而不是把它放在一个内部类中,看看是否有帮助?

关于java - 映射代码以过滤掉日志文件中每一行的某些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22876869/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com