SlideShare ist ein Scribd-Unternehmen logo
1 von 43
[object Object],[object Object], 桑野 章弘
自己紹介 ,[object Object],[object Object],[object Object]
6 章  MapReduce の動作
はじめに ,[object Object]
6.1 MapReduce ジョブの実行の内幕 ,[object Object],[object Object],[object Object],P169
6.1 MapReduce ジョブの実行の内幕 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
MapReduce ジョブの実行遷移図 MapReduce プログラム JobClient JobTracker TaskTracker 子 Map タスク あるいは Redule タスク 共有ファイル システム ( HDFS 等) 1. ジョブの実行 2. 新規ジョブの取得 4. ジョブの投入 3. ジョブの リソースのコピー 5. ジョブの初期化 6. 入力スピリットの取得 8. ジョブのリソースの取得 9. 起動 10. 実行 7. ハートビート (タスクの返却) クライアント JVM クライアントノード Jobtracker ノード tasktracker ノード 子 JVM
6.1.1  ジョブの投入 [ ステップ1 ] ,[object Object],[object Object],[object Object]
6.1.1  ジョブの投入 [ ステップ 2 ~ 4] ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
6.1.2  ジョブの初期化 [ ステップ 5 ~ 6] ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
6.1.3  タスクの割り当て [ ステップ 7] ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
6.1.4  タスクの実行 ,[object Object],[object Object],[object Object],[object Object],[object Object]
ストリーミングとパイプ ,[object Object],[object Object],[object Object],[object Object]
ストリーミングとパイプ ストリーミング TaskTracker 子 Map タスク あるいは Redule タスク 9. 起動 実行 tasktracker ノード 子 JVM ストリーミング タスク 起動 出力キー / 値 入力キー / 値 標準入力 標準出力 TaskTracker 子 Map タスク あるいは Redule タスク 9. 起動 実行 tasktracker ノード 子 JVM C++map あるいは Reduce タスク ソケット 起動 出力キー / 値 パイプ
6.1.5  進行状況とステータスの更新 ,[object Object],[object Object],[object Object],[object Object],[object Object]
6.1.5  進行状況とステータスの更新 MapReduce プログラム JobClient JobTracker TaskTracker 子 Map タスク あるいは Redule タスク 共有ファイル システム ( HDFS 等) getJob getJobStatus 9. 起動 ハートビート クライアント JVM クライアントノード Jobtracker ノード tasktracker ノード 子 JVM 進行状況あるいはカウンターの更新 statusUpdate
6.1.6  ジョブの完了 ,[object Object],[object Object],[object Object]
6.2  障害 ,[object Object],[object Object],[object Object],[object Object],P176
6.2.1  タスクの障害 ,[object Object],[object Object],[object Object],[object Object]
6.2.1  タスクの障害 ,[object Object],[object Object],[object Object]
6.2.1  タスクの障害 ,[object Object],[object Object],[object Object],[object Object]
6.2.1  タスクの障害 ,[object Object],[object Object],[object Object],[object Object],[object Object]
6.2.2 tasktracker の障害 ,[object Object],[object Object],[object Object],[object Object]
6.2.3 jobtracker の障害 ,[object Object],[object Object]
6.3  ジョブのスケジューリング ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],P178
6.3  ジョブのスケジューリング ,[object Object],[object Object],[object Object],[object Object],[object Object],P178
6.4  シャッフルとソート ,[object Object],[object Object],[object Object],P179
6.4  シャッフルとソート map タスク reduce タスク map reduce 入力 スプリット メモリ内 バッファ コピーフェーズ ディスク上での マージ パーティション 取得 他の reduce へ 他の map から メモリとディスク上にデータが混在 マージ 出力 ソートフェーズ reduce フェーズ
6.4.1  シャッフルとソート [map 側 ] ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
6.4.2  シャッフルとソート [reduce 側 ] ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
6.4.3  設定のチューニング ,[object Object],[object Object],[object Object],[object Object]
6.4.3  設定のチューニング [map] map の出力を reducer に提供するために使われる、 tasktracker ごとのワーカースレッド数。これはクラスタ単位の設定であり、ジョブ単位には設定することは出来ない。 40 int tasktracker.http.threads map の出力に使われる圧縮コーデック。 org.apache.hadoop.io.compress.DefaultCodec クラス名 mapred.map.outupt.compression.codec combiner を実行する( combiner が指定されている場合)のに必要な最小限のスピルファイル数。 3 int min.num.spills.for.bombine map 出力のメモリバッファと、レコード境界インデックスの両方に適用される。ディスクにスピルを書き出し始めるかどうかの判定をするための利用率の閾値。 10 int io.sort.spill.percent io.sort.mb の中で、 map の出力のレコード境界を保存するために予約される比率。残りの領域は map の出力レコードのために使われる。 0.05 fload io.soft.record.percent map 出力のソートに使われるメモリバッファの量(単位はメガバイト) 100 int io.sort.mb 説明 デフォルト値 型 プロパティ名
6.4.3  設定のチューニング [reduce] reduce の過程で、 map の出力を保持するために使われるバッファの、総ヒープサイズに対する比率。 reduce フェーズが開始されるためには、メモリ内にある map の出力サイズがこのサイズよりも大きくなければならない。デフォルトでは、 reduce の処理が出来る限りのメモリを使えるようにするため、すべての map の出力は reduce が開始される前にディスク上にマージされている。しかし reducer がそれほどメモリを使わない場合、この値を増やすことでディスクとのやりとりを最小限に抑えられることがある。 0.0 float mapred.job.reduce.input.buffer.percent map の出力をマージし、スピルとしてディスクに書き出すプロセスが開始される、 map 出力数の閾値。 0 以下の値を指定した場合、閾値がない物と見なされ、スピルの動作は mapred.job.shuffle.merge.percent でのみ管理される。 1000 int mapred.inmem.merge.threshold map の出力バッファ( mapred.job.shuffle.input.buffer.percent で指定)に対する使用率の閾値。この値を超えると出力のディスクへのスピルへの書き出しが開始される。 0.66 float mapred.job.shuffle.merge.percent 総ヒープサイズに対する、シャッフルのコピーフェーズ間の map の出力バッファへの割り当て比率 0.70 float mapred.job.shuffle.input.burffer.percent このファイルをソートする際に同時にマージされる最大のストリーム数。 このプロパティは map でも使われる。 10 int io.sort.factor 1 つの map の出力を reduce が取得する際に、失敗したと判定するまでの時間(秒)。 reducer は、この時間内であれば、何回取得に失敗しても繰り返し転送をしてみることができる(その際には、指数関数的に間隔をあけていく) 300 int mapred.reduce.copy.backoff map の出力を reduce にコピーするために使われるスレッド数。 5 int maprd.reduce.parallel.copies 説明 デフォルト値 型 プロパティ名
6.5  タスクの実行 ,[object Object],[object Object],[object Object],[object Object],[object Object],P184
6.5.1  投機的実行 ,[object Object],[object Object],[object Object],[object Object],[object Object]
6.5.2  タスク JVM の再利用 ,[object Object],[object Object],[object Object],[object Object]
6.5.3  不良レコードのスキップ ,[object Object],[object Object],[object Object],[object Object]
6.5.4  タスクの実行環境 ,[object Object]
6.5.4  タスクの実行環境 true このタスクが map タスクかどうか boolean mapred.task.is.map 3 ジョブ内でのタスク ID int mapred.task.partition attempt_200811201130_0004_m_000003_0 タスク試行 ID (タスク ID とは別) String mapred.task.id task_200811201130_0004_m_000003 タスク ID String mapred.tip.id job_200811201130_0004 ジョブ ID (フォーマットの説明は「 5.5.2  ジョブの起動」のコラム「ジョブ、タスク、タスク試行 ID 」を参照) String mapred.job.id 例 説明 型 プロパティ名
ストリーミングの環境変数 ,[object Object],[object Object],[object Object]
タスクの副作用ファイル ,[object Object],[object Object],[object Object]
まとめ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ご清聴ありがとうございました。

Weitere ähnliche Inhalte

Was ist angesagt?

Hadoop Hack Night Vol. 2
Hadoop Hack Night Vol. 2Hadoop Hack Night Vol. 2
Hadoop Hack Night Vol. 2Yoji Kiyota
 
Processing LTSV by Apache Pig
Processing LTSV by Apache PigProcessing LTSV by Apache Pig
Processing LTSV by Apache PigTaku Miyakawa
 
リアルタイムOsのカスタマイズ
リアルタイムOsのカスタマイズリアルタイムOsのカスタマイズ
リアルタイムOsのカスタマイズKazuhiro Takahashi
 
そろそろRStudioの話
そろそろRStudioの話そろそろRStudioの話
そろそろRStudioの話Kazuya Wada
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングKosuke Kida
 
遺伝研スパコンを使った解析の並列化.pptx
遺伝研スパコンを使った解析の並列化.pptx遺伝研スパコンを使った解析の並列化.pptx
遺伝研スパコンを使った解析の並列化.pptxOsamu Ogasawara
 
最近の身の回りの電力事情
最近の身の回りの電力事情最近の身の回りの電力事情
最近の身の回りの電力事情Kenichiro MATOHARA
 
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~Kazuya Wada
 
シンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnairシンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnairNaoya Inada
 
MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術yoku0825
 
PostgreSQL + pgpool構成におけるリカバリ
PostgreSQL + pgpool構成におけるリカバリPostgreSQL + pgpool構成におけるリカバリ
PostgreSQL + pgpool構成におけるリカバリhiroin0
 

Was ist angesagt? (12)

Hadoop Hack Night Vol. 2
Hadoop Hack Night Vol. 2Hadoop Hack Night Vol. 2
Hadoop Hack Night Vol. 2
 
Processing LTSV by Apache Pig
Processing LTSV by Apache PigProcessing LTSV by Apache Pig
Processing LTSV by Apache Pig
 
リアルタイムOsのカスタマイズ
リアルタイムOsのカスタマイズリアルタイムOsのカスタマイズ
リアルタイムOsのカスタマイズ
 
そろそろRStudioの話
そろそろRStudioの話そろそろRStudioの話
そろそろRStudioの話
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
 
Stream2の基本
Stream2の基本Stream2の基本
Stream2の基本
 
遺伝研スパコンを使った解析の並列化.pptx
遺伝研スパコンを使った解析の並列化.pptx遺伝研スパコンを使った解析の並列化.pptx
遺伝研スパコンを使った解析の並列化.pptx
 
最近の身の回りの電力事情
最近の身の回りの電力事情最近の身の回りの電力事情
最近の身の回りの電力事情
 
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
 
シンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnairシンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnair
 
MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術MySQLを割と一人で300台管理する技術
MySQLを割と一人で300台管理する技術
 
PostgreSQL + pgpool構成におけるリカバリ
PostgreSQL + pgpool構成におけるリカバリPostgreSQL + pgpool構成におけるリカバリ
PostgreSQL + pgpool構成におけるリカバリ
 

Andere mochten auch

Hadoop Summit 2012 | Optimizing MapReduce Job Performance
Hadoop Summit 2012 | Optimizing MapReduce Job PerformanceHadoop Summit 2012 | Optimizing MapReduce Job Performance
Hadoop Summit 2012 | Optimizing MapReduce Job PerformanceCloudera, Inc.
 
Utilizing Digital Ink to Close Real Estate Transactions in Less Time
Utilizing Digital Ink to Close Real Estate Transactions in Less TimeUtilizing Digital Ink to Close Real Estate Transactions in Less Time
Utilizing Digital Ink to Close Real Estate Transactions in Less TimeTom Blefko
 
Hydra Project Management Survey
Hydra Project Management SurveyHydra Project Management Survey
Hydra Project Management SurveyMark Notess
 
Powerpoint
PowerpointPowerpoint
Powerpointdolver
 
2010 Social Networking Report
2010 Social Networking Report2010 Social Networking Report
2010 Social Networking ReportTom Blefko
 
Unreasonable Clients; Zillow/Trulia Merger; Market Snapshot
Unreasonable Clients; Zillow/Trulia Merger; Market SnapshotUnreasonable Clients; Zillow/Trulia Merger; Market Snapshot
Unreasonable Clients; Zillow/Trulia Merger; Market SnapshotTom Blefko
 
Handling Multiple Agreements the Right Way
Handling Multiple Agreements the Right WayHandling Multiple Agreements the Right Way
Handling Multiple Agreements the Right WayTom Blefko
 
Fed Reserve Stress Test
Fed Reserve Stress TestFed Reserve Stress Test
Fed Reserve Stress TestColumbia
 
How to Build a Business for the Long Haul
How to Build a Business for the Long HaulHow to Build a Business for the Long Haul
How to Build a Business for the Long HaulTom Blefko
 
Gefährliche gegenstände oder situationen
Gefährliche gegenstände oder situationenGefährliche gegenstände oder situationen
Gefährliche gegenstände oder situationenAnabel Cornago
 
PruHSG Chambersburg Sales Meeting 11-12-13
PruHSG Chambersburg Sales Meeting 11-12-13PruHSG Chambersburg Sales Meeting 11-12-13
PruHSG Chambersburg Sales Meeting 11-12-13Tom Blefko
 
BT&D Gallery of Projects
BT&D Gallery of ProjectsBT&D Gallery of Projects
BT&D Gallery of Projectsbtdtheresa
 

Andere mochten auch (18)

Hadoop Summit 2012 | Optimizing MapReduce Job Performance
Hadoop Summit 2012 | Optimizing MapReduce Job PerformanceHadoop Summit 2012 | Optimizing MapReduce Job Performance
Hadoop Summit 2012 | Optimizing MapReduce Job Performance
 
Utilizing Digital Ink to Close Real Estate Transactions in Less Time
Utilizing Digital Ink to Close Real Estate Transactions in Less TimeUtilizing Digital Ink to Close Real Estate Transactions in Less Time
Utilizing Digital Ink to Close Real Estate Transactions in Less Time
 
Hellas Rally Raid 2017
Hellas Rally Raid 2017Hellas Rally Raid 2017
Hellas Rally Raid 2017
 
Мой город
Мой городМой город
Мой город
 
Peligro gefahr
Peligro   gefahrPeligro   gefahr
Peligro gefahr
 
Hydra Project Management Survey
Hydra Project Management SurveyHydra Project Management Survey
Hydra Project Management Survey
 
Powerpoint
PowerpointPowerpoint
Powerpoint
 
2010 Social Networking Report
2010 Social Networking Report2010 Social Networking Report
2010 Social Networking Report
 
Media Relation
Media RelationMedia Relation
Media Relation
 
Comics
ComicsComics
Comics
 
Unreasonable Clients; Zillow/Trulia Merger; Market Snapshot
Unreasonable Clients; Zillow/Trulia Merger; Market SnapshotUnreasonable Clients; Zillow/Trulia Merger; Market Snapshot
Unreasonable Clients; Zillow/Trulia Merger; Market Snapshot
 
Handling Multiple Agreements the Right Way
Handling Multiple Agreements the Right WayHandling Multiple Agreements the Right Way
Handling Multiple Agreements the Right Way
 
Fed Reserve Stress Test
Fed Reserve Stress TestFed Reserve Stress Test
Fed Reserve Stress Test
 
Bchang
BchangBchang
Bchang
 
How to Build a Business for the Long Haul
How to Build a Business for the Long HaulHow to Build a Business for the Long Haul
How to Build a Business for the Long Haul
 
Gefährliche gegenstände oder situationen
Gefährliche gegenstände oder situationenGefährliche gegenstände oder situationen
Gefährliche gegenstände oder situationen
 
PruHSG Chambersburg Sales Meeting 11-12-13
PruHSG Chambersburg Sales Meeting 11-12-13PruHSG Chambersburg Sales Meeting 11-12-13
PruHSG Chambersburg Sales Meeting 11-12-13
 
BT&D Gallery of Projects
BT&D Gallery of ProjectsBT&D Gallery of Projects
BT&D Gallery of Projects
 

Ähnlich wie Hadoop輪読会第6章

Googleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてGoogleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてKazuki Ohta
 
Data-Intensive Text Processing with MapReduce(Ch1,Ch2)
Data-Intensive Text Processing with MapReduce(Ch1,Ch2)Data-Intensive Text Processing with MapReduce(Ch1,Ch2)
Data-Intensive Text Processing with MapReduce(Ch1,Ch2)Sho Shimauchi
 
ただいまHadoop勉強中
ただいまHadoop勉強中ただいまHadoop勉強中
ただいまHadoop勉強中Satoshi Noto
 
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)Hadoop / Spark Conference Japan
 
Apache Auroraの始めかた
Apache Auroraの始めかたApache Auroraの始めかた
Apache Auroraの始めかたMasahito Zembutsu
 
Webサーバ勉強会 LT資料
Webサーバ勉強会 LT資料Webサーバ勉強会 LT資料
Webサーバ勉強会 LT資料学 松崎
 
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Sotaro Kimura
 
Kof2016 postgresql-9.6
Kof2016 postgresql-9.6Kof2016 postgresql-9.6
Kof2016 postgresql-9.6Toshi Harada
 
Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点) Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点) Norito Agetsuma
 
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...Insight Technology, Inc.
 
Web技術勉強会 第31回
Web技術勉強会 第31回Web技術勉強会 第31回
Web技術勉強会 第31回龍一 田中
 
Node-v0.12の新機能について
Node-v0.12の新機能についてNode-v0.12の新機能について
Node-v0.12の新機能についてshigeki_ohtsu
 
分散メモリ環境におけるシェルスクリプトの高速化手法の提案
分散メモリ環境におけるシェルスクリプトの高速化手法の提案分散メモリ環境におけるシェルスクリプトの高速化手法の提案
分散メモリ環境におけるシェルスクリプトの高速化手法の提案Keisuke Umeno
 
HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法Masahito Zembutsu
 

Ähnlich wie Hadoop輪読会第6章 (20)

Hadoop事始め
Hadoop事始めHadoop事始め
Hadoop事始め
 
Googleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてGoogleの基盤クローン Hadoopについて
Googleの基盤クローン Hadoopについて
 
Data-Intensive Text Processing with MapReduce(Ch1,Ch2)
Data-Intensive Text Processing with MapReduce(Ch1,Ch2)Data-Intensive Text Processing with MapReduce(Ch1,Ch2)
Data-Intensive Text Processing with MapReduce(Ch1,Ch2)
 
MapReduce解説
MapReduce解説MapReduce解説
MapReduce解説
 
ただいまHadoop勉強中
ただいまHadoop勉強中ただいまHadoop勉強中
ただいまHadoop勉強中
 
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
 
MapReduce基礎
MapReduce基礎MapReduce基礎
MapReduce基礎
 
Scala on Hadoop
Scala on HadoopScala on Hadoop
Scala on Hadoop
 
Apache Auroraの始めかた
Apache Auroraの始めかたApache Auroraの始めかた
Apache Auroraの始めかた
 
MapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知るMapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知る
 
Webサーバ勉強会 LT資料
Webサーバ勉強会 LT資料Webサーバ勉強会 LT資料
Webサーバ勉強会 LT資料
 
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
 
Kof2016 postgresql-9.6
Kof2016 postgresql-9.6Kof2016 postgresql-9.6
Kof2016 postgresql-9.6
 
Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点) Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点)
 
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
 
Web技術勉強会 第31回
Web技術勉強会 第31回Web技術勉強会 第31回
Web技術勉強会 第31回
 
Node-v0.12の新機能について
Node-v0.12の新機能についてNode-v0.12の新機能について
Node-v0.12の新機能について
 
分散メモリ環境におけるシェルスクリプトの高速化手法の提案
分散メモリ環境におけるシェルスクリプトの高速化手法の提案分散メモリ環境におけるシェルスクリプトの高速化手法の提案
分散メモリ環境におけるシェルスクリプトの高速化手法の提案
 
HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法
 
What is chef
What is chefWhat is chef
What is chef
 

Mehr von Akihiro Kuwano

今日はMongoDBの話はしない
今日はMongoDBの話はしない今日はMongoDBの話はしない
今日はMongoDBの話はしないAkihiro Kuwano
 
銀河レベルのLT(とは)
銀河レベルのLT(とは)銀河レベルのLT(とは)
銀河レベルのLT(とは)Akihiro Kuwano
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
ログ管理のベストプラクティス
ログ管理のベストプラクティスログ管理のベストプラクティス
ログ管理のベストプラクティスAkihiro Kuwano
 
ビックデータ最適解とAWSにおける新しい武器
ビックデータ最適解とAWSにおける新しい武器ビックデータ最適解とAWSにおける新しい武器
ビックデータ最適解とAWSにおける新しい武器Akihiro Kuwano
 
MongoDBの可能性の話
MongoDBの可能性の話MongoDBの可能性の話
MongoDBの可能性の話Akihiro Kuwano
 
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いたAkihiro Kuwano
 
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)Akihiro Kuwano
 
WiredTigerストレージエンジン楽しい
WiredTigerストレージエンジン楽しいWiredTigerストレージエンジン楽しい
WiredTigerストレージエンジン楽しいAkihiro Kuwano
 
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴Akihiro Kuwano
 
アメーバピグにおける自作サーバ運用それからどうなった
アメーバピグにおける自作サーバ運用それからどうなったアメーバピグにおける自作サーバ運用それからどうなった
アメーバピグにおける自作サーバ運用それからどうなったAkihiro Kuwano
 
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBCyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBAkihiro Kuwano
 
後悔しないもんごもんごの使い方 〜サーバ編〜
後悔しないもんごもんごの使い方 〜サーバ編〜後悔しないもんごもんごの使い方 〜サーバ編〜
後悔しないもんごもんごの使い方 〜サーバ編〜Akihiro Kuwano
 
勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。
勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。
勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。Akihiro Kuwano
 
MongoDBのはじめての運用テキスト
MongoDBのはじめての運用テキストMongoDBのはじめての運用テキスト
MongoDBのはじめての運用テキストAkihiro Kuwano
 
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例AmebaのMongoDB活用事例
AmebaのMongoDB活用事例Akihiro Kuwano
 
MongoDBのアレをアレする
MongoDBのアレをアレするMongoDBのアレをアレする
MongoDBのアレをアレするAkihiro Kuwano
 
やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮)
やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮)やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮)
やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮)Akihiro Kuwano
 

Mehr von Akihiro Kuwano (20)

今日はMongoDBの話はしない
今日はMongoDBの話はしない今日はMongoDBの話はしない
今日はMongoDBの話はしない
 
銀河レベルのLT(とは)
銀河レベルのLT(とは)銀河レベルのLT(とは)
銀河レベルのLT(とは)
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
AWSのNoSQL入門
AWSのNoSQL入門AWSのNoSQL入門
AWSのNoSQL入門
 
ログ管理のベストプラクティス
ログ管理のベストプラクティスログ管理のベストプラクティス
ログ管理のベストプラクティス
 
ビックデータ最適解とAWSにおける新しい武器
ビックデータ最適解とAWSにおける新しい武器ビックデータ最適解とAWSにおける新しい武器
ビックデータ最適解とAWSにおける新しい武器
 
MongoDBの可能性の話
MongoDBの可能性の話MongoDBの可能性の話
MongoDBの可能性の話
 
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた
 
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)
 
WiredTigerストレージエンジン楽しい
WiredTigerストレージエンジン楽しいWiredTigerストレージエンジン楽しい
WiredTigerストレージエンジン楽しい
 
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
 
Chef環境の闇
Chef環境の闇Chef環境の闇
Chef環境の闇
 
アメーバピグにおける自作サーバ運用それからどうなった
アメーバピグにおける自作サーバ運用それからどうなったアメーバピグにおける自作サーバ運用それからどうなった
アメーバピグにおける自作サーバ運用それからどうなった
 
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBCyberAgentにおけるMongoDB
CyberAgentにおけるMongoDB
 
後悔しないもんごもんごの使い方 〜サーバ編〜
後悔しないもんごもんごの使い方 〜サーバ編〜後悔しないもんごもんごの使い方 〜サーバ編〜
後悔しないもんごもんごの使い方 〜サーバ編〜
 
勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。
勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。
勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。
 
MongoDBのはじめての運用テキスト
MongoDBのはじめての運用テキストMongoDBのはじめての運用テキスト
MongoDBのはじめての運用テキスト
 
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例AmebaのMongoDB活用事例
AmebaのMongoDB活用事例
 
MongoDBのアレをアレする
MongoDBのアレをアレするMongoDBのアレをアレする
MongoDBのアレをアレする
 
やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮)
やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮)やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮)
やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮)
 

Hadoop輪読会第6章

  • 1.
  • 2.
  • 3. 6 章  MapReduce の動作
  • 4.
  • 5.
  • 6.
  • 7. MapReduce ジョブの実行遷移図 MapReduce プログラム JobClient JobTracker TaskTracker 子 Map タスク あるいは Redule タスク 共有ファイル システム ( HDFS 等) 1. ジョブの実行 2. 新規ジョブの取得 4. ジョブの投入 3. ジョブの リソースのコピー 5. ジョブの初期化 6. 入力スピリットの取得 8. ジョブのリソースの取得 9. 起動 10. 実行 7. ハートビート (タスクの返却) クライアント JVM クライアントノード Jobtracker ノード tasktracker ノード 子 JVM
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. ストリーミングとパイプ ストリーミング TaskTracker 子 Map タスク あるいは Redule タスク 9. 起動 実行 tasktracker ノード 子 JVM ストリーミング タスク 起動 出力キー / 値 入力キー / 値 標準入力 標準出力 TaskTracker 子 Map タスク あるいは Redule タスク 9. 起動 実行 tasktracker ノード 子 JVM C++map あるいは Reduce タスク ソケット 起動 出力キー / 値 パイプ
  • 15.
  • 16. 6.1.5 進行状況とステータスの更新 MapReduce プログラム JobClient JobTracker TaskTracker 子 Map タスク あるいは Redule タスク 共有ファイル システム ( HDFS 等) getJob getJobStatus 9. 起動 ハートビート クライアント JVM クライアントノード Jobtracker ノード tasktracker ノード 子 JVM 進行状況あるいはカウンターの更新 statusUpdate
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28. 6.4 シャッフルとソート map タスク reduce タスク map reduce 入力 スプリット メモリ内 バッファ コピーフェーズ ディスク上での マージ パーティション 取得 他の reduce へ 他の map から メモリとディスク上にデータが混在 マージ 出力 ソートフェーズ reduce フェーズ
  • 29.
  • 30.
  • 31.
  • 32. 6.4.3 設定のチューニング [map] map の出力を reducer に提供するために使われる、 tasktracker ごとのワーカースレッド数。これはクラスタ単位の設定であり、ジョブ単位には設定することは出来ない。 40 int tasktracker.http.threads map の出力に使われる圧縮コーデック。 org.apache.hadoop.io.compress.DefaultCodec クラス名 mapred.map.outupt.compression.codec combiner を実行する( combiner が指定されている場合)のに必要な最小限のスピルファイル数。 3 int min.num.spills.for.bombine map 出力のメモリバッファと、レコード境界インデックスの両方に適用される。ディスクにスピルを書き出し始めるかどうかの判定をするための利用率の閾値。 10 int io.sort.spill.percent io.sort.mb の中で、 map の出力のレコード境界を保存するために予約される比率。残りの領域は map の出力レコードのために使われる。 0.05 fload io.soft.record.percent map 出力のソートに使われるメモリバッファの量(単位はメガバイト) 100 int io.sort.mb 説明 デフォルト値 型 プロパティ名
  • 33. 6.4.3 設定のチューニング [reduce] reduce の過程で、 map の出力を保持するために使われるバッファの、総ヒープサイズに対する比率。 reduce フェーズが開始されるためには、メモリ内にある map の出力サイズがこのサイズよりも大きくなければならない。デフォルトでは、 reduce の処理が出来る限りのメモリを使えるようにするため、すべての map の出力は reduce が開始される前にディスク上にマージされている。しかし reducer がそれほどメモリを使わない場合、この値を増やすことでディスクとのやりとりを最小限に抑えられることがある。 0.0 float mapred.job.reduce.input.buffer.percent map の出力をマージし、スピルとしてディスクに書き出すプロセスが開始される、 map 出力数の閾値。 0 以下の値を指定した場合、閾値がない物と見なされ、スピルの動作は mapred.job.shuffle.merge.percent でのみ管理される。 1000 int mapred.inmem.merge.threshold map の出力バッファ( mapred.job.shuffle.input.buffer.percent で指定)に対する使用率の閾値。この値を超えると出力のディスクへのスピルへの書き出しが開始される。 0.66 float mapred.job.shuffle.merge.percent 総ヒープサイズに対する、シャッフルのコピーフェーズ間の map の出力バッファへの割り当て比率 0.70 float mapred.job.shuffle.input.burffer.percent このファイルをソートする際に同時にマージされる最大のストリーム数。 このプロパティは map でも使われる。 10 int io.sort.factor 1 つの map の出力を reduce が取得する際に、失敗したと判定するまでの時間(秒)。 reducer は、この時間内であれば、何回取得に失敗しても繰り返し転送をしてみることができる(その際には、指数関数的に間隔をあけていく) 300 int mapred.reduce.copy.backoff map の出力を reduce にコピーするために使われるスレッド数。 5 int maprd.reduce.parallel.copies 説明 デフォルト値 型 プロパティ名
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39. 6.5.4 タスクの実行環境 true このタスクが map タスクかどうか boolean mapred.task.is.map 3 ジョブ内でのタスク ID int mapred.task.partition attempt_200811201130_0004_m_000003_0 タスク試行 ID (タスク ID とは別) String mapred.task.id task_200811201130_0004_m_000003 タスク ID String mapred.tip.id job_200811201130_0004 ジョブ ID (フォーマットの説明は「 5.5.2  ジョブの起動」のコラム「ジョブ、タスク、タスク試行 ID 」を参照) String mapred.job.id 例 説明 型 プロパティ名
  • 40.
  • 41.
  • 42.

Hinweis der Redaktion

  1. (プロセス)
  2. リソース ・ジョブの JAR ( mapred.submit.replication プロパティで複製数をコントロール) ・設定ファイル ・計算された入力スプリット
  3. コア数とメモリ数
  4. クラッシュやスローダウン。 デフォルトは 10 分
  5. yahoo の capacity scheduler と facebook の Fair Scheduler
  6. contrib から持ってきて CLASSPATH 通して使用
  7. map や reduce の処理に影響を与えないくらい