Количество пакетов в hadoop (с Mapreduce)

Дела были сделаны:


Установка Hadoop по следующей ссылке:

http:/ /www.cloudera.com/content/cloudera/en/documentation/cdh4/v4-2-0/CDH4-Installation-Guide/cdh4ig_topic

hdfs dfs -put <localsrc> ... <dst>
4.html


Установил Hping3 для генерации флуд-запросов, используя:

sudo hping3 -c 10000 -d 120 -S -w 64 -p 8000 --flood --rand-source 192.168.1.12

Установленный snort для регистрации запросов для вышеуказанного, используя:

sudo snort -ved -h 192.168.1.0/24 -l .

При этом создается файл журнала snort.log.1427021231.

с которым я могу прочитать это

sudo snort -r snort.log.1427021231

который дает вывод формы:

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

03/22-16:17:14.259633 192.168.1.12:8000 -> 117.247.194.105:46639 TCP TTL:64 TOS:0x0 ID:0 IpLen:20 DgmLen:44 DF AS Seq: 0x6EEE4A6B Ack: 0x6DF6015B Win: 0x7210 TcpLen: 24 Параметры TCP (1) => MSS: 1460 =+=+=+=+=+=+=+=+=+=+=+=+ =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+


я использовал

hdfs dfs -put <localsrc> ... <dst>

чтобы скопировать этот файл журнала в HDFS.

Теперь, Thnigs, мне нужна помощь:

Как подсчитать общее количество исходного IP-адреса, целевого IP-адреса, адреса порта, протокола, метки времени в файле журнала.

(Должен ли я писать свою собственную программу уменьшения карты? Или для этого есть библиотека.)


Я также нашел

https://github.com/ssallys/p3

Но запустить не смог. просмотрел содержимое файла JAR, но не смог его запустить.

ratan@lenovo:~/Desktop$ hadoop jar ./p3lite.jar p3.pcap.examples.PacketCount

Exception in thread "main" java.lang.ClassNotFoundException:        nflow.runner.Runner
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:274)
at org.apache.hadoop.util.RunJar.main(RunJar.java:201)

Спасибо.


person Ratan Kumar    schedule 30.03.2015    source источник


Ответы (1)


После быстрого поиска оказалось, что для этого вам может понадобиться специальное задание MapReduce.

Алгоритм будет выглядеть примерно как следующий псевдокод:

Parse the file line by line (or parse every n lines if logs are more than one line long).

in the mapper, use regex to figure out if something is a source IP, destination IP etc.

output these with key value structure of <Type, count> 
    type is the type of text that was matched (ex. source IP)
    count is the number of times it was matched in the record

have reducer sum all of the values from the mappers, and get global totals for each type of information you want

write to file in desired format.
person Davis Broda    schedule 31.03.2015