SlideShare a Scribd company logo
1 of 36
Download to read offline
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
Agenda

1. 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                 Hadoop

Google 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-1
3. 平成21年度 産学連携ソフトウェア工学実践事業報
   告書の公表について - 高信頼クラウド実現用ソフト
   ウェア開発(分散制御処理技術等に係るデータセン
   ター高信頼化に向けた実証事業)
   http://mcaf.ee/0c915


                 わんくま同盟 名古屋勉強会 #15

More Related Content

What's hot

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

What's hot (20)

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

Viewers also liked

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

Viewers also liked (18)

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

Similar to Hadoop事始め

Cloudera大阪セミナー 20130219
Cloudera大阪セミナー 20130219Cloudera大阪セミナー 20130219
Cloudera大阪セミナー 20130219Cloudera Japan
 
ゾウ使いへの第一歩
ゾウ使いへの第一歩ゾウ使いへの第一歩
ゾウ使いへの第一歩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
 
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~Developers Summit
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
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
 
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...NTT DATA OSS Professional Services
 
第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポートYou&I
 
Googleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてGoogleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてKazuki Ohta
 
Kuduを調べてみた #dogenzakalt
Kuduを調べてみた #dogenzakaltKuduを調べてみた #dogenzakalt
Kuduを調べてみた #dogenzakaltToshihiro Suzuki
 
MapReduceを使った並列化 20111212
MapReduceを使った並列化 20111212MapReduceを使った並列化 20111212
MapReduceを使った並列化 20111212marony
 
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~NTT DATA OSS Professional Services
 
Rubyによるお手軽分散処理
Rubyによるお手軽分散処理Rubyによるお手軽分散処理
Rubyによるお手軽分散処理maebashi
 

Similar to Hadoop事始め (20)

Cloudera大阪セミナー 20130219
Cloudera大阪セミナー 20130219Cloudera大阪セミナー 20130219
Cloudera大阪セミナー 20130219
 
ゾウ使いへの第一歩
ゾウ使いへの第一歩ゾウ使いへの第一歩
ゾウ使いへの第一歩
 
A 2-3ゾウ使いへの第一歩 hadoop on azure 編
A 2-3ゾウ使いへの第一歩 hadoop on azure 編A 2-3ゾウ使いへの第一歩 hadoop on azure 編
A 2-3ゾウ使いへの第一歩 hadoop on azure 編
 
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
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)
 
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
 
Hadoop ecosystem NTTDATA osc15tk
Hadoop ecosystem NTTDATA osc15tkHadoop ecosystem NTTDATA osc15tk
Hadoop ecosystem NTTDATA osc15tk
 
MapReduce解説
MapReduce解説MapReduce解説
MapReduce解説
 
OSC2012 OSC.DB Hadoop
OSC2012 OSC.DB HadoopOSC2012 OSC.DB Hadoop
OSC2012 OSC.DB Hadoop
 
第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート
 
Googleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてGoogleの基盤クローン Hadoopについて
Googleの基盤クローン Hadoopについて
 
Kuduを調べてみた #dogenzakalt
Kuduを調べてみた #dogenzakaltKuduを調べてみた #dogenzakalt
Kuduを調べてみた #dogenzakalt
 
MapReduceを使った並列化 20111212
MapReduceを使った並列化 20111212MapReduceを使った並列化 20111212
MapReduceを使った並列化 20111212
 
はやわかりHadoop
はやわかりHadoopはやわかりHadoop
はやわかりHadoop
 
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
 
Hadoop, NoSQL, GlusterFSの概要
Hadoop, NoSQL, GlusterFSの概要Hadoop, NoSQL, GlusterFSの概要
Hadoop, NoSQL, GlusterFSの概要
 
Spark shark
Spark sharkSpark shark
Spark shark
 
Rubyによるお手軽分散処理
Rubyによるお手軽分散処理Rubyによるお手軽分散処理
Rubyによるお手軽分散処理
 

Recently uploaded

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Recently uploaded (9)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

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. Agenda 1. 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の技術 • 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
  • 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) • Hadoop MapReduce • 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) • Hadoop MapReduceの処理の流れ 入力データ 入力スプリット 入力データをMapタスクの処理単位に分割 Mapタスク 入力データをKey-Value形式に変換 Partition/Combine Key-Valueデータの細分化・間引き Shuffule/Merge Key単位でのデータソート Reduceタスク Key-Valueデータの集約 出力データ ※開発者は一連の処理の流れを知っている必要はあるが、実装は一部のみで良い わんくま同盟 名古屋勉強会 #15
  • 13. 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
  • 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(Hadoop Distributed 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) • 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
  • 21. 3. Hadoopの構成(1/5) • Apache Hadoop プロジェクト • 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 Hadoop Google 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) • 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
  • 30. 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
  • 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-1 3. 平成21年度 産学連携ソフトウェア工学実践事業報 告書の公表について - 高信頼クラウド実現用ソフト ウェア開発(分散制御処理技術等に係るデータセン ター高信頼化に向けた実証事業) http://mcaf.ee/0c915 わんくま同盟 名古屋勉強会 #15