Submit Search
Rubyによるお手軽分散処理
11 likes
•
3,953 views
M
maebashi
1 of 25
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
More Related Content
What's hot
(20)
PPTX
Persistence on Azure - Microsoft Azure の永続化
Takekazu Omi
PDF
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
y_taka_23
PDF
GKEで半年運用してみた
Katsutoshi Nagaoka
PDF
OpsWorks aws-cli#11
Yuta Shimada
PPT
Ruby on rails on hudsonの活用事例
Maki Toshio
PDF
BOSHで始めるImmutable Infrastructure
i_yudai
PPTX
[社内勉強会]ELBとALBと数万スパイク負荷テスト
Takahiro Moteki
PDF
フィードフォースと AWS と私
a know
PDF
Docker, Kubernetes and OpenShift v3
Emma Haruka Iwao
PDF
introduction of WalB
MITSUNARI Shigeo
PDF
AWSとGCPを使用したインフラ環境
Katsutoshi Nagaoka
PPTX
クラウドデザイン パターンに見るクラウドファーストなアプリケーション設計 Data Management編
Takekazu Omi
PDF
ECS-CLI in Action
Ryo Nakamaru
PDF
OpenStack ComputingはHyper-Convergedの夢を見るのか?
Naoto Gohko
PPTX
分散ストレージ技術Cephの最新情報
Emma Haruka Iwao
PDF
kubernetes(GKE)環境におけるdatadog利用
Koichi HARUNA
PDF
OpenStack Object Storage; Usage
irix_jp
PDF
Aws privte20110406 arai
awsadovantageseminar
PDF
OSC2012 Nagoya - OpenStack - Storage System; Overview
irix_jp
PDF
OpenStack Object Storage; Overview
irix_jp
Persistence on Azure - Microsoft Azure の永続化
Takekazu Omi
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
y_taka_23
GKEで半年運用してみた
Katsutoshi Nagaoka
OpsWorks aws-cli#11
Yuta Shimada
Ruby on rails on hudsonの活用事例
Maki Toshio
BOSHで始めるImmutable Infrastructure
i_yudai
[社内勉強会]ELBとALBと数万スパイク負荷テスト
Takahiro Moteki
フィードフォースと AWS と私
a know
Docker, Kubernetes and OpenShift v3
Emma Haruka Iwao
introduction of WalB
MITSUNARI Shigeo
AWSとGCPを使用したインフラ環境
Katsutoshi Nagaoka
クラウドデザイン パターンに見るクラウドファーストなアプリケーション設計 Data Management編
Takekazu Omi
ECS-CLI in Action
Ryo Nakamaru
OpenStack ComputingはHyper-Convergedの夢を見るのか?
Naoto Gohko
分散ストレージ技術Cephの最新情報
Emma Haruka Iwao
kubernetes(GKE)環境におけるdatadog利用
Koichi HARUNA
OpenStack Object Storage; Usage
irix_jp
Aws privte20110406 arai
awsadovantageseminar
OSC2012 Nagoya - OpenStack - Storage System; Overview
irix_jp
OpenStack Object Storage; Overview
irix_jp
Similar to Rubyによるお手軽分散処理
(20)
PDF
MapReduce解説
Shunsuke Aihara
PDF
WDD2012_SC-004
Kuninobu SaSaki
PDF
20130927 adstir emr
AdStir
PDF
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
Developers Summit
PPTX
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Kenta Suzuki
PDF
Jenkinsとhadoopを利用した継続的データ解析環境の構築
VOYAGE GROUP
PPT
Hadoop ~Yahoo! JAPANの活用について~
Yahoo!デベロッパーネットワーク
PDF
OSC2012 OSC.DB Hadoop
Shinichi YAMASHITA
PDF
LXC入門 - Osc2011 nagoya
Masahide Yamamoto
PDF
Hadoop - OSC2010 Tokyo/Spring
Shinichi YAMASHITA
PDF
ソーシャルゲームのEMR活用事例
知教 本間
PDF
Hadoopを用いた大規模ログ解析
shuichi iida
PDF
私がMuninに恋する理由 - インフラエンジニアでも監視がしたい! -
Masahito Zembutsu
PDF
Muninではじめる実践★リソース監視 -俺のサーバがこんなに重いはずがない、を乗り切るために-
Masahito Zembutsu
PDF
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
Developers Summit
PDF
Hadoop事始め
You&I
PDF
OSC2011 Tokyo/Spring Hadoop入門
Shinichi YAMASHITA
PDF
Guide to Cassandra for Production Deployments
smdkk
PDF
第12回CloudStackユーザ会_ApacheCloudStack最新情報
Midori Oge
PDF
TokyoWebminig カジュアルなHadoop
Teruo Kawasaki
MapReduce解説
Shunsuke Aihara
WDD2012_SC-004
Kuninobu SaSaki
20130927 adstir emr
AdStir
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
Developers Summit
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Kenta Suzuki
Jenkinsとhadoopを利用した継続的データ解析環境の構築
VOYAGE GROUP
Hadoop ~Yahoo! JAPANの活用について~
Yahoo!デベロッパーネットワーク
OSC2012 OSC.DB Hadoop
Shinichi YAMASHITA
LXC入門 - Osc2011 nagoya
Masahide Yamamoto
Hadoop - OSC2010 Tokyo/Spring
Shinichi YAMASHITA
ソーシャルゲームのEMR活用事例
知教 本間
Hadoopを用いた大規模ログ解析
shuichi iida
私がMuninに恋する理由 - インフラエンジニアでも監視がしたい! -
Masahito Zembutsu
Muninではじめる実践★リソース監視 -俺のサーバがこんなに重いはずがない、を乗り切るために-
Masahito Zembutsu
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
Developers Summit
Hadoop事始め
You&I
OSC2011 Tokyo/Spring Hadoop入門
Shinichi YAMASHITA
Guide to Cassandra for Production Deployments
smdkk
第12回CloudStackユーザ会_ApacheCloudStack最新情報
Midori Oge
TokyoWebminig カジュアルなHadoop
Teruo Kawasaki
Ad
Rubyによるお手軽分散処理
1.
Ruby によるお手軽分散処理
maebashi @ IIJ 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 1
2.
分散処理って? • 複数のコンピュータノードで、同時並行的に処
理を実行してスループットを上げる • 分散処理といえば Hadoop 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 2
3.
本日の話 • Ruby で
Hadoop MapReduce みたいなものを つくりました 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 3
4.
本日の話
これ Hadoop http://www.gluster.org/ 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 4
5.
分散処理フレームワーク
MapReduce とは? mapとreduceの2段階にわけてデータ処理 ① map – 抽出・変換 ② reduce – 集約・集計 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 5
6.
分散ファイルシステム
GlusterFSとは? FUSEでマウントして 普通のファイルシステム として見える 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 6
7.
ファイル名に応じて分散
clientからは、ひとつの ファイルシステムとして見える (Distributed Volume の場合) 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 7
8.
pmux とは? (1) •
pipeline mul>plexer に由来 • hMps://github.com/iij/pmux • hMps://github.com/iij/pmux/wiki 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 8
9.
pmux とは? (2) •
標準入出力を介して MapReduce するための コマンドラインツール(Hadoop Streaming相当) 例: 分散grep $ pmux --mapper="grep PATTERN" *.log GlusterFS上にある ファイル群 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 9
10.
動作原理 • 例えば次のようなコマンド
$ grep PATTERN *.log • *.log が複数ノードに分散して配置されて いれば、各ノードで並列に処理できる 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 10
11.
ファイルがあるノードで処理を実行 2013/01
Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 11
12.
結果を集める 2013/01
Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 12
13.
実際はもう少し複雑 2013/01
Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 13
14.
使用例: ステータスコード集計
Apache ログから特定パターンの行だけ抜き出し、 そのステータスコードを集計 $ pmux --mapper='grep PAT |cut -d" " -f 9’ --reducer='sort|uniq -c’ /mnt/glusterfs/*.log 176331 200 106360 206 809 400 21852 403 533 404 27 406 805 416 25 500 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 14
15.
使用例: word count
map.rb #! /usr/bin/ruby -an $F.each {|f| print "#{f}t1n"} reduce.rb #! /usr/bin/ruby -an BEGIN {$c = Hash.new 0} $c[$F[0]] += $F[1].to_i END {$c.each {|k, v| print "#{k} #{v}n"}} コマンドライン $ pmux --mapper=map.rb --reducer=reduce.rb --file=map.rb –-file=reduce.rb /mnt/glusterfs/*.txt 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 15
16.
コンセプト • なるべく既にある概念を用いて分散処理
– 普通のファイルシステムに見える GlusterFS – Unix のパイプの思想とフィルタコマンド群 – ssh によるリモートコマンド実行 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 16
17.
内部構造 • シングルスレッド •
イベントドリブン方式 • Net::SSH で ssh セッションを同時に複数張り、 その上に MessagePack-‐RPC を通す 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 17
18.
独立した二つのイベントループ 2013/01
Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 18
19.
Fiber で結合 2013/01
Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 19
20.
ベンチマークテスト
こんなかんじのtcpdumpのlogの 14:00:00.416011 IP 21.44.60.29.hMp > 170.73.162.175.58546: . 3523999974:3524001422(1448) ack 3401170238 win 1716 <nop,nop,>mestamp 1070614671 1955062367> 各ファイルで一番出現数の多かった IPアドレスを抽出 8344ファイル、1ファイルあたり約50万行、計約40億行 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 20
21.
実行するmapコマンド --mapper='egrep –o "[0-9]+.[0-9]+.[0-9]+.[0-9]+"| sort|uniq
-c|sort -nr|head -1' 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 21
22.
結果
pmuxを使わずに1台で実行 8時間49分6秒 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 22
23.
結果
pmuxを使わずに1台で実行 8時間49分6秒 pmuxを使ってノード60台で実行 1分45秒 約300倍 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 23
24.
なぜ60台で300倍? • 1台あたり8コアのCPUを使っているから •
ならば480倍になるのでは? – 諸々のオーバーヘッドでそこまでいかない – ファイルの実体位置を探すのに時間がかかる • 今回のケース 8344ファイルで約20秒 2013/01 Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 24
25.
2013/01
Copyright (c) 2013 Internet Ini>a>ve Japan Inc. 25
Download