Movatterモバイル変換


[0]ホーム

URL:


You&I, profile picture
Uploaded byYou&I
1,044 views

Hadoop事始め

http://www.wankuma.com/seminar/20101016nagoya15/今はやりのHadoopについて、MapReduceや分散ファイルシステムといった基盤技術から紹介したいと思います。

Embed presentation

Downloaded 28 times
Hadoop事始め 2010/10/16   You&I             印刷版 わんくま同盟 名古屋勉強会 #15
自己紹介•   H/N   You&I(読み:ユーアンドアイ)•   出身    生まれも育ちも名古屋市•   年齢    30代前半•   本職    商学部出身の職業プログラマ•   言語    C++, VisualBasic 6.0, 日本語COBOL•   日記    http://d.hatena.ne.jp/youandi/•   所属    大規模分散技術勉強会in名古屋          名古屋アジャイル勉強会          わんくま同盟               わんくま同盟 名古屋勉強会 #15
なぜHadoopか?• 安西先生!タイムドリブンなシミュレータのデ  ータ処理を速くしたいです!• HBaseで高速にデータ書き込み可能• HDFSにより大容量データも格納可能• MapReduce他で高速にデータ処理可能• 容易にスケールアップ可能• というイメージを持っています!        わんくま同盟 名古屋勉強会 #15
Agenda1. MapReduceとは?2. 分散ファイルシステムについて3. Hadoopの構成4. Hadoopの環境構築及び利用5. Hadoopのデモ6. まとめ         わんくま同盟 名古屋勉強会 #15
1. MapReduceとは?(1/10)• アレ?Hadoopの話は? →Hadoopは、Googleが2003年に発表した  GoogleFileSystem(GFS)及び、2004年に発  表したMapReduceに関する学術論文を基に  作られています。• Googleのシステムの詳細については書籍化  されています。 →Googleを支える技術   ISBN:978-4-7741-3432-1            わんくま同盟 名古屋勉強会 #15
1. MapReduceとは?(2/10)Hadoopで実装されいるGoogleの技術• The Google File System (2003年)  http://labs.google.com/papers/gfs.html• MapReduce: Simplified Data Processing on Larg  e Clusters (2004年)  http://labs.google.com/papers/mapreduce.html• BigTable: A Distributed Storage System for Struct  ured Data (2006年)  http://labs.google.com/papers/bigtable.html                  わんくま同盟 名古屋勉強会 #15
1. MapReduceとは?(3/10)• Googleでも使わているMapReduceってすげぇ!• ん?でももう使われてないよw  HighScalability - Google's Colossus Makes Searc  h Real-time by Dumping MapReduce  http://mcaf.ee/d6e97  (参考日本語訳)  AgileCat - Google Instant では、リアルタイム検索  のために MapReduce を排除!  http://wp.me/pwo1E-1Kf                 わんくま同盟 名古屋勉強会 #15
1. MapReduceとは?(4/10)• MapReduceの説明の前に、分散処理のイメ  ージについてちょっと説明• C++言語のソースコードを分散コンパイルす  る事例で紹介します(distcc等)  # ls  a.cpp b.cpp d.cpp e.cpp f.cpp Makefile  # make -j8  ・・・              わんくま同盟 名古屋勉強会 #15
1. MapReduceとは?(5/10)• 分散コンパイルの処理イメージ                              •PC1~PC4のコンパイル環境は                       PC2     同じバージョンの物を使う必要が        b.cpp                               ある。           b.o                •処理の振り分けは、ソースコード                               ファイル単位となる。           c.cpp              •分散コンパイルの場合、入力ファ PC1                   PC3     イルサイズ<出力ファイルサイズ           c.o                               となる。a.cpp  ↓         d.cpp a.o       d.o                        PC4                    わんくま同盟 名古屋勉強会 #15
1. MapReduceとは?(6/10)• いよいよMapReduce! • MapReduceは、関数型プログラミングのmap関   数、reduce関数の概念が基になっています • MapReduceにおいても、map/reduce関数で処   理を行います • map/reduce関数の入出力データは、Key-Valu   e形式で行います          わんくま同盟 名古屋勉強会 #15
1. MapReduceとは?(7/10)• Hadoop MapReduce  • 1回のデータ処理を「Job」と定義  • 1回のmap/reduce関数の処理を「Task」と定義  • Hadoopのシステムでは「Job」の管理を行うJob    Trackerが一つ存在し、「Task」の管理を行うTa    skTrackerは処理ノード毎に一つ存在します。  • map/reduce以外に、split、partition、combine、    shuffule、mergeといった処理が存在します              わんくま同盟 名古屋勉強会 #15
1. MapReduceとは?(8/10)• Hadoop MapReduceの処理の流れ      入力データ     入力スプリット           入力データをMapタスクの処理単位に分割      Mapタスク           入力データをKey-Value形式に変換   Partition/Combine   Key-Valueデータの細分化・間引き    Shuffule/Merge     Key単位でのデータソート     Reduceタスク         Key-Valueデータの集約      出力データ※開発者は一連の処理の流れを知っている必要はあるが、実装は一部のみで良い                       わんくま同盟 名古屋勉強会 #15
1. MapReduceとは?(9/10)• Hadoop MapReduceの処理イメージ           Split,               Combine, Partition,                      Task Client    Map                  Shuffule, Merge, Reduce                     Tracker                                        Task                                       Tracker   Job                 Task Tracker              Tracker                                        Task                                       Tracker                      Task                     Tracker※ちょっと質問。このシステムでテストの答案の採点・平均点・合否判定を させるとすると、どういう処理の流れになるでしょうか?                       わんくま同盟 名古屋勉強会 #15
1. MapReduceとは?(10/10)• MapReduceの得意とする処理 • 何でも出来る訳では無い • ×:リアルタイム処理 • ○:TEXT形式のデータの加工・集計    •   アクセスログ解析    •   文書中のワードカウント• 因みに天体画像処理でも使われています Parallel Distributed Image Stacking and Mosaici ng with Hadoop http://slidesha.re/dAd17i                わんくま同盟 名古屋勉強会 #15
2. 分散ファイルシステムについて(1/6)• 分散ファイルシステムについて  • 時代はBigData!  • データは肥大化する一方でPC1台ではデータは    収まりきらない  • そこで複数台のPCにデータを分散して保存  • 分散したデータは、ファイルシステムとして管理    をし易く  • 今まで保存出来なかったデータが保存できるよ    うになり、有効利用する流れ          わんくま同盟 名古屋勉強会 #15
2. 分散ファイルシステムについて(2/6)• データを複数のノードで分散して管理するの  で、データの一貫性やトランザクションの話で  よく以下の話題が出てきます • CAP(Consistency, Availability, Partition Toler   ance) • ACID(Atomicity, Consistency, Isolation, Dura   bility) • BASEトランザクション(Basically Available, Sof   t-state, Eventual consistency)• でも今日は無しの方向で!               わんくま同盟 名古屋勉強会 #15
2. 分散ファイルシステムについて(3/6)• HDFS(Hadoop Distributed File System)  • 全体を管理するNameNodeが1つと、数多くの    DataNodeで構成されています  • HDFSの1ブロックのサイズは、64MBです。多く    の場合、64MB以上の設定で利用されています  • PB(ペタバイト:1024TB)のデータも扱えます  • HDFSでは、データの読み込み、データの書き    込み(新規・追記)が可能。データの修正・変更    は出来ません              わんくま同盟 名古屋勉強会 #15
2. 分散ファイルシステムについて(4/6)• HDFSの続き • NameNodeは各DataNodeのデータセンター・   ラック内での位置情報を把握 • DataNode内で各DataNodeのブロックのデータ   のレプリカ(複製)をデフォルト設定では1つ持つ • この時複製は同一のデータセンターやラック上   のDataNodeとならないように考慮する • NameNodeはHDFS上で1つしか存在しない為、   単一障害点(SPOF:Single Point Of Failure)と   なっている            わんくま同盟 名古屋勉強会 #15
2. 分散ファイルシステムについて(5/6)• HDFSのイメージ                NameNode    DataNode    DataNode   DataNode    DataNode    DataNode   DataNode    DataNode    DataNode   DataNode    DataNode    DataNode   DataNode               わんくま同盟 名古屋勉強会 #15
2. 分散ファイルシステムについて(6/6)• Hadoop MapReduce+HDFSのイメージ                                  • JobTrackerとNameNodeは同一PC   Client           JobTracker                                    上でも動作可能                                  • JobTrackerはDataNode上のデータ                    NameNode        配置状況を考慮してTaskTrackerに                                    Taskを投げる      DataNode       DataNode       DataNode     TaskTracker    TaskTracker    TaskTracker      DataNode       DataNode       DataNode     TaskTracker    TaskTracker    TaskTracker                   わんくま同盟 名古屋勉強会 #15
3. Hadoopの構成(1/5)• Apache Hadoop プロジェクト    • http://hadoop.apache.org/•   アイコンはぞうさんです•   「ハドゥープ」って読みます•   「hadoop」は造語です•   Googleのシステムのクローン実装です    • Google MapReduce    • Google File System(GFS)    • BigTable                 わんくま同盟 名古屋勉強会 #15
3. Hadoopの構成(2/5)• 複数のサブプロジェクトで構成されています• 夜間バッチ処理等によく利用されています• 基本的にLinux上で利用します• 分散処理を行うJavaで作成されたフレームワ  ークです• 開発者はフレームワークを利用するアプリを  開発することになります        わんくま同盟 名古屋勉強会 #15
3. Hadoopの構成(3/5)• 単純な処理の組み合わせなのでノードの追  加により直線的なスケーラビリティが期待で  きます(設計・実装次第)• Streaming APIを利用するとJava以外の言  語からも利用できます• C++の場合はHadoop Pipesを利用します          わんくま同盟 名古屋勉強会 #15
3. Hadoopの構成(4/5)• GoogleとHadoopのシステム構成の比較     Google                 HadoopGoogle File System   Hadoop Distributed Fi      (GFS)           le System(HDFS)Google MapReduce     Hadoop MapReduce     BigTable               HBase                わんくま同盟 名古屋勉強会 #15
3. Hadoopの構成(5/5)• Hadoopのサブプロジェクト構成                         Oozie                    (Workflow Engine)                           Pig                  Hive                       (Data Flow)          (Batch SQL)                                   Chukwa   (Coordination)                                                               (Serialization)                    (Displaying, Monitoring, Analyzing Logs)    ZeroKeeper                                                                 Avro/Thrift                                MapReduce                      (Job Scheduling - Raw Processing)                         HBase                    (RealTime Query)                                    HDFS                       (Hadoop Distributed File System)                             わんくま同盟 名古屋勉強会 #15
4. Hadoopの環境構築及び利用(1/5)• 用意する物  • Linuxの環境(CentOS, Ubuntu)  • Java Runtime Environment(JRE)  • Hadoop※Windows環境ならCygwinを利用する方法も可能。 但し、本腰入れてメンテナンスされている訳では無 いので、常用は止めておいた方が良いかも。 参考:Hisidama's Hadoop Memo http://mcaf.ee/2034a            わんくま同盟 名古屋勉強会 #15
4. Hadoopの環境構築及び利用(2/5)• Linuxで環境構築する場合は、Cloudera社の  パッケージを利用するのが便利というか、こ  の方法が一般的。 Cloudera http://www.cloudera.com/• Cloudera社のパッケージには、Hadoop本体  以外にOozie等も含まれています。               わんくま同盟 名古屋勉強会 #15
4. Hadoopの環境構築及び利用(3/5)• Hadoopの実行(Java)% hadoop ¥ JavaAppName ¥ input.txt ¥ output             わんくま同盟 名古屋勉強会 #15
4. Hadoopの環境構築及び利用(4/5)• Hadoop Streamingでの実行(Ruby)% hadoop jar ¥$HADOOP_INSTALL/contrib/streaming/hadoop-*-str   eaming.jar ¥ -input input.txt ¥ -output output ¥ -mapper MyMapper.rb ¥ -reducer MyReducer.rb                わんくま同盟 名古屋勉強会 #15
4. Hadoopの環境構築及び利用(5/5)• Hadoop Pipesでの実行(C++)% hadoop pipes ¥ -D hadoop.pipes.java.recordreader=true ¥ -D hadoop.pipes.java.recordwriter=true ¥ -input input.txt ¥ -output output ¥ -program CppAppName                わんくま同盟 名古屋勉強会 #15
5. Hadoopのデモ何かデモを行う予定・・・。        わんくま同盟 名古屋勉強会 #15
6. まとめ(1/4)1. MapReduceとは?  •   Googleではもう使われていない  •   リアルタイムデータ処理には向かない  •   直線的なスケーラビリティ(設計次第)  •   パフォーマンスの肝は、如何にReduceタスクを      効率よく処理するか            わんくま同盟 名古屋勉強会 #15
6. まとめ(2/4)2. 分散ファイルシステムについて •   時代はBigData! •   捨てていたデータを有効活用できるかも? •   ネームノードが単一故障点となる •   パフォーマンスの肝は、如何にDiskとNetwork     のI/Oを減らすか            わんくま同盟 名古屋勉強会 #15
6. まとめ(3/4)3. Hadoopの構成  • Hadoopはフレームワークである  • 複数のプロジェクトで構成されている  • 自分で環境を作らなくても、今後はHadoopを簡    単に利用できるWebサービスが出てくる           わんくま同盟 名古屋勉強会 #15
6. まとめ(4/4)4. Hadoopの環境構築及び利用 • 基本的にLinux環境が前提 • HadoopはCloudera社のパッケージを使う • Hadoopから呼び出される、map/reduce関数を   実装する • 細かく制御したければ、Java又はJavaVM上で   動作する言語で開発する          わんくま同盟 名古屋勉強会 #15
参考文献・参考情報1. Hadoop(ISBN:978-4873114392)   http://www.oreilly.co.jp/books/9784873114392/2. Googleを支える技術(ISBN:978-4-7741-3432-1)   http://gihyo.jp/book/2008/978-4-7741-3432-13. 平成21年度 産学連携ソフトウェア工学実践事業報   告書の公表について - 高信頼クラウド実現用ソフト   ウェア開発(分散制御処理技術等に係るデータセン   ター高信頼化に向けた実証事業)   http://mcaf.ee/0c915                 わんくま同盟 名古屋勉強会 #15

Recommended

PPTX
Hadoop Troubleshooting 101 - Japanese Version
PDF
Hadoopのシステム設計・運用のポイント
PDF
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
PDF
Hadoop入門
PPTX
Hadoop -NameNode HAの仕組み-
PDF
CDH4.1オーバービュー
PDF
ただいまHadoop勉強中
PDF
Hadoopを用いた大規模ログ解析
PDF
MapReduce/YARNの仕組みを知る
PDF
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
PPTX
Hadoopソースコードリーディング8/MapRを使ってみた
PPTX
Hadoop -ResourceManager HAの仕組み-
PDF
HBaseを用いたグラフDB「Hornet」の設計と運用
PDF
オライリーセミナー Hive入門 #oreilly0724
PDF
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
PDF
Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)
PDF
HDFS新機能総まとめin 2015 (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo 2015 講演資料)
PDF
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12
PPTX
100億超メッセージ/日のサービスを 支えるHBase運用におけるチャレンジ
PDF
スケーラブルなシステムのためのHBaseスキーマ設計 #hcj13w
PDF
Hadoop Source Code Reading #17
PPTX
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
PDF
Tez on EMRを試してみた
PDF
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
PDF
Hadoop概要説明
PDF
MapR M7 技術概要
PDF
MapReduceプログラミング入門
PDF
IBM Rational Team Concertに触れてみた
PDF
Appmethodで何か作ってみる

More Related Content

PPTX
Hadoop Troubleshooting 101 - Japanese Version
PDF
Hadoopのシステム設計・運用のポイント
PDF
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
PDF
Hadoop入門
PPTX
Hadoop -NameNode HAの仕組み-
PDF
CDH4.1オーバービュー
PDF
ただいまHadoop勉強中
PDF
Hadoopを用いた大規模ログ解析
Hadoop Troubleshooting 101 - Japanese Version
Hadoopのシステム設計・運用のポイント
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
Hadoop入門
Hadoop -NameNode HAの仕組み-
CDH4.1オーバービュー
ただいまHadoop勉強中
Hadoopを用いた大規模ログ解析

What's hot

PDF
MapReduce/YARNの仕組みを知る
PDF
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
PPTX
Hadoopソースコードリーディング8/MapRを使ってみた
PPTX
Hadoop -ResourceManager HAの仕組み-
PDF
HBaseを用いたグラフDB「Hornet」の設計と運用
PDF
オライリーセミナー Hive入門 #oreilly0724
PDF
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
PDF
Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)
PDF
HDFS新機能総まとめin 2015 (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo 2015 講演資料)
PDF
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12
PPTX
100億超メッセージ/日のサービスを 支えるHBase運用におけるチャレンジ
PDF
スケーラブルなシステムのためのHBaseスキーマ設計 #hcj13w
PDF
Hadoop Source Code Reading #17
PPTX
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
PDF
Tez on EMRを試してみた
PDF
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
PDF
Hadoop概要説明
PDF
MapR M7 技術概要
PDF
MapReduceプログラミング入門
MapReduce/YARNの仕組みを知る
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
Hadoopソースコードリーディング8/MapRを使ってみた
Hadoop -ResourceManager HAの仕組み-
HBaseを用いたグラフDB「Hornet」の設計と運用
オライリーセミナー Hive入門 #oreilly0724
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)
HDFS新機能総まとめin 2015 (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo 2015 講演資料)
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12
100億超メッセージ/日のサービスを 支えるHBase運用におけるチャレンジ
スケーラブルなシステムのためのHBaseスキーマ設計 #hcj13w
Hadoop Source Code Reading #17
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
Tez on EMRを試してみた
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Hadoop概要説明
MapR M7 技術概要
MapReduceプログラミング入門

Viewers also liked

PDF
IBM Rational Team Concertに触れてみた
PDF
Appmethodで何か作ってみる
PDF
マシュマロ・チャレンジでチームビルディング体験
PDF
めざせスクラムマスター
PDF
しょうぎアプリ
PDF
Team Foundation Serivceを使ってみる
PDF
Silverlight+COMにチャレンジ
PDF
私の熱いアジャイル活動、アジャカツ!始まります フフッヒ
PDF
アジャイルマニフェストから始めるアジャイル
PDF
顧客のニーズを捉えて、システム統合していますか?
PDF
LT司会資料(わんくま同盟名古屋勉強会#21)
PPTX
わんくま同盟紹介資料
PPTX
並列処理について
PDF
名古屋アジャイルな見積りと計画づくり
PDF
ペーパークラフトで学ぶフィードバックと改善(鬼)
PDF
すぱこーに学ぶアプリ開発の第一歩
PDF
SWでKYT
PDF
Agree2009で作成するわんくま発表資料
IBM Rational Team Concertに触れてみた
Appmethodで何か作ってみる
マシュマロ・チャレンジでチームビルディング体験
めざせスクラムマスター
しょうぎアプリ
Team Foundation Serivceを使ってみる
Silverlight+COMにチャレンジ
私の熱いアジャイル活動、アジャカツ!始まります フフッヒ
アジャイルマニフェストから始めるアジャイル
顧客のニーズを捉えて、システム統合していますか?
LT司会資料(わんくま同盟名古屋勉強会#21)
わんくま同盟紹介資料
並列処理について
名古屋アジャイルな見積りと計画づくり
ペーパークラフトで学ぶフィードバックと改善(鬼)
すぱこーに学ぶアプリ開発の第一歩
SWでKYT
Agree2009で作成するわんくま発表資料

Similar to Hadoop事始め

PDF
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
PPT
Googleの基盤クローン Hadoopについて
PDF
MapReduce解説
PDF
Hadoop ecosystem NTTDATA osc15tk
PDF
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
PDF
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
PDF
OSC2012 Tokyo/Spring - Hadoop入門
PDF
Hadoopの概念と基本的知識
PPT
Hadoop ~Yahoo! JAPANの活用について~
PPTX
Cloudera大阪セミナー 20130219
PDF
Data-Intensive Text Processing with MapReduce(Ch1,Ch2)
PDF
OSC2012 OSC.DB Hadoop
PDF
Hadoop - OSC2010 Tokyo/Spring
PDF
OSC2011 Tokyo/Spring Hadoop入門
PPT
Hadoopの紹介
 
PDF
日々進化するHadoopの 「いま」
PPT
Hadoop~Yahoo!Japanの活用について
PDF
Hadoopによる大規模分散データ処理
PPTX
Hadoop
PPTX
今さら聞けないHadoop セントラルソフト株式会社(20120119)
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
Googleの基盤クローン Hadoopについて
MapReduce解説
Hadoop ecosystem NTTDATA osc15tk
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
OSC2012 Tokyo/Spring - Hadoop入門
Hadoopの概念と基本的知識
Hadoop ~Yahoo! JAPANの活用について~
Cloudera大阪セミナー 20130219
Data-Intensive Text Processing with MapReduce(Ch1,Ch2)
OSC2012 OSC.DB Hadoop
Hadoop - OSC2010 Tokyo/Spring
OSC2011 Tokyo/Spring Hadoop入門
Hadoopの紹介
 
日々進化するHadoopの 「いま」
Hadoop~Yahoo!Japanの活用について
Hadoopによる大規模分散データ処理
Hadoop
今さら聞けないHadoop セントラルソフト株式会社(20120119)

Hadoop事始め

  • 1.
    Hadoop事始め 2010/10/16 You&I 印刷版 わんくま同盟 名古屋勉強会 #15
  • 2.
    自己紹介•H/N You&I(読み:ユーアンドアイ)• 出身 生まれも育ちも名古屋市• 年齢 30代前半• 本職 商学部出身の職業プログラマ• 言語 C++, VisualBasic 6.0, 日本語COBOL• 日記 http://d.hatena.ne.jp/youandi/• 所属 大規模分散技術勉強会in名古屋 名古屋アジャイル勉強会 わんくま同盟 わんくま同盟 名古屋勉強会 #15
  • 3.
    なぜHadoopか?• 安西先生!タイムドリブンなシミュレータのデータ処理を速くしたいです!• HBaseで高速にデータ書き込み可能• HDFSにより大容量データも格納可能• MapReduce他で高速にデータ処理可能• 容易にスケールアップ可能• というイメージを持っています! わんくま同盟 名古屋勉強会 #15
  • 4.
    Agenda1. MapReduceとは?2. 分散ファイルシステムについて3.Hadoopの構成4. Hadoopの環境構築及び利用5. Hadoopのデモ6. まとめ わんくま同盟 名古屋勉強会 #15
  • 5.
    1. MapReduceとは?(1/10)• アレ?Hadoopの話は?→Hadoopは、Googleが2003年に発表した GoogleFileSystem(GFS)及び、2004年に発 表したMapReduceに関する学術論文を基に 作られています。• Googleのシステムの詳細については書籍化 されています。 →Googleを支える技術 ISBN:978-4-7741-3432-1 わんくま同盟 名古屋勉強会 #15
  • 6.
    1. MapReduceとは?(2/10)Hadoopで実装されいるGoogleの技術• TheGoogle File System (2003年) http://labs.google.com/papers/gfs.html• MapReduce: Simplified Data Processing on Larg e Clusters (2004年) http://labs.google.com/papers/mapreduce.html• BigTable: A Distributed Storage System for Struct ured Data (2006年) http://labs.google.com/papers/bigtable.html わんくま同盟 名古屋勉強会 #15
  • 7.
    1. MapReduceとは?(3/10)• Googleでも使わているMapReduceってすげぇ!•ん?でももう使われてないよw HighScalability - Google's Colossus Makes Searc h Real-time by Dumping MapReduce http://mcaf.ee/d6e97 (参考日本語訳) AgileCat - Google Instant では、リアルタイム検索 のために MapReduce を排除! http://wp.me/pwo1E-1Kf わんくま同盟 名古屋勉強会 #15
  • 8.
    1. MapReduceとは?(4/10)• MapReduceの説明の前に、分散処理のイメ ージについてちょっと説明• C++言語のソースコードを分散コンパイルす る事例で紹介します(distcc等) # ls a.cpp b.cpp d.cpp e.cpp f.cpp Makefile # make -j8 ・・・ わんくま同盟 名古屋勉強会 #15
  • 9.
    1. MapReduceとは?(5/10)• 分散コンパイルの処理イメージ •PC1~PC4のコンパイル環境は PC2 同じバージョンの物を使う必要が b.cpp ある。 b.o •処理の振り分けは、ソースコード ファイル単位となる。 c.cpp •分散コンパイルの場合、入力ファ PC1 PC3 イルサイズ<出力ファイルサイズ c.o となる。a.cpp ↓ d.cpp a.o d.o PC4 わんくま同盟 名古屋勉強会 #15
  • 10.
    1. MapReduceとは?(6/10)• いよいよMapReduce!• MapReduceは、関数型プログラミングのmap関 数、reduce関数の概念が基になっています • MapReduceにおいても、map/reduce関数で処 理を行います • map/reduce関数の入出力データは、Key-Valu e形式で行います わんくま同盟 名古屋勉強会 #15
  • 11.
    1. MapReduceとは?(7/10)• HadoopMapReduce • 1回のデータ処理を「Job」と定義 • 1回のmap/reduce関数の処理を「Task」と定義 • Hadoopのシステムでは「Job」の管理を行うJob Trackerが一つ存在し、「Task」の管理を行うTa skTrackerは処理ノード毎に一つ存在します。 • map/reduce以外に、split、partition、combine、 shuffule、mergeといった処理が存在します わんくま同盟 名古屋勉強会 #15
  • 12.
    1. MapReduceとは?(8/10)• HadoopMapReduceの処理の流れ 入力データ 入力スプリット 入力データをMapタスクの処理単位に分割 Mapタスク 入力データをKey-Value形式に変換 Partition/Combine Key-Valueデータの細分化・間引き Shuffule/Merge Key単位でのデータソート Reduceタスク Key-Valueデータの集約 出力データ※開発者は一連の処理の流れを知っている必要はあるが、実装は一部のみで良い わんくま同盟 名古屋勉強会 #15
  • 13.
    1. MapReduceとは?(9/10)• HadoopMapReduceの処理イメージ Split, Combine, Partition, Task Client Map Shuffule, Merge, Reduce Tracker Task Tracker Job Task Tracker Tracker Task Tracker Task Tracker※ちょっと質問。このシステムでテストの答案の採点・平均点・合否判定を させるとすると、どういう処理の流れになるでしょうか? わんくま同盟 名古屋勉強会 #15
  • 14.
    1. MapReduceとは?(10/10)• MapReduceの得意とする処理• 何でも出来る訳では無い • ×:リアルタイム処理 • ○:TEXT形式のデータの加工・集計 • アクセスログ解析 • 文書中のワードカウント• 因みに天体画像処理でも使われています Parallel Distributed Image Stacking and Mosaici ng with Hadoop http://slidesha.re/dAd17i わんくま同盟 名古屋勉強会 #15
  • 15.
    2. 分散ファイルシステムについて(1/6)• 分散ファイルシステムについて • 時代はBigData! • データは肥大化する一方でPC1台ではデータは 収まりきらない • そこで複数台のPCにデータを分散して保存 • 分散したデータは、ファイルシステムとして管理 をし易く • 今まで保存出来なかったデータが保存できるよ うになり、有効利用する流れ わんくま同盟 名古屋勉強会 #15
  • 16.
    2. 分散ファイルシステムについて(2/6)• データを複数のノードで分散して管理するの で、データの一貫性やトランザクションの話で よく以下の話題が出てきます • CAP(Consistency, Availability, Partition Toler ance) • ACID(Atomicity, Consistency, Isolation, Dura bility) • BASEトランザクション(Basically Available, Sof t-state, Eventual consistency)• でも今日は無しの方向で! わんくま同盟 名古屋勉強会 #15
  • 17.
    2. 分散ファイルシステムについて(3/6)• HDFS(HadoopDistributed File System) • 全体を管理するNameNodeが1つと、数多くの DataNodeで構成されています • HDFSの1ブロックのサイズは、64MBです。多く の場合、64MB以上の設定で利用されています • PB(ペタバイト:1024TB)のデータも扱えます • HDFSでは、データの読み込み、データの書き 込み(新規・追記)が可能。データの修正・変更 は出来ません わんくま同盟 名古屋勉強会 #15
  • 18.
    2. 分散ファイルシステムについて(4/6)• HDFSの続き• NameNodeは各DataNodeのデータセンター・ ラック内での位置情報を把握 • DataNode内で各DataNodeのブロックのデータ のレプリカ(複製)をデフォルト設定では1つ持つ • この時複製は同一のデータセンターやラック上 のDataNodeとならないように考慮する • NameNodeはHDFS上で1つしか存在しない為、 単一障害点(SPOF:Single Point Of Failure)と なっている わんくま同盟 名古屋勉強会 #15
  • 19.
    2. 分散ファイルシステムについて(5/6)• HDFSのイメージ NameNode DataNode DataNode DataNode DataNode DataNode DataNode DataNode DataNode DataNode DataNode DataNode DataNode わんくま同盟 名古屋勉強会 #15
  • 20.
    2. 分散ファイルシステムについて(6/6)• HadoopMapReduce+HDFSのイメージ • JobTrackerとNameNodeは同一PC Client JobTracker 上でも動作可能 • JobTrackerはDataNode上のデータ NameNode 配置状況を考慮してTaskTrackerに Taskを投げる DataNode DataNode DataNode TaskTracker TaskTracker TaskTracker DataNode DataNode DataNode TaskTracker TaskTracker TaskTracker わんくま同盟 名古屋勉強会 #15
  • 21.
    3. Hadoopの構成(1/5)• ApacheHadoop プロジェクト • http://hadoop.apache.org/• アイコンはぞうさんです• 「ハドゥープ」って読みます• 「hadoop」は造語です• Googleのシステムのクローン実装です • Google MapReduce • Google File System(GFS) • BigTable わんくま同盟 名古屋勉強会 #15
  • 22.
    3. Hadoopの構成(2/5)• 複数のサブプロジェクトで構成されています•夜間バッチ処理等によく利用されています• 基本的にLinux上で利用します• 分散処理を行うJavaで作成されたフレームワ ークです• 開発者はフレームワークを利用するアプリを 開発することになります わんくま同盟 名古屋勉強会 #15
  • 23.
    3. Hadoopの構成(3/5)• 単純な処理の組み合わせなのでノードの追 加により直線的なスケーラビリティが期待で きます(設計・実装次第)• Streaming APIを利用するとJava以外の言 語からも利用できます• C++の場合はHadoop Pipesを利用します わんくま同盟 名古屋勉強会 #15
  • 24.
    3. Hadoopの構成(4/5)• GoogleとHadoopのシステム構成の比較 Google HadoopGoogle File System Hadoop Distributed Fi (GFS) le System(HDFS)Google MapReduce Hadoop MapReduce BigTable HBase わんくま同盟 名古屋勉強会 #15
  • 25.
    3. Hadoopの構成(5/5)• Hadoopのサブプロジェクト構成 Oozie (Workflow Engine) Pig Hive (Data Flow) (Batch SQL) Chukwa (Coordination) (Serialization) (Displaying, Monitoring, Analyzing Logs) ZeroKeeper Avro/Thrift MapReduce (Job Scheduling - Raw Processing) HBase (RealTime Query) HDFS (Hadoop Distributed File System) わんくま同盟 名古屋勉強会 #15
  • 26.
    4. Hadoopの環境構築及び利用(1/5)• 用意する物 • Linuxの環境(CentOS, Ubuntu) • Java Runtime Environment(JRE) • Hadoop※Windows環境ならCygwinを利用する方法も可能。 但し、本腰入れてメンテナンスされている訳では無 いので、常用は止めておいた方が良いかも。 参考:Hisidama's Hadoop Memo http://mcaf.ee/2034a わんくま同盟 名古屋勉強会 #15
  • 27.
    4. Hadoopの環境構築及び利用(2/5)• Linuxで環境構築する場合は、Cloudera社の パッケージを利用するのが便利というか、こ の方法が一般的。 Cloudera http://www.cloudera.com/• Cloudera社のパッケージには、Hadoop本体 以外にOozie等も含まれています。 わんくま同盟 名古屋勉強会 #15
  • 28.
    4. Hadoopの環境構築及び利用(3/5)• Hadoopの実行(Java)%hadoop ¥ JavaAppName ¥ input.txt ¥ output わんくま同盟 名古屋勉強会 #15
  • 29.
    4. Hadoopの環境構築及び利用(4/5)• HadoopStreamingでの実行(Ruby)% hadoop jar ¥$HADOOP_INSTALL/contrib/streaming/hadoop-*-str eaming.jar ¥ -input input.txt ¥ -output output ¥ -mapper MyMapper.rb ¥ -reducer MyReducer.rb わんくま同盟 名古屋勉強会 #15
  • 30.
    4. Hadoopの環境構築及び利用(5/5)• HadoopPipesでの実行(C++)% hadoop pipes ¥ -D hadoop.pipes.java.recordreader=true ¥ -D hadoop.pipes.java.recordwriter=true ¥ -input input.txt ¥ -output output ¥ -program CppAppName わんくま同盟 名古屋勉強会 #15
  • 31.
    5. Hadoopのデモ何かデモを行う予定・・・。 わんくま同盟 名古屋勉強会 #15
  • 32.
    6. まとめ(1/4)1. MapReduceとは? • Googleではもう使われていない • リアルタイムデータ処理には向かない • 直線的なスケーラビリティ(設計次第) • パフォーマンスの肝は、如何にReduceタスクを 効率よく処理するか わんくま同盟 名古屋勉強会 #15
  • 33.
    6. まとめ(2/4)2. 分散ファイルシステムについて• 時代はBigData! • 捨てていたデータを有効活用できるかも? • ネームノードが単一故障点となる • パフォーマンスの肝は、如何にDiskとNetwork のI/Oを減らすか わんくま同盟 名古屋勉強会 #15
  • 34.
    6. まとめ(3/4)3. Hadoopの構成 • Hadoopはフレームワークである • 複数のプロジェクトで構成されている • 自分で環境を作らなくても、今後はHadoopを簡 単に利用できるWebサービスが出てくる わんくま同盟 名古屋勉強会 #15
  • 35.
    6. まとめ(4/4)4. Hadoopの環境構築及び利用• 基本的にLinux環境が前提 • HadoopはCloudera社のパッケージを使う • Hadoopから呼び出される、map/reduce関数を 実装する • 細かく制御したければ、Java又はJavaVM上で 動作する言語で開発する わんくま同盟 名古屋勉強会 #15
  • 36.
    参考文献・参考情報1. Hadoop(ISBN:978-4873114392) http://www.oreilly.co.jp/books/9784873114392/2. Googleを支える技術(ISBN:978-4-7741-3432-1) http://gihyo.jp/book/2008/978-4-7741-3432-13. 平成21年度 産学連携ソフトウェア工学実践事業報 告書の公表について - 高信頼クラウド実現用ソフト ウェア開発(分散制御処理技術等に係るデータセン ター高信頼化に向けた実証事業) http://mcaf.ee/0c915 わんくま同盟 名古屋勉強会 #15

[8]ページ先頭

©2009-2025 Movatter.jp