Enviar búsqueda
Cargar
今さら聞けないHadoop勉強会第2回 セントラルソフト株式会社(20120228)
•
3 recomendaciones
•
1,417 vistas
Y
YoheiOkuyama
Seguir
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 51
Descargar ahora
Descargar para leer sin conexión
Recomendados
文法圧縮入門:超高速テキスト処理のためのデータ圧縮(NLP2014チュートリアル)
文法圧縮入門:超高速テキスト処理のためのデータ圧縮(NLP2014チュートリアル)
Shirou Maruyama
ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
Data-Intensive Text Processing with MapReduce ch4
Data-Intensive Text Processing with MapReduce ch4
Sho Shimauchi
ディープラーニングフレームワーク とChainerの実装
ディープラーニングフレームワーク とChainerの実装
Ryosuke Okuta
音声認識と深層学習
音声認識と深層学習
Preferred Networks
comp_pfiseminar
comp_pfiseminar
Preferred Networks
Ruby 3のキーワード引数について考える
Ruby 3のキーワード引数について考える
mametter
20180830 implement dqn_platinum_data_meetup_vol1
20180830 implement dqn_platinum_data_meetup_vol1
Keisuke Nakata
Recomendados
文法圧縮入門:超高速テキスト処理のためのデータ圧縮(NLP2014チュートリアル)
文法圧縮入門:超高速テキスト処理のためのデータ圧縮(NLP2014チュートリアル)
Shirou Maruyama
ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
Data-Intensive Text Processing with MapReduce ch4
Data-Intensive Text Processing with MapReduce ch4
Sho Shimauchi
ディープラーニングフレームワーク とChainerの実装
ディープラーニングフレームワーク とChainerの実装
Ryosuke Okuta
音声認識と深層学習
音声認識と深層学習
Preferred Networks
comp_pfiseminar
comp_pfiseminar
Preferred Networks
Ruby 3のキーワード引数について考える
Ruby 3のキーワード引数について考える
mametter
20180830 implement dqn_platinum_data_meetup_vol1
20180830 implement dqn_platinum_data_meetup_vol1
Keisuke Nakata
[DLHacks]Fast and Accurate Entity Recognition with Iterated Dilated Convoluti...
[DLHacks]Fast and Accurate Entity Recognition with Iterated Dilated Convoluti...
Deep Learning JP
CuPy解説
CuPy解説
Ryosuke Okuta
130323 slide all
130323 slide all
ikea0064
Emcjp item33,34
Emcjp item33,34
MITSUNARI Shigeo
Lucene terms extraction
Lucene terms extraction
Koji Sekiguchi
PRML 4.1.6-4.2.2
PRML 4.1.6-4.2.2
kazunori sakai
あなたのScalaを爆速にする7つの方法(日本語版)
あなたのScalaを爆速にする7つの方法(日本語版)
x1 ichi
Pythonデータ分析 第4回勉強会資料 12章
Pythonデータ分析 第4回勉強会資料 12章
Makoto Kawano
単語・句の分散表現の学習
単語・句の分散表現の学習
Naoaki Okazaki
NLP2012
NLP2012
Yuki Nakayama
深層強化学習の分散化・RNN利用の動向〜R2D2の紹介をもとに〜
深層強化学習の分散化・RNN利用の動向〜R2D2の紹介をもとに〜
Jun Okumura
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
YoheiOkuyama
ただいまHadoop勉強中
ただいまHadoop勉強中
Satoshi Noto
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
Takeshi Mikami
建築インターンシップ
建築インターンシップ
09N1057
Devsumi2010-01-Suc3rum-20100218
Devsumi2010-01-Suc3rum-20100218
Sukusuku Scrum
今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)
Toru Takizawa
Hadoop入門
Hadoop入門
Preferred Networks
Apache Spark チュートリアル
Apache Spark チュートリアル
K Yamaguchi
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料
Recruit Technologies
XLWrapについてのご紹介
XLWrapについてのご紹介
Ohsawa Goodfellow
VLDB'10勉強会 -Session 2-
VLDB'10勉強会 -Session 2-
Takeshi Yamamuro
Más contenido relacionado
La actualidad más candente
[DLHacks]Fast and Accurate Entity Recognition with Iterated Dilated Convoluti...
[DLHacks]Fast and Accurate Entity Recognition with Iterated Dilated Convoluti...
Deep Learning JP
CuPy解説
CuPy解説
Ryosuke Okuta
130323 slide all
130323 slide all
ikea0064
Emcjp item33,34
Emcjp item33,34
MITSUNARI Shigeo
Lucene terms extraction
Lucene terms extraction
Koji Sekiguchi
PRML 4.1.6-4.2.2
PRML 4.1.6-4.2.2
kazunori sakai
あなたのScalaを爆速にする7つの方法(日本語版)
あなたのScalaを爆速にする7つの方法(日本語版)
x1 ichi
Pythonデータ分析 第4回勉強会資料 12章
Pythonデータ分析 第4回勉強会資料 12章
Makoto Kawano
単語・句の分散表現の学習
単語・句の分散表現の学習
Naoaki Okazaki
NLP2012
NLP2012
Yuki Nakayama
深層強化学習の分散化・RNN利用の動向〜R2D2の紹介をもとに〜
深層強化学習の分散化・RNN利用の動向〜R2D2の紹介をもとに〜
Jun Okumura
La actualidad más candente
(11)
[DLHacks]Fast and Accurate Entity Recognition with Iterated Dilated Convoluti...
[DLHacks]Fast and Accurate Entity Recognition with Iterated Dilated Convoluti...
CuPy解説
CuPy解説
130323 slide all
130323 slide all
Emcjp item33,34
Emcjp item33,34
Lucene terms extraction
Lucene terms extraction
PRML 4.1.6-4.2.2
PRML 4.1.6-4.2.2
あなたのScalaを爆速にする7つの方法(日本語版)
あなたのScalaを爆速にする7つの方法(日本語版)
Pythonデータ分析 第4回勉強会資料 12章
Pythonデータ分析 第4回勉強会資料 12章
単語・句の分散表現の学習
単語・句の分散表現の学習
NLP2012
NLP2012
深層強化学習の分散化・RNN利用の動向〜R2D2の紹介をもとに〜
深層強化学習の分散化・RNN利用の動向〜R2D2の紹介をもとに〜
Destacado
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
YoheiOkuyama
ただいまHadoop勉強中
ただいまHadoop勉強中
Satoshi Noto
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
Takeshi Mikami
建築インターンシップ
建築インターンシップ
09N1057
Devsumi2010-01-Suc3rum-20100218
Devsumi2010-01-Suc3rum-20100218
Sukusuku Scrum
今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)
Toru Takizawa
Hadoop入門
Hadoop入門
Preferred Networks
Destacado
(7)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
ただいまHadoop勉強中
ただいまHadoop勉強中
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
建築インターンシップ
建築インターンシップ
Devsumi2010-01-Suc3rum-20100218
Devsumi2010-01-Suc3rum-20100218
今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)
Hadoop入門
Hadoop入門
Similar a 今さら聞けないHadoop勉強会第2回 セントラルソフト株式会社(20120228)
Apache Spark チュートリアル
Apache Spark チュートリアル
K Yamaguchi
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料
Recruit Technologies
XLWrapについてのご紹介
XLWrapについてのご紹介
Ohsawa Goodfellow
VLDB'10勉強会 -Session 2-
VLDB'10勉強会 -Session 2-
Takeshi Yamamuro
Perlと出会い、Perlを作る
Perlと出会い、Perlを作る
goccy
Word Sense Induction & Disambiguaon Using Hierarchical Random Graphs (EMNLP2010)
Word Sense Induction & Disambiguaon Using Hierarchical Random Graphs (EMNLP2010)
Koji Matsuda
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
Nagi Teramo
Chainerの使い方と自然言語処理への応用
Chainerの使い方と自然言語処理への応用
Seiya Tokui
Sort
Sort
oupc
Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207
Jun Ohtani
第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章
Tomonobu_Hirano
Thinking in Cats
Thinking in Cats
Eugene Yokota
Paper: seq2seq 20190320
Paper: seq2seq 20190320
Yusuke Fujimoto
PRML 4.1 Discriminant Function
PRML 4.1 Discriminant Function
Shintaro Takemura
Hadoop book-2nd-ch3-update
Hadoop book-2nd-ch3-update
Taisuke Yamada
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
Hadoop / Spark Conference Japan
MapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知る
日本ヒューレット・パッカード株式会社
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案
yushin_hirano
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
Google Cloud Platform - Japan
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)
KnowledgeGraph
Similar a 今さら聞けないHadoop勉強会第2回 セントラルソフト株式会社(20120228)
(20)
Apache Spark チュートリアル
Apache Spark チュートリアル
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料
XLWrapについてのご紹介
XLWrapについてのご紹介
VLDB'10勉強会 -Session 2-
VLDB'10勉強会 -Session 2-
Perlと出会い、Perlを作る
Perlと出会い、Perlを作る
Word Sense Induction & Disambiguaon Using Hierarchical Random Graphs (EMNLP2010)
Word Sense Induction & Disambiguaon Using Hierarchical Random Graphs (EMNLP2010)
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
Chainerの使い方と自然言語処理への応用
Chainerの使い方と自然言語処理への応用
Sort
Sort
Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207
第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章
Thinking in Cats
Thinking in Cats
Paper: seq2seq 20190320
Paper: seq2seq 20190320
PRML 4.1 Discriminant Function
PRML 4.1 Discriminant Function
Hadoop book-2nd-ch3-update
Hadoop book-2nd-ch3-update
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
MapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知る
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)
Último
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
sugiuralab
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
sugiuralab
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
Último
(7)
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
今さら聞けないHadoop勉強会第2回 セントラルソフト株式会社(20120228)
1.
今さら聞けない Hadoop 勉強会
第2回 アルゴリズム編 セントラルソフト株式会社 システム1部 システム開発課 奥山 洋平 1
2.
本勉強会の目的 2
3.
本セミナーの目的
Hadoop に関連する技術や培ったノウハウを、勉強会に参加された方 と 共有する SlideShare で公開 「今さら聞けないhadoop セントラ ルソフト」で見つかります スケジュール 第1回 Hadoop 基礎(1月19日開催) HDFS と MapReduce の概念 ロールプレイ 第2回 アルゴリズム(本日2月28日開催) k-means アルゴリズム TF-IDF アルゴリズム 第3回 「MapReduce 実装テクニック」を予定(3月予定) ワードカウント k-means TF-IDF 第4回 「理論・エコシステム編」を予定(4月予定) HDFS HBase Hive 3
4.
本日の目的
2つのアルゴリズムを通してアルゴリズムからジョブ フローにする流れを知ってもらう 今回 アルゴリズム ジョブフロー 次回予定 MapReduce プログラム 4
5.
目次
k-means アルゴリズム アルゴリズムからジョブフローへ TF-IDF アルゴリズム アルゴリズムからジョブフローへ まとめと次回の予定 5
6.
k-means アルゴリズム
7.
k-means アルゴリズムとは
レコードの集合を k 個のよく似た特徴を持つ集合 (クラスタ)に分割(クラスタリング)するアルゴリ ズム k = 2 の例 クラスタ レコード 7
8.
クラスタリングの活用例
機械学習 手書き文字認識 この数字は 「9」 この数字は 何? 9のクラス 7のクラス タ タ 特徴抽出 「7」と「9」の分類に必要な特徴は? 8
9.
k-means アルゴリズム概要
k-menas アルゴリズムは「クラスタの割り当て」と 「クラスタの重心を求める」という処理を繰り返し、 最適な重心を求めるアルゴリズム 9
10.
k-means アルゴリズムの手順(1) 1.
初期化 各レコードに対して、ランダムにクラスタを割り当てる 2. 割り当てたクラスタの重心を求める 3. 各レコードを、各クラスタの重心に一番近いクラスタ に 割り当て直す 4. クラスタの割り当て変化がある 終了 2 の処理 クラスタの割り当てに変化が無い 10 予め決めた回数クラスタの割り当てを行った
11.
k-means アルゴリズムの手順(2) k=3
3. クラスタの再割り当て 1. 初期化(ランダムにクラスタを割り当てる) 2. クラスタの重心を求める ⇒ クラスタの割り当てが変化したので クラスタの割り当てが変化しなかったので 2 の処理へ 処理終了 11
12.
アルゴリズムからジョブフローへ 12
13.
ジョブフローを作る際に意識すること
MapReduce は分散処理なので、複雑な処理はでき ない 複雑な処理は複数回の MapReduce で実現する 本勉強会の説明では1回の MapReduce を1ジョブとす る 1ジョブの処理はシンプルにする 複雑な処理 ジョブ 2 複雑な ジョブ ジョブ 処理 1 4 ジョブ 3 13
14.
k-means アルゴリズム 1.
初期化 各レコードに対して、ランダムにクラスタを割り当てる 2. 割り当てたクラスタの重心を求める 3. 各レコードを、各クラスタの重心に一番近いクラスタ に 割り当て直す 4. クラスタの割り当て変化がある 終了 2 の処理 クラスタの割り当てに変化が無い 14 予め決めた回数クラスタの割り当てを行った
15.
処理の流れ 処理1:初期化 処理2:割り当てたクラスタの重心を求める 処理3:各レコードを、各クラスタの重心に一番近いクラ スタに
割り当て直す レコー ド集合 :入力 :出力 開始 処理1 処理2 処理3 終了 :フロー :終了時 入力 出力 処理3の 処理1 処理2 処理3 結果が ファイ ファイ 結果 結果 結果 ル ル 最終出力 15
16.
MapReduce にできるか検討
それぞれの処理が1回の MapReduce で実現できそ うか 検討し、必要に応じて複数回のジョブで処理を実現 する 16
17.
MapReduce の簡単な復習
MapReduce は以下の3つのフェーズで構成される 入力データの加工を行う「Map」 データの整理と分配を行う「Shuffle & Sort」 同じ key に対する value は一纏めにし、key 順にソートした データを Reduce を行うノードが受け取る まとめられたデータに対して処理を行う「Reduce」 それぞれのフェーズの入出力は key と value のペア 17
18.
処理1概要
処理 各レコードに対して、ランダムにクラスタを割り当てる 入力(クラスタリングするデータファイル) key : 入力ファイルの形式による value : 1レコード 出力(ランダムにクラスタを割り当てられたレコー ド) key : 割り当てられたクラスタ番号 value : 1レコード 18
19.
処理1検討
<入力形式によって異なるkey , 1レコード> 入力 乱数 処理1 1回の MapReduce で実現できそう <ランダムに割り当てたクラスタ , 1レコード> 出力 19
20.
処理2概要
処理 割り当てられたクラスタの重心を求める 入力(ランダムにクラスタを割り当てられたレコー ド) key : クラスタ番号 value : 1レコード 出力(クラスタの重心) key : クラスタ番号 value : クラスタの重心の位置 20
21.
処理2検討
<クラスタ1, A><クラスタ2, B> <クラスタ1, C> Map 出力 Shuffle & Sort で同じクラスタは一纏まりになり、 Shuffle & Sort その纏まりでクラスタの重心が計算できる <クラスタ1, [A , C]> <クラスタ2, [B]> 1回の MapReduce で実現できそう Reduce 入力 21
22.
処理3概要
処理 各レコードを、一番近いクラスタに割り当て直す 入力1(クラスタの重心) key : クラスタ番号 value : クラスタの重心の位置 入力2(クラスタリングするデータファイル) key : <要検討> value : 1レコード 出力(クラスタを割り当て直したレコード) key : 割り当てたクラスタ value : 1レコード 22
23.
処理3検討
問題となりそうなところ 2つの形式のデータの入力はどうする? クラスタの重心のデータはすべての Reduce を行うノー ドに 配布する必要があるがどうする? すべてに配布しないと各レコードがどのクラスタに近いのか 比較できない 実現方法を知っていれば1回の MapReduce で 知らなければ MapReduce の回数を増やす 次回、1回の MapReduce で実現する方法を解説 予定 23
24.
その他次回解説を行う問題
<要検討>にしてあった部分 処理3の終了後、条件によって処理を終了するか、 処理2の処理に戻るか分岐する問題 MapReduce の実装レベルの内容は次回行う(予 定) 24
25.
TF-IDF アルゴリズム 25
26.
TF-IDF アルゴリズムとは
文書中の単語に関する重み付けのアルゴリズム その単語がその文書でどれくらい特徴的であるかを 単語ごと文書ごとに数値化(tfidf 値) 出てくる文書が少なく、特定の文書での出現回数が多い単語ほ ど その文書での数値が大きい キーワード抽出や Web 検索へ応用できる 例:ある文書中の tfidf 値 “Hadoop” : 0.3 文書 “HDFS” : 0.6 “MapReduce” : 0.5 26 …
27.
tfidf 値の意味(1)
異なる文書の同じ単語の場合 単語の tfidf 値が高い文書ほど、その単語を特徴として持 つ文書 その単語がよく表れる文書 文書のキーワード 検索 文書A 文書B 文書C “Hadoop” : 0.3 “Hadoop” : 0.5 “Hadoop” : 0.2 “Hadoop” の検索結果は上位から 文書B , A , C 27
28.
tfidf 値の意味(2)
一つの文書内の単語の場合 特定の文書中で tfidf 値が高い単語が、その文書を特徴付け る 文書のインデックス作成 文書のキーワード検索 の高速化 tfidf 値 インデックス “Hadoop” : 0.3 “HDFS” : 0.6 “HDFS” 文書A “Java” : 0.2 “MapReduce” “MapReduce” : 0.5 “Hadoop” “Ruby” : 0.1 … 28
29.
TF-IDF アルゴリズム(tfidf 値の求め方)(1)
tfidf 値は、単語の出現頻度(tf : term frequency)と 逆文書頻度(idf : inverse document frequency)の積で求め られる tfidf 単語の出現頻度 * 逆文書頻度 単語の出現頻度(tf)は以下の式で求められる 文書中の単語の出現回 数 単語の出現頻度 文書中の単語の総数 逆文書頻度(idf)は以下の式で求められる(この式は ジップの法則に由来する) 文書数 逆文書頻度 log10 単語が出現した文書数 29
30.
TF-IDF アルゴリズム(tfidf 値の求め方)(2)
文書1 文書2 文書3 A tf:0.5 0.2385 単語の出現頻度 * 逆文書頻度 A 文書中の単語の出現回数 / 文書中の単語の総数 0.5 * 0.477 idf:0.477 2/4 log10(文書数/単語が出現した文書数) tf:0.25 log10(3 / 1) tf:0.33 B 0.044 B単語ごとに共通の値 0.05808 idf:0.176 C tf:0.25 C tf:0.33 C tf:0.25 idf:0 0 0 0 D tf:0.33 D tf:0.5 0.05808 0.088 idf:0.17 D 6 tf:0.25 E 0.11925 idf:0.47 30 7
31.
アルゴリズムからジョブフローへ 31
32.
k-means アルゴリズムとの違い
k-means はアルゴリズムの中でフローが決まってい た TF-IDF は計算式だけでフローが無いので、どのよう な順番で処理を行うのか考えなければならない 32
33.
ジョブフローを作る際に意識すること(再掲)
MapReduce は分散処理なので、複雑な処理はでき ない 複雑な処理は複数回の MapReduce で実現する ここでは1回の MapReduce を1ジョブとする 1ジョブの処理はシンプルにする 複雑な処理 ジョブ 2 複雑な ジョブ ジョブ 処理 1 4 ジョブ 3 33
34.
MapReduce の簡単な復習(再掲)
MapReduce は以下の3つのフェーズで構成される 入力データの加工を行う「Map」 データの整理と分配を行う「Shuffle & Sort」 同じ key に対する value は一纏めにし、key 順にソートした データを Reduce を行うノードが受け取る まとめられたデータに対して処理を行う「Reduce」 それぞれのフェーズの入出力は key と value のペア 34
35.
アルゴリズムからジョブフローへの流れ 1.
大まかな処理に分ける 2. 処理の入出力を考える 3. データを Reduce からの参照のされ方で分ける 1. 全ての Reduce 2. 全てではないが複数の Reduce 3. 一つの Reduce 4. 処理ごとに簡単な MapReduce で実現できるか検討 し、 必要に応じてジョブを増やす 35
36.
1.大まかな処理に分ける
必要なものを考え、大まかな処理に分ける 文書中の単語の出現回数を求める 文書中の単語の総数を求める 式に代入 tfidf 値 して計算 文書数を求める 単語が出現した文書数を求め る 文書中の単語の出現回 数 文書数 * log10 文書中の単語の総数 単語が出現した文書数 36
37.
2.処理の入出力を考える(1)
どのような key と value のペアを出力するか考える 「式に代入して計算」の処理の場合 Hadoop : 0.3 文書A HDFS : 0.6 MapReduce : 0.5 … key は 文書名と単語のペ value は ア tfidf 値 文書 A の Hadoop の 値: 0.3 文書 A の HDFS の 値: 0.6 文書 A の MapReduce の 値: 0.5 37
38.
2.処理の入出力を考える(2)
同様にして考えると以下の表のようになる 処理 key value 式に代入して計算 文書名/単語 tfidf 値 文書中の単語の出現回数を求める 文書名/単語 出現回数 文書中の単語の総数を求める 文書名 単語の総数 文書数を求める <要検討> 文書数 単語が出現した文書数を求める 単語 出現した文書 数 38
39.
2.処理の入出力を考える(3)
入力ファイルから文書名を取得する必要があるので、 今回の入力ファイルは説明を簡単にするため以下の フォーマットを用いる 入力ファイル タイトル名1@バイトオフセット 文章 タイトル名1@バイトオフセット 文章 タイトル名1@バイトオフセット 文章 タイトル名1@バイトオフセット 文章 タイトル名2@バイトオフセット 文章 タイトル名2@バイトオフセット 文章 タイトル名2@バイトオフセット 文章 … 39
40.
3.データを Reduce からの参照のされ方で分ける(1)
「式に代入して計算」の処理の入力を考える 全体で共通の値 以下は計算式と必要な値を求める処理の出力 各文書で共通の値 全て異なる値 各単語で共通の 値 文書中の単語の出現回 数 文書数 * log10 文書中の単語の総数 単語が出現した文書数 処理 key value 文書中の単語の出現回数を求める 文書名/単語 出現回数 文書中の単語の総数を求める 文書名 単語の総数 文書数を求める <要検討> 文書数 単語が出現した文書数を求める 単語 出現した文書 数 40
41.
3.データを Reduce からの参照のされ方で分ける(2)
全体で共通の値 k-means のクラスタの中心データの配布と同じ方法を使 う 部分的に共通の値 ジョブ(MapReduce)を追加して全て異なる値と一緒に 扱う 全体で共通の値と同じ手法を使わない理由は次回 41
42.
ここまでで構築した処理の流れ
文書数を求め 式に代入 る して計算 入力 文書中の単語の 出力 ファイ 出現回数を求める ファイル ル 値をまとめ 値をまとめ (tfidf る1 る2 値) 単語が出現した 文書数を求める 文書中の単語の 総数を求める 42
43.
4.簡単な MapReduce で実現できるか検討 43
44.
「文書数を求める」検討
入力ファイルから簡単な MapReduce で文書数を求 めることはできない 先に「文書のリスト作成」のジョブを作成してから だと、ワードカウントと同様にして文書数が求めら れる 文書数を求める 文書数を求め 文書名の る 文書名を数える リスト作成 44
45.
「文書中の単語の出現回数を求める」検討
入力から文書名と単語のペアを key にすれば、 ワードカウントと同様にして文書中の単語の出現回 数が求められる 45
46.
「単語が出現した文書数を求める」検討
入力ファイルから簡単な MapReduce で単語が出現 した文書数を求めることはできない 先に「文書で出現した単語のリスト」を作成しして からだと、ワードカウントと同様にして単語が出現 した文書数が求められる 単語が出現した文書数を求める 単語が出現し た文書数を求 リストから 文書で出現した める 単語が出現した 単語のリスト 文書数を求める 46
47.
「文書中の単語の総数を求める」検討
文書名を key にすれば、ワードカウントと同様にし て 文書中の単語の総数が求められる 47
48.
ジョブフロー
文書数を求める 文書名の 文書名を数 式に代入 リスト作成 える して計算 文書中の単語の 出力 入力 出現回数を求める ファイ ファイル ル 値をまとめ 値をまとめ (tfidf 単語が出現した文書数を求める る1 る2 値) 文書で出現し リストから た 単語が出現した 単語のリスト 文書数を求める 文書中の単語の 総数を求める 48
49.
まとめと次回の予定 49
50.
まとめ
アルゴリズムからジョブフローにする手順 1. 大まかな処理に分ける 2. 処理の入出力を考える 3. データを Reduce からの参照のされ方で分ける 1. 全ての Reduce 2. 全てではないが複数の Reduce 3. 一つの Reduce 4. 処理ごとに簡単な MapReduce で実現できるか検討し、 必要に応じてジョブを増やす 50
51.
次回の予定
MapReduce プログラミング基礎とプログラミングテ クニック ワードカウント k-means TF-IDF 51
Descargar ahora