狠狠撸

狠狠撸Share a Scribd company logo
Hadoop Streamingを使って
お好きな言語で
Map☆Reduce!
田地 将也
2016/05/19 尝罢资料
? 氏名:田地 将也(@otajisan)
? 所属:某中小SIer -> 某Web企業
? 役職:エンジニア兼スクラムマスター
? 趣味:酒、バンド、スノボー、モンハン
? よく使う言語:PHP, Perl, JavaScript
? 「アジャイルひよこくらぶ」というコミュニティの幹事メンバーやってます
? 最近ハマっていること!:スクラムによる現場改善、
Python x Hadoop Streaming x Deep Learning
自己紹介
皆さん、
Hadoop使ってますか?
Hadoopとは?
? Hadoopはデータを複数のサーバに分散し、
並列して処理するミドルウェア
? 要は、1台で捌き切れないような大量のデータを、
並列バッチ処理で効率よく捌けるソリューション
Hadoopって
? なんか難しそう
? なんとなく敬遠
? Javaかよ!
みたいな
そんなあなたに
Hadoop
Streaming!
Hadoop Streamingとは?
? HadoopのMap/Reduce処理は
基本的にJavaで書く
? Hadoopに標準で組み込まれている
「Hadoop Streaming」という機能を使うと、
Unixの標準入出力を受け付けることができる
つまり、
好きな言語で
Map/Reduceを書ける!
本LTでは、
Hadoop Streamingは
色んな言語でMap/Reduce書けるよ、
という様子をご紹介し、
Hadoop ??????- という感覚を持って
いただけることを目的とします。
今回取り扱う
サンプル(Hello World)
について
HadoopのHello World
? 「ワードカウント」が
Hadoopでのハロワにあたります
WordCout
aaa
bbb
ccc
aaa
bbb
ddd
bbb
ccc
ddd
入力ファイルたち
WordCout
aaa
bbb
ccc
aaa
bbb
ddd
bbb
ccc
ddd
Map Reduce
Map
Map
Reduce
Reduce
shuffle
ごにょごにょ
WordCout
aaa
bbb
ccc
aaa
bbb
ddd
bbb
ccc
ddd
Map Reduce
Map
Map
Reduce
Reduce
shuffle
aaa 2
bbb 3
ccc 2
ddd 2
WordCout
aaa
bbb
ccc
aaa
bbb
ddd
bbb
ccc
ddd
Map Reduce
Map
Map
Reduce
Reduce
shuffle
aaa 2
bbb 3
ccc 2
ddd 2
ワードの出現回数を
カウントする
WordCout
aaa
bbb
ccc
aaa
bbb
ddd
bbb
ccc
ddd
Map Reduce
Map
Map
Reduce
Reduce
shuffle
aaa 2
bbb 3
ccc 2
ddd 2
この、Map / Reduce処理を担う、「
Mapper」と「Reducer」を
色々な言語で書くことができます!
书いてみた
python
WordCountMapper.py
WordCountMapper.py
ここで標準入力を
受け付けて
WordCountMapper.py
ここで標準入力を
受け付けて
該当行の文字列
(例えばaaa)
と、
1という数値を出力する
WordCountReducer.py
WordCountReducer.py
ここでMapperからの入力を
受け付けて
WordCountReducer.py
ここでMapperからの入力を
受け付けて
渡ってきた
key: aaa value: 1
といった文字列を、
key毎にvalueを加算する
実行
コマンドが長?いので
シェルとか作るといいです
作成したMapper/Reducerは
このへんに指定
結果
ファイルが出力されて
結果
中身を見ると
結果
正常にワードカウント
されました!
php
WordCountMapper.php
WordCountMapper.php
ここで標準入力を
受け付けて
WordCountMapper.php
ここで標準入力を
受け付けて
該当行を出力
WordCountReducer.php
WordCountReducer.php
ここでMapperからの入力を
受け付けて
WordCountReducer.php
ここでMapperからの入力を
受け付けて
渡ってきた文字列毎に
単語数を加算
结果は一绪なので割爱
perl
WordCountMapper.pl
もはやMapperなんか要らん!
-mapperに/bin/catを
指定すればおk
WordCountReducer.pl
WordCountReducer.pl
ここでMapperからの入力を
受け付けて
WordCountReducer.pl
ここでMapperからの入力を
受け付けて
渡ってきた文字列毎に
単語数を加算
まとめ
? Hadoop Streamingを使えば、
色んな言語でMap/Reduceを書ける
(jsとかもできるらしい)
? お好きな言语で快适な贬补诲辞辞辫ライフを!

More Related Content

Similar to Hadoop Streamingを使って お好きな言語でMap☆Reduce! (20)

OSC2014 Tokyo/Spring Hadoop
OSC2014 Tokyo/Spring HadoopOSC2014 Tokyo/Spring Hadoop
OSC2014 Tokyo/Spring Hadoop
Shinichi YAMASHITA
?
Hadoop - OSC2013 .Enterprise
Hadoop - OSC2013 .EnterpriseHadoop - OSC2013 .Enterprise
Hadoop - OSC2013 .Enterprise
Shinichi YAMASHITA
?
贬补诲辞辞辫ことはし?め
贬补诲辞辞辫ことはし?め贬补诲辞辞辫ことはし?め
贬补诲辞辞辫ことはし?め
Katsunori Kanda
?
第1回贬补诲辞辞辫関西勉强会参加レポート
第1回贬补诲辞辞辫関西勉强会参加レポート第1回贬补诲辞辞辫関西勉强会参加レポート
第1回贬补诲辞辞辫関西勉强会参加レポート
You&I
?
1,000,000 foot view of Hadoop-like parallel data processing systems
1,000,000 foot view of Hadoop-like parallel data processing systems1,000,000 foot view of Hadoop-like parallel data processing systems
1,000,000 foot view of Hadoop-like parallel data processing systems
Hiroyuki Yamada
?
世界一简単な贬补诲辞辞辫の话
世界一简単な贬补诲辞辞辫の话世界一简単な贬补诲辞辞辫の话
世界一简単な贬补诲辞辞辫の话
Koichi Shimazaki
?
痴笔厂やめて贬别谤辞办耻に移行したお话
痴笔厂やめて贬别谤辞办耻に移行したお话痴笔厂やめて贬别谤辞办耻に移行したお话
痴笔厂やめて贬别谤辞办耻に移行したお话
Hiroyuki Hayashi
?
ゾウ使いへの第一歩
ゾウ使いへの第一歩ゾウ使いへの第一歩
ゾウ使いへの第一歩
Fumito Ito
?
A 2-3ゾウ使いへの第一歩 hadoop on azure 編
A 2-3ゾウ使いへの第一歩 hadoop on azure 編A 2-3ゾウ使いへの第一歩 hadoop on azure 編
A 2-3ゾウ使いへの第一歩 hadoop on azure 編
GoAzure
?
辞飞苍颁濒辞耻诲について
辞飞苍颁濒辞耻诲について辞飞苍颁濒辞耻诲について
辞飞苍颁濒辞耻诲について
Shinya Saita
?
笔贬笔プログラミングの滨笔惫6対応の実际
笔贬笔プログラミングの滨笔惫6対応の実际笔贬笔プログラミングの滨笔惫6対応の実际
笔贬笔プログラミングの滨笔惫6対応の実际
Tetsuji Koyama
?
Apache Cassandra 入門編
Apache Cassandra 入門編Apache Cassandra 入門編
Apache Cassandra 入門編
Kazutaka Tomita
?
20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark
Ryuji Tamagawa
?
FluentdやNorikraを使った テ?ータ集約基盤への取り組み紹介
FluentdやNorikraを使った テ?ータ集約基盤への取り組み紹介FluentdやNorikraを使った テ?ータ集約基盤への取り組み紹介
FluentdやNorikraを使った テ?ータ集約基盤への取り組み紹介
Recruit Technologies
?
Real World PHP in pixiv
Real World PHP in pixivReal World PHP in pixiv
Real World PHP in pixiv
Kenta USAMI
?
奥别产エンジニアが齿搁业界へ転职した话
奥别产エンジニアが齿搁业界へ転职した话奥别产エンジニアが齿搁业界へ転职した话
奥别产エンジニアが齿搁业界へ転职した话
Hiroshi Masuda
?
贬补诲辞辞辫事始め
贬补诲辞辞辫事始め贬补诲辞辞辫事始め
贬补诲辞辞辫事始め
You&I
?
プログラミング同好会とすごい合同勉强会
プログラミング同好会とすごい合同勉强会プログラミング同好会とすごい合同勉强会
プログラミング同好会とすごい合同勉强会
nemumu
?
职场て?使用している翱厂厂の开発に参加してみた!
职场て?使用している翱厂厂の开発に参加してみた!职场て?使用している翱厂厂の开発に参加してみた!
职场て?使用している翱厂厂の开発に参加してみた!
infinite_loop
?
Pandas / Dask / Vaex
Pandas / Dask / VaexPandas / Dask / Vaex
Pandas / Dask / Vaex
hide ogawa
?
贬补诲辞辞辫ことはし?め
贬补诲辞辞辫ことはし?め贬补诲辞辞辫ことはし?め
贬补诲辞辞辫ことはし?め
Katsunori Kanda
?
第1回贬补诲辞辞辫関西勉强会参加レポート
第1回贬补诲辞辞辫関西勉强会参加レポート第1回贬补诲辞辞辫関西勉强会参加レポート
第1回贬补诲辞辞辫関西勉强会参加レポート
You&I
?
1,000,000 foot view of Hadoop-like parallel data processing systems
1,000,000 foot view of Hadoop-like parallel data processing systems1,000,000 foot view of Hadoop-like parallel data processing systems
1,000,000 foot view of Hadoop-like parallel data processing systems
Hiroyuki Yamada
?
世界一简単な贬补诲辞辞辫の话
世界一简単な贬补诲辞辞辫の话世界一简単な贬补诲辞辞辫の话
世界一简単な贬补诲辞辞辫の话
Koichi Shimazaki
?
痴笔厂やめて贬别谤辞办耻に移行したお话
痴笔厂やめて贬别谤辞办耻に移行したお话痴笔厂やめて贬别谤辞办耻に移行したお话
痴笔厂やめて贬别谤辞办耻に移行したお话
Hiroyuki Hayashi
?
ゾウ使いへの第一歩
ゾウ使いへの第一歩ゾウ使いへの第一歩
ゾウ使いへの第一歩
Fumito Ito
?
A 2-3ゾウ使いへの第一歩 hadoop on azure 編
A 2-3ゾウ使いへの第一歩 hadoop on azure 編A 2-3ゾウ使いへの第一歩 hadoop on azure 編
A 2-3ゾウ使いへの第一歩 hadoop on azure 編
GoAzure
?
辞飞苍颁濒辞耻诲について
辞飞苍颁濒辞耻诲について辞飞苍颁濒辞耻诲について
辞飞苍颁濒辞耻诲について
Shinya Saita
?
笔贬笔プログラミングの滨笔惫6対応の実际
笔贬笔プログラミングの滨笔惫6対応の実际笔贬笔プログラミングの滨笔惫6対応の実际
笔贬笔プログラミングの滨笔惫6対応の実际
Tetsuji Koyama
?
20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark
Ryuji Tamagawa
?
FluentdやNorikraを使った テ?ータ集約基盤への取り組み紹介
FluentdやNorikraを使った テ?ータ集約基盤への取り組み紹介FluentdやNorikraを使った テ?ータ集約基盤への取り組み紹介
FluentdやNorikraを使った テ?ータ集約基盤への取り組み紹介
Recruit Technologies
?
Real World PHP in pixiv
Real World PHP in pixivReal World PHP in pixiv
Real World PHP in pixiv
Kenta USAMI
?
奥别产エンジニアが齿搁业界へ転职した话
奥别产エンジニアが齿搁业界へ転职した话奥别产エンジニアが齿搁业界へ転职した话
奥别产エンジニアが齿搁业界へ転职した话
Hiroshi Masuda
?
贬补诲辞辞辫事始め
贬补诲辞辞辫事始め贬补诲辞辞辫事始め
贬补诲辞辞辫事始め
You&I
?
プログラミング同好会とすごい合同勉强会
プログラミング同好会とすごい合同勉强会プログラミング同好会とすごい合同勉强会
プログラミング同好会とすごい合同勉强会
nemumu
?
职场て?使用している翱厂厂の开発に参加してみた!
职场て?使用している翱厂厂の开発に参加してみた!职场て?使用している翱厂厂の开発に参加してみた!
职场て?使用している翱厂厂の开発に参加してみた!
infinite_loop
?
Pandas / Dask / Vaex
Pandas / Dask / VaexPandas / Dask / Vaex
Pandas / Dask / Vaex
hide ogawa
?

Hadoop Streamingを使って お好きな言語でMap☆Reduce!