SlideShare uma empresa Scribd logo
1 de 17
Apache Spark+Zeppelinで
アドホックなネットワーク解析
Tetsuhiro Sato
自己紹介
 佐藤 哲大(tetz)
 某ネットワークベンダで、SDN(っぽい)仕事をして
ます
 ネットワークプログラマビリティ勉強会の企画、運営
をしてます
http://network-programmability.connpass.com/
2
全体像
3
Netflow
コレクタ
(自作)
 Apache SparkとApache Zeppelinでデータ
アナリストちっくにアドホックにネットワークトラ
フィックを解析するっていう、ゆるふわネタ
既成可視化ツールとの違い
 さまざまな観点からアドホックに可視化できる
 期間
 集約(インターフェース、ユーザ、サーバ、アプリケー
ション)
 上記集約の組み合わせ
 グラフ形式(棒、エリア、円、離散)
 とはいえ、ネットワークトラフィックの見たい観点
なんて、そんな多様ではないかも。。。
4
自作Netflowコレクタ
5
flow record FLOW-RECORD
match ipv4 protocol
match ipv4 source address
match ipv4 destination address
match transport source-port
match transport destination-port
match application name
collect counter bytes
collect counter packets
collect timestamp absolute first
collect timestamp absolute last
テンプレートフローセットから
データフローセットを動的に解析し、
適切なフィールド名になる
https://github.com/tetsusat/fnfc
ルータの設定
ちなみに
 fluentd-plugin-netflow + MongoDB Output
Pluginでも大体同じことができます
6
fluentd-plugin-
netflow
*作成されるレコードの構成およびフィールド名が若干違うので、適宜読み替え
る必要があります
Stratio Spark-MongoDB
 MongoDB上のコレクションに対してSpark SQLの処理
を可能にするライブラリ
7
https://github.com/Stratio/Spark-MongoDB
• MongoDBのnetflowデータベースのrecordsコレクションをSpark DataFrame
へ読み込み
Apache Spark + Apache Zeppelin 1/6
• MongoDBから読み込んだデータフレーム
(org.apache.spark.sql.DataFrame)のスキーマ
Apache Spark + Apache Zeppelin 2/6
• アプリケーション毎のバイト数
Apache Spark + Apache Zeppelin 3/6
%sql
SELECT record.application_name, sum(record.client_bytes) bytes FROM records GROUP BY record.application_name
• アプリケーション毎のバイト数(WHERE句をパラメータ化)
Apache Spark + Apache Zeppelin 4/6
%sql
SELECT record.application_name, sum(record.client_bytes) bytes FROM records
WHERE record.ipv4_src_addr="${src}" AND record.ipv4_dst_addr="${dst}"
GROUP BY record.application_name
• 問題点
• 通信のタイミングは、セッション毎に様々なので、そのままでは集約できない
• 集約されない結果、グラフ描画ライブラリの処理しきれないほどのレコード
時系列データをグラフ化する際の課題
• 解決策
• セッションのタイミングを特定間隔のタイムスロットに割り当てる
• 30分毎に集約
タイムスロットへ割り当て
timestamp bytes packets
2016-04-01 00:11:11 1111 111
2016-04-01 00:22:22 2222 222
2016-04-01 00:33:33 3333 333
2016-04-01 00:44:44 4444 444
2016-04-01 00:55:55 5555 555
2016-04-01 01:07:06 6666 666
元データ
1回目の
SQLクエリー
の結果
2回目の
SQLクエリー
の結果
Timeslot列
の追加
Timeslot列で
Bytes&Packet列
を集約
timestamp bytes packets timeslot
2016-04-01 00:11:11 1111 111 2016-04-01 00:00:00
2016-04-01 00:22:22 2222 222 2016-04-01 00:00:00
2016-04-01 00:33:33 3333 333 2016-04-01 00:30:00
2016-04-01 00:44:44 4444 444 2016-04-01 00:30:00
2016-04-01 00:55:55 5555 555 2016-04-01 00:30:00
2016-04-01 01:07:06 6666 666 2016-04-01 01:00:00
bytes packets timeslot
3333 333 2016-04-01 00:00:00
13332 1332 2016-04-01 00:30:00
6666 666 2016-04-01 01:00:00
• 特定の1日で30分毎のバイト数を集計
Apache Spark + Apache Zeppelin 5/6
%sql
SELECT from_unixtime(m.timeslot*(30*60)) dtime, sum(m.bytes) bytes
FROM (
SELECT record.client_bytes bytes, floor(unix_timestamp(record.absolute_first)/(30*60)) timeslot
FROM records
WHERE record.absolute_first >= "2016-03-24" AND record.absolute_first < "2016-03-25“
) AS m
GROUP BY m.timeslot ORDER BY m.timeslot
• アプリケーション毎に30分毎に集約
タイムスロットへ割り当て(2)
timestamp bytes packets app
2016-04-01 00:11:11 1111 111 http
2016-04-01 00:22:22 2222 222 http
2016-04-01 00:33:33 3333 333 ftp
2016-04-01 00:44:44 4444 444 tftp
2016-04-01 00:55:55 5555 555 http
2016-04-01 01:07:06 6666 666 ftp
timestamp bytes packets app timeslot
2016-04-01 00:11:11 1111 111 http 2016-04-01 00:00:00
2016-04-01 00:22:22 2222 222 http 2016-04-01 00:00:00
2016-04-01 00:33:33 3333 333 ftp 2016-04-01 00:30:00
2016-04-01 00:44:44 4444 444 tftp 2016-04-01 00:30:00
2016-04-01 00:55:55 5555 555 ftp 2016-04-01 00:30:00
2016-04-01 01:07:06 6666 666 http 2016-04-01 01:00:00
bytes packets app timeslot
3333 333 http 2016-04-01 00:00:00
8888 888 ftp 2016-04-01 00:30:00
4444 444 tftp 2016-04-01 00:30:00
6666 666 http 2016-04-01 01:00:00
元データ
1回目の
SQLクエリー
の結果
2回目の
SQLクエリー
の結果
Timeslot列
の追加
Timeslot&App列で
Bytes&Packet列
を集約
• 特定の1日で30分毎のバイト数を集計(アプリケーション毎の集約)
Apache Spark + Apache Zeppelin 6/6
%sql
SELECT from_unixtime(m.timeslot*(30*60)) dtime, m.app, sum(m.bytes) bytes
FROM (
SELECT record.client_bytes bytes, record.application_name app, floor(unix_timestamp(record.absolute_first)/(30*60)) timeslot
FROM records
WHERE record.absolute_first >= "2016-03-24" AND record.absolute_first < "2016-03-25“
) AS m
GROUP BY m.timeslot, m.app ORDER BY m.timeslot
おわり
ご清聴、ありがとうございました
m(_ _)m
17

Mais conteúdo relacionado

Mais procurados

RDOで体験! OpenStackの基本機能
RDOで体験! OpenStackの基本機能RDOで体験! OpenStackの基本機能
RDOで体験! OpenStackの基本機能
Etsuji Nakai
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
Etsuji Nakai
 
Hadoop on eucalyptus_20110221
Hadoop on eucalyptus_20110221Hadoop on eucalyptus_20110221
Hadoop on eucalyptus_20110221
Etsuji Nakai
 

Mais procurados (20)

Chainer と Microsoft Azure 広がる応用 (Chainer Meetup #5)
Chainer と Microsoft Azure 広がる応用 (Chainer Meetup #5)Chainer と Microsoft Azure 広がる応用 (Chainer Meetup #5)
Chainer と Microsoft Azure 広がる応用 (Chainer Meetup #5)
 
How to deploy & operate OpenStack Production
How to deploy & operate OpenStack ProductionHow to deploy & operate OpenStack Production
How to deploy & operate OpenStack Production
 
分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要
 
RDOで体験! OpenStackの基本機能
RDOで体験! OpenStackの基本機能RDOで体験! OpenStackの基本機能
RDOで体験! OpenStackの基本機能
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
 
20120721_ishkawa
20120721_ishkawa20120721_ishkawa
20120721_ishkawa
 
OpenStack Kuryrについて
OpenStack KuryrについてOpenStack Kuryrについて
OpenStack Kuryrについて
 
Open Source Study Session #3
Open Source Study Session #3Open Source Study Session #3
Open Source Study Session #3
 
MUGT01 - mesos.DCOS demo
MUGT01 - mesos.DCOS demoMUGT01 - mesos.DCOS demo
MUGT01 - mesos.DCOS demo
 
【インフラ寺子屋】Cisco/Catalyst実機ブートキャンプ資料【チラ見せ】
【インフラ寺子屋】Cisco/Catalyst実機ブートキャンプ資料【チラ見せ】【インフラ寺子屋】Cisco/Catalyst実機ブートキャンプ資料【チラ見せ】
【インフラ寺子屋】Cisco/Catalyst実機ブートキャンプ資料【チラ見せ】
 
OpenStack Congress Deep Dive
OpenStack Congress Deep DiveOpenStack Congress Deep Dive
OpenStack Congress Deep Dive
 
ソフトウェア・デファインドが再定義するストレージ -- OpenStackデファクト標準ストレージCeph - OpenStack最新情報セミナー 201...
ソフトウェア・デファインドが再定義するストレージ -- OpenStackデファクト標準ストレージCeph - OpenStack最新情報セミナー 201...ソフトウェア・デファインドが再定義するストレージ -- OpenStackデファクト標準ストレージCeph - OpenStack最新情報セミナー 201...
ソフトウェア・デファインドが再定義するストレージ -- OpenStackデファクト標準ストレージCeph - OpenStack最新情報セミナー 201...
 
OpenStack Updates
OpenStack UpdatesOpenStack Updates
OpenStack Updates
 
Hadoop on eucalyptus_20110221
Hadoop on eucalyptus_20110221Hadoop on eucalyptus_20110221
Hadoop on eucalyptus_20110221
 
【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月)
【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月)【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月)
【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月)
 
Monitoring Intelligence
Monitoring IntelligenceMonitoring Intelligence
Monitoring Intelligence
 
空回りのクラウド基盤導入
空回りのクラウド基盤導入空回りのクラウド基盤導入
空回りのクラウド基盤導入
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
 
Pakeana 06
Pakeana 06Pakeana 06
Pakeana 06
 

Destaque

Destaque (20)

Contiv
ContivContiv
Contiv
 
Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続
 
CDP Indicator
CDP IndicatorCDP Indicator
CDP Indicator
 
自動化と画面を考えてみました
自動化と画面を考えてみました自動化と画面を考えてみました
自動化と画面を考えてみました
 
ラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaSラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaS
 
物理ネットワーク受け入れテストの自動化を考える
物理ネットワーク受け入れテストの自動化を考える物理ネットワーク受け入れテストの自動化を考える
物理ネットワーク受け入れテストの自動化を考える
 
ネットワークプログラマビリティ勉強会
ネットワークプログラマビリティ勉強会ネットワークプログラマビリティ勉強会
ネットワークプログラマビリティ勉強会
 
API イントロダクション APIC-EM, Prime Infrastructure & CMX
API イントロダクション APIC-EM, Prime Infrastructure & CMXAPI イントロダクション APIC-EM, Prime Infrastructure & CMX
API イントロダクション APIC-EM, Prime Infrastructure & CMX
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
 
いんふらフレンズ
いんふらフレンズいんふらフレンズ
いんふらフレンズ
 
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみたDockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみた
 
Ansible npstudy-shtsuchi
Ansible npstudy-shtsuchiAnsible npstudy-shtsuchi
Ansible npstudy-shtsuchi
 
Telemetry事始め
Telemetry事始めTelemetry事始め
Telemetry事始め
 
Ansible x napalm x nso 解説・比較パネルディスカッション nso
Ansible x napalm x nso 解説・比較パネルディスカッション nsoAnsible x napalm x nso 解説・比較パネルディスカッション nso
Ansible x napalm x nso 解説・比較パネルディスカッション nso
 
NetOpsCoding#5 introduction
NetOpsCoding#5 introductionNetOpsCoding#5 introduction
NetOpsCoding#5 introduction
 
ネットワーク運用とIoT
ネットワーク運用とIoTネットワーク運用とIoT
ネットワーク運用とIoT
 
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
 
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
 
パケットキャプチャでインフラ主導のデバッグ環境を作る
パケットキャプチャでインフラ主導のデバッグ環境を作るパケットキャプチャでインフラ主導のデバッグ環境を作る
パケットキャプチャでインフラ主導のデバッグ環境を作る
 

Semelhante a Apache Spark+Zeppelinでアドホックなネットワーク解析

Semelhante a Apache Spark+Zeppelinでアドホックなネットワーク解析 (20)

Introduction new features in Spark 3.0
Introduction new features in Spark 3.0Introduction new features in Spark 3.0
Introduction new features in Spark 3.0
 
Bluemixを使ったTwitter分析
Bluemixを使ったTwitter分析Bluemixを使ったTwitter分析
Bluemixを使ったTwitter分析
 
Apache Sparkを使った感情極性分析
Apache Sparkを使った感情極性分析Apache Sparkを使った感情極性分析
Apache Sparkを使った感情極性分析
 
Apache Spark on Azure
Apache Spark on AzureApache Spark on Azure
Apache Spark on Azure
 
Developers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeDevelopers.IO 2019 Effective Datalake
Developers.IO 2019 Effective Datalake
 
OpenStackをさらに”使う”技術 概要と基礎操作
OpenStackをさらに”使う”技術 概要と基礎操作OpenStackをさらに”使う”技術 概要と基礎操作
OpenStackをさらに”使う”技術 概要と基礎操作
 
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点
 
Spark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについてSpark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについて
 
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料
 
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
Spark Structured StreamingでKafkaクラスタのデータをお手軽活用
 
Spark Analytics - スケーラブルな分散処理
Spark Analytics - スケーラブルな分散処理Spark Analytics - スケーラブルな分散処理
Spark Analytics - スケーラブルな分散処理
 
Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例
 
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
 
ログブラウズ、解析サービスSumologicの紹介
ログブラウズ、解析サービスSumologicの紹介ログブラウズ、解析サービスSumologicの紹介
ログブラウズ、解析サービスSumologicの紹介
 
Spanner移行について本気出して考えてみた
Spanner移行について本気出して考えてみたSpanner移行について本気出して考えてみた
Spanner移行について本気出して考えてみた
 
OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!
 
OSC2012-KANSAI@Kyoto JOSUG
OSC2012-KANSAI@Kyoto JOSUGOSC2012-KANSAI@Kyoto JOSUG
OSC2012-KANSAI@Kyoto JOSUG
 
[Oracle big data jam session #1] Apache Spark ことはじめ
[Oracle big data jam session #1] Apache Spark ことはじめ[Oracle big data jam session #1] Apache Spark ことはじめ
[Oracle big data jam session #1] Apache Spark ことはじめ
 
[Black Belt Online Seminar] AWS上でのログ管理
[Black Belt Online Seminar] AWS上でのログ管理[Black Belt Online Seminar] AWS上でのログ管理
[Black Belt Online Seminar] AWS上でのログ管理
 
自作仮想化基盤 「n0stack」の紹介
自作仮想化基盤 「n0stack」の紹介自作仮想化基盤 「n0stack」の紹介
自作仮想化基盤 「n0stack」の紹介
 

Mais de npsg (6)

Webアプリケーションによる電源管理システムのご紹介
Webアプリケーションによる電源管理システムのご紹介Webアプリケーションによる電源管理システムのご紹介
Webアプリケーションによる電源管理システムのご紹介
 
「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態
 
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
 
ネットワークプログラマビリティ勉強会 目的と方針(暫定)
ネットワークプログラマビリティ勉強会 目的と方針(暫定)ネットワークプログラマビリティ勉強会 目的と方針(暫定)
ネットワークプログラマビリティ勉強会 目的と方針(暫定)
 
IxVM on CML
IxVM on CMLIxVM on CML
IxVM on CML
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 

Último

Último (11)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 

Apache Spark+Zeppelinでアドホックなネットワーク解析

Notas do Editor

  1. 擬似データ生成コード var app = [ {id:'3:21', name: 'ftp'}, {id:'3:25', name: 'smtp'}, {id:'3:69', name: 'tftp'}, {id:'3:80', name: 'http'}, {id:'3:', name: 'secure-http'}, {id:'13:1', name: 'unknown'}, {id:'13:41', name: 'syslog'}, {id:'13:49', name: 'exchange'}, {id:'13:49', name: 'rtp'}, {id:'13:479', name: 'ping'}, {id:'13:497', name: 'ms-update'} ] for (var i = 0; i < 100000; i++) { var src_ip = 3221225985 + Math.floor( Math.random() * 100 ); // 192.0.2.1-100 var dst_ip = 3221226085 + Math.floor( Math.random() * 100 ); // 192.0.2.101-200 var index = Math.floor( Math.random() * 11 ) var app_id = app[index]["id"] var app_name = app[index]["name"] var pkts = 1 + Math.floor( Math.random() * 100 ); // 1-100 var byte = pkts * (64 + Math.floor( Math.random() * 1437 )); // 64-1500 var date = new Date(); date.setTime(date.getTime() - Math.floor( Math.random() * 7 * 24 * 3600 * 1000 )) db.records.save( { template_id: 256, "exporter" : "192.0.2.1", record: {ipv4_src_addr: src_ip, ipv4_dst_addr: dst_ip, client_bytes: byte, client_pkts: pkts, application_id: app_id, application_name: app_name, absolute_first: date, absolute_last: date}}); }