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

Вещи были сделаны:


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

http://www.cloudera.com/content/cloudera/en/documentation/cdh4/v4-2-0/CDH4-Installation-Guide/cdh4ig_topic_4_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 DFA S Seq: 0x6EEE4A6B Ack: 0x6DF6015B Win: 0x7210 Tc: 24 TCP Options (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)

Благодарю.

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.
Другие вопросы по тегам