SlideShare uma empresa Scribd logo
1 de 38
Hadoop入門
オープンソースで作るGoogleのような分散処理基盤


          2010年2月27日
             山下 真一
      shin1.ym あっと gmail



           OSC 2010 Tokyo/Spring
アジェンダ

Hadoopの基礎知識                どのあたりがGoogleのようなのか?



 Hadoopの使い方                      どう使うのか?



Hadoopを簡単に・・・                    手軽に使いたい!




 Hadoopのポイント                     注意点とか応用とか



                                             2
         OSC 2010 Tokyo/Spring
Hadoopの基礎知識




   OSC 2010 Tokyo/Spring
Hadoopとは?
          Googleの分散処理システムのOSS版
                                                          GFS
          HDFS (Hadoop Distributed File System)
                                                     MapReduce
                 MapReduce Framework


     http://hadoop.apache.org/common/

   Apache Projectで開発中
                                                Javaで記述
Yahoo!版
           Apache 2.0 ライセンス
               リリース最新版0.20.2, 開発版0.21~
   Cloudera版                                                4
                        OSC 2010 Tokyo/Spring
Hadoopを使っているところ

Yahoo!   Facebook                 Last.fm

Amazon       Veoh                   IBM

 VISA      JP Morgan Chase



楽天                                   Baidu
        NTTデータ
はてな                               China Mobile
                                                 5
          OSC 2010 Tokyo/Spring
Hadoopの特長
                                      何日経っても終わらない
           バッチ処理



                                           ・・・・・・・・




たくさんのデータ

                                      短時間で終わらせられる!


                       ・・・・・・・・
                                                      6
              OSC 2010 Tokyo/Spring
Hadoopの特長

色々なデータ                             スケーラビリティ




     コモディティなサーバ


                                          7
           OSC 2010 Tokyo/Spring
Hadoopの主な使い方
集計
                          ABC, 100点
                          ZZZ, 50点
                          XYZ, 90点


抽出                                         その他には・・・
     2月27日発売のゲーム
                      ・○×ファンタジー              変換
                      ・クイズ☆?!
                      ・▲□サッカー1X            分散ストレージ

分析


                                                  8
                   OSC 2010 Tokyo/Spring
Hadoopの不向きなこと

                     少量データの扱い方
  0'80''
                           ・・・ ×10000000
                       1KB

リアルタイム処理

                                   データの追記


                   ×
           OSC 2010 Tokyo/Spring
Hadoopの構成


 Pig    Hive     ZooKeeper               Sawzall         Chubby

 MapReduce            HBase             MapReduce        BigTable


        HDFS                                       GFS


       Hadoop                                 Google


メインプロジェクト   サブプロジェクト                                          10
                OSC 2010 Tokyo/Spring
HDFSイメージ
                          巨大なストレージ




ファイル格納や取り出し                            HDFS



Hadoopクライアント
                                              DataNode

                                         NameNode   11
               OSC 2010 Tokyo/Spring
HDFSの構成
          DataNode
  ブロック                                        ① ① ③ ②
           状態監視
   管理                Heartbeat
                                              ② ① ②
 メタ情報
  管理
                                              ③ ① ②     ①
        NameNode
        (MASTER)                              ② ① ③ ①
            3   1    2

                                              ①       ① ②

ファイル
                                                  ブロック
   Hadoopクライアント                    DataNode       (HDFS上で保持)
                                    (SLAVE)                 12
                     OSC 2010 Tokyo/Spring
HDFSの異常時

  × ×
           DataNode
   ブロック                                       ① ① ③ ②
            状態監視



                                              × ××
    管理




  ×                                      ×
                                              ②       ①    ②
  メタ情報
   管理
                                              ③ ① ②        ①    ②
         NameNode
                                              ② ① ③ ①       ②
HDFS停止      HDFS破壊
                                              ①   ①       ① ②
NameNode=単一障害点
                                         レプリケーションの発生
                                    DataNode
          DataNode=単体で故障しても大丈夫 13
                      OSC 2010 Tokyo/Spring
MapReduceの流れ
 This is a pen.       <Pen,1>
I played tennis.     <Tennis,1>
     ・・・              <This,1>               <Pen: [1, 1, 1]>
                       ・・・                    <This: [1, 1]>

               Map
                                                                <Pen, 3>
                                         Reduce
                                                                <This, 2>
                                                                  ・・・
               Map

                                         Reduce
                     Shuffle                                      ・・・

               Map    Keyで集約


           <Key, Value>の形でデータを管理
                                                                            14
                     OSC 2010 Tokyo/Spring
HadoopでのMapReduceイメージ
                          巨大なストレージ


                             処理

MapReduceジョブの実行                        HDFS     処理



Hadoopクライアント
                                              TaskTracker

               JobTracker                              15
               OSC 2010 Tokyo/Spring
MapReduceの構成
      MapReduceジョブ
                  TaskTracker                     Map Map Reduce
           管理
                    状態監視
    タスク
                                                        ① ① ③ ②
     管理
                          Heartbeat
JobTracker                                          M   R   R
 (MASTER)
                                                    R   M   M   M


               NameNode
                                                    M   R
  MapReduceジョブ
                                                    M   R   R


                                     TaskTracker        タスク実行待ち
     Hadoopクライアント
                                       (SLAVE)          タスク実行中
                                                                    16
                          OSC 2010 Tokyo/Spring         タスク実行(競争)中
MapReduce(TaskTracker)異常時
                                            Map MapReduce

JobTracker        Heartbeat
                                                  ① ① ③ ②
 (MASTER)
                                             M    R   R


                                              R   M   M   M

NameNode
                                              M   R




                                       ××
MapReduceジョブ
                                              T   R   R


                               TaskTracker タスク再割り当て
   Hadoopクライアント
                                                              17
                    OSC 2010 Tokyo/Spring
MapReduce(JobTracker)異常時
     × ×
      MapReduceジョブ




   ×
                  TaskTracker                     Map MapReduce
           管理
                    状態監視
    タスク
                                                        ① ① ③ ②
     管理

                                                    M   M   R
JobTracker
                                                    R   M   M   R



 MapReduceジョブ・・・失敗                                  M   R


                                                    M   R   R


                                     TaskTracker
    Hadoopクライアント
                                                                    18
                          OSC 2010 Tokyo/Spring
Hadoopの使い方




   OSC 2010 Tokyo/Spring
Hadoopの動作条件
Linux
                 JavaTM 1.6                        Hadoop
Windows
             +     (Sun)                  +         Core
                                                            =
(Cygwin)
  試しに “localhost”上にNameNodeとDataNodeを起動させる方法

1. ダウンロードしたHadoopパッケージを展開、配置

2. 設定ファイルの確認 (./conf/core-site.xml, ./conf/hdfs-site.xml,
   ./conf/hadoop-env.sh)

3. NameNodeのフォーマット (./bin/hadoop namenode -format)

4. NameNode起動 (./bin/hadoop-daemon.sh start namenode)

5. DataNode起動 (./bin/hadoop-daemon.sh start datanode)
                                                                20
                           OSC 2010 Tokyo/Spring
手軽にHadoopを使ってみたい方へ
その1
      Cloudera Hadoop Training VM
  http://www.cloudera.com/developers/downloads/virtual-machine/
その2
       Amazon Elastic MapReduce
           http://aws.amazon.com/elasticmapreduce/
その3
                 Sun Grid Engine
                http://www.sun.com/software/sge/


                                                                  21
                       OSC 2010 Tokyo/Spring
Hadoop操作方法
       コマンドラインによる操作
HDFS
     ファイル投入(put)                        ファイル取り出し(get)

  ファイル操作(cp, mv, rm)               権限操作(chmod, chown)

 ディレクトリ操作(mkdir, rmr)        ファイルシステムチェック(fsck)

                                                        など
MapReduce
       ジョブ投入                             ジョブ優先度設定

       ジョブリスト                              ジョブ停止

                                                        など
                                                         22
                OSC 2010 Tokyo/Spring
Hadoopの状態確認
Webインタフェースから状況を確認可能
HDFS
       http://[NameNode Address]:50070/

              HDFS上のファイル情報

  HDFS状態(容量、使用量、DataNodeの数や状態)

MapReduce
       http://[JobTracker Address]:50030/

              ジョブ実行状況の確認

              ジョブ実行履歴・分析
                                            23
                  OSC 2010 Tokyo/Spring
Hadoopでの
MapReduceアプリケーション作成
      MapReduceジョブ定義クラス
  入力・出力ファイルのパス、ジョブ名、ジョブ各種設定
    データ型クラス              処理内で扱うデータ型の定義

  入力フォーマットクラス            入力フォーマッタの定義

     Mapクラス              Map処理の定義

   Partitonerクラス          Shuffle処理への定義

    Groupingクラス           Shuffle処理への定義

    Reduceクラス             Reduce処理の定義

  出力フォーマットクラス             出力フォーマッタの定義

                                          24
             OSC 2010 Tokyo/Spring
MapReduceジョブのデモ
Hadoop付属のMapReduceサンプルを実行

   WordCount                           PiEstimator
    ファイル内の                   モンテカルロ法での円周率計算
   単語を抽出・集計


    TeraSort                              Grep
   データの並び替え                              データ抽出



                                                     25
               OSC 2010 Tokyo/Spring
WordCountのソースコード
public c la s s WordCount {

 public s tatic c la s s TokenizerMapper
   e x te nds Mapper<Object, Text, Text, IntWritable>{                  public s tatic void main(String[] args) throw s Exception {
                                                                          Configuration conf = ne w Configuration();
     private fina l s ta tic IntWritable one = ne w IntWritable(1);       String[] otherArgs =
     private Text word = ne w Text();                                      ne w GenericOptionsParser(conf,
                                                                       args).getRemainingArgs();
   public void map(Object key, Text value, Context context                if (otherArgs.length != 2) {
               ) throw s IOException, InterruptedException {                System.err.println("Usage: wordcount <in> <out>");
     StringTokenizer itr = ne w                                             System.exit(2);
StringTokenizer(value.toString());                                        }
     w hile (itr.hasMoreTokens()) {                                       Job job = ne w Job(conf, "word count");
      word.set(itr.nextToken());                                          job.setJarByClass(WordCount.c la s s );
                                                                          job.setMapperClass(TokenizerMapper.c la s s );

                                                       Map
      context.write(word, one);
     }                                                                    job.setCombinerClass(IntSumReducer.c la s s );
   }                                                                      job.setReducerClass(IntSumReducer.c la s s );
 }
                                                                          job.setOutputKeyClass(Text.c la s s );
 public s tatic c la s s IntSumReducer                                    job.setOutputValueClass(IntWritable.c la s s );
    e x te nds Reducer<Text,IntWritable,Text,IntWritable> {               FileInputFormat.addInputP ath(job, ne w Path(otherArgs[0]));
  private IntWritable result = ne w IntWritable();                        FileOutputFormat.setO utputP ath(job, ne w Path(otherArgs[1]));
                                                                          System.exit(job.waitForCompletion(true ) ? 0 : 1);
     public void reduce(Text key, Iterable<IntWritable> values,         }
                   Context context                                     }


       int sum = 0;
                   ) throw s IOException, InterruptedException {
                                                                                                                            Job
       for (IntWritable val : values) {
        sum += val.get();
       }
       result.set(sum);
                                           Reduce                                                  約50行
       context.write(key, result);                                                                                                   26
     }
 }                                                          OSC 2010 Tokyo/Spring
Hadoopを簡単に使うために




     OSC 2010 Tokyo/Spring
HadoopのMapReduceの特徴

  Javaによる記述                   記述量は10数行~数百行




  Javaわかんない、、、                好きな言語で記述したい、、、


  Perl                                     Python
         Hadoop Streaming
 Ruby                                    Shell Script

Map用、Reduce用のスクリプトやコマンドで実現
                                                        28
                 OSC 2010 Tokyo/Spring
MapReduceを意識しないツール
  MapReduceラッパ的なツールをあります!


            Pig
Pig Latin を記述することでMapReduceを実行
Yahoo! 内では30%~の処理はPigで実行
                                             Hive
どちらも数行程度で                         HiveQLと呼ばれるSQLに似た言語で
                                        MapReduceを実行
MapReduceを実行できる!
                               Facebook 内では大半の処理をHiveで実行
                                                         29
                     OSC 2010 Tokyo/Spring
PigやHiveの良い点
MapReduceの実装を意識しなくても良い!
  JOINとか、、、                コーディング知識とか、、、

     最適なジョブ実行計画を作成

      個別関数の組み込み
     足りない機能は容易に追加可能


      思い立ったら即実行!

                                           30
              OSC 2010 Tokyo/Spring
WordCountをPigで書いたら、、、
Rawdata = LOAD '/tmp/' USING PigStorage(',') AS (row:chararray);

Words = FOREACH Rawdata GENERATE FLATTEN (TOKENIZE((chararray)$0));

Grouped = GROUP Words BY $0;

Counts = FOREACH Grouped GENERATE COUNT(Words), group;

Ordered = ORDER Counts by $0 DESC;

STORE Ordered INTO 'pig-wordcount';




     6行でWordCountを実現!!!
                                                                      31
                            OSC 2010 Tokyo/Spring
Hadoopの注意点




   OSC 2010 Tokyo/Spring
注意点その1:ログ
     とにかくログがたくさん出ます!
                                             MapReduceジョブ、、、
   NameNode                               JobTracker
  ブロック情報、HDFS操作、、、


DataNode         TaskTracker
                               Taskの進捗状況、、、

                                        実行したTaskごとに出力
   MapTask                                ReduceTask
     実行したTaskごとに出力

 ログ格納領域はHadoopとは別に用意したほうがいいでしょう


                                                         33
                                           Chukwa
                OSC 2010 Tokyo/Spring
注意点その2:メモリ
    案外メモリも消費します!

NameNode                      JobTracker
 1ファイル≒200Byte、、、                    入力データ、Task情報



          TaskTracker

       1つのTaskにつき200MB(デフォルト)

MapTask                              ReduceTask


                                                    34
             OSC 2010 Tokyo/Spring
その他に、、、




  OSC 2010 Tokyo/Spring
その他のHadoop関連パッケージ
  Cascading                              Sqoop
 MapReduce処理支援
                                          SQL to Hadoop


             Hadoop Spring Framework
                            Spring Frameworkとの組み合わせ

  HadoopDB
     RDBMSとのハイブリット                        少量データ、追記
                                    HBase
 Mountable HDFS                  分散Key-Valueストア
HDFSをファイルシステム(ext3など)に
        マウント
                                    HyperTable
                                                          36
                 OSC 2010 Tokyo/Spring
Hadoopユーザ会


待望のHadoopユーザ会が
   発足しました!
http://groups.google.co.jp/group/hadoop-jp




                                             37
               OSC 2010 Tokyo/Spring
まとめ
●   Hadoop:
    OSSで構築するGoogleのような処理基盤
         HDFS                      MapReduce
●   大規模なデータを簡単な記述で処理できる
    Javaでも数十行、PigやHiveならもっと簡単に!


●   いろんなデータを”とりあえず”分析しましょう!
                                               38
                OSC 2010 Tokyo/Spring

Mais conteúdo relacionado

Mais procurados

NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~NTT DATA OSS Professional Services
 
AspectJを用いた大規模分散システムHadoopの監視とプロファイリング
AspectJを用いた大規模分散システムHadoopの監視とプロファイリングAspectJを用いた大規模分散システムHadoopの監視とプロファイリング
AspectJを用いた大規模分散システムHadoopの監視とプロファイリングYusuke Shimizu
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムRecruit Technologies
 
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)NTT DATA OSS Professional Services
 
Hadoop -ResourceManager HAの仕組み-
Hadoop -ResourceManager HAの仕組み-Hadoop -ResourceManager HAの仕組み-
Hadoop -ResourceManager HAの仕組み-Yuki Gonda
 
Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Ken SASAKI
 
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...MapR Technologies Japan
 
Hadoop概要説明
Hadoop概要説明Hadoop概要説明
Hadoop概要説明Satoshi Noto
 
今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)Toru Takizawa
 
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
 
Learning spaerk chapter03
Learning spaerk chapter03Learning spaerk chapter03
Learning spaerk chapter03Akimitsu Takagi
 
FluentdやNorikraを使った データ集約基盤への取り組み紹介
FluentdやNorikraを使った データ集約基盤への取り組み紹介FluentdやNorikraを使った データ集約基盤への取り組み紹介
FluentdやNorikraを使った データ集約基盤への取り組み紹介Recruit Technologies
 
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 for programmer
Hadoop for programmerHadoop for programmer
Hadoop for programmerSho Shimauchi
 
ただいまHadoop勉強中
ただいまHadoop勉強中ただいまHadoop勉強中
ただいまHadoop勉強中Satoshi Noto
 
20100930 sig startups
20100930 sig startups20100930 sig startups
20100930 sig startupsIchiro Fukuda
 

Mais procurados (20)

Hadoop事始め
Hadoop事始めHadoop事始め
Hadoop事始め
 
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
 
Hadoop ecosystem NTTDATA osc15tk
Hadoop ecosystem NTTDATA osc15tkHadoop ecosystem NTTDATA osc15tk
Hadoop ecosystem NTTDATA osc15tk
 
AspectJを用いた大規模分散システムHadoopの監視とプロファイリング
AspectJを用いた大規模分散システムHadoopの監視とプロファイリングAspectJを用いた大規模分散システムHadoopの監視とプロファイリング
AspectJを用いた大規模分散システムHadoopの監視とプロファイリング
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)
 
Hadoop -ResourceManager HAの仕組み-
Hadoop -ResourceManager HAの仕組み-Hadoop -ResourceManager HAの仕組み-
Hadoop -ResourceManager HAの仕組み-
 
Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識
 
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...
 
Hadoop概要説明
Hadoop概要説明Hadoop概要説明
Hadoop概要説明
 
今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)
 
MapR M7 技術概要
MapR M7 技術概要MapR M7 技術概要
MapR M7 技術概要
 
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 講演資料)
 
Learning spaerk chapter03
Learning spaerk chapter03Learning spaerk chapter03
Learning spaerk chapter03
 
FluentdやNorikraを使った データ集約基盤への取り組み紹介
FluentdやNorikraを使った データ集約基盤への取り組み紹介FluentdやNorikraを使った データ集約基盤への取り組み紹介
FluentdやNorikraを使った データ集約基盤への取り組み紹介
 
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 for programmer
Hadoop for programmerHadoop for programmer
Hadoop for programmer
 
ただいまHadoop勉強中
ただいまHadoop勉強中ただいまHadoop勉強中
ただいまHadoop勉強中
 
Apache Sparkのご紹介 (後半:技術トピック)
Apache Sparkのご紹介 (後半:技術トピック)Apache Sparkのご紹介 (後半:技術トピック)
Apache Sparkのご紹介 (後半:技術トピック)
 
20100930 sig startups
20100930 sig startups20100930 sig startups
20100930 sig startups
 

Destaque

White Paper Differentiators - Prometric
White Paper Differentiators - PrometricWhite Paper Differentiators - Prometric
White Paper Differentiators - PrometricPrometric
 
Amigos del pes
Amigos del pesAmigos del pes
Amigos del pesmoralo2
 
Plan V1.5 (optimized size)
Plan V1.5 (optimized size)Plan V1.5 (optimized size)
Plan V1.5 (optimized size)Mindy Wilkinson
 
Resume-updated012017
Resume-updated012017Resume-updated012017
Resume-updated012017Megan Colvin
 
Perempuan tidak berasal daripada tulang rusuk
Perempuan tidak berasal daripada tulang rusukPerempuan tidak berasal daripada tulang rusuk
Perempuan tidak berasal daripada tulang rusukR&R Darulkautsar
 
Soft binding ganga b.tech
Soft binding ganga b.techSoft binding ganga b.tech
Soft binding ganga b.techAjay Rohilla
 
Play a music on LUNA-88K2
Play a music on LUNA-88K2Play a music on LUNA-88K2
Play a music on LUNA-88K2Kenji Aoyama
 
にゃんぼについて
にゃんぼについてにゃんぼについて
にゃんぼについてKo Takagi
 
cabildeo del Municipio escolar. " todos Unidos por el derecho a una educación...
cabildeo del Municipio escolar. " todos Unidos por el derecho a una educación...cabildeo del Municipio escolar. " todos Unidos por el derecho a una educación...
cabildeo del Municipio escolar. " todos Unidos por el derecho a una educación...saveju
 
シラサギ紹介 OSC島根
シラサギ紹介 OSC島根シラサギ紹介 OSC島根
シラサギ紹介 OSC島根Naokazu Nohara
 
Comparing stars and planets.
Comparing stars and planets.Comparing stars and planets.
Comparing stars and planets.Haileybury
 
IoTスタートアップの法務・知財【基礎編】_GVA法律事務所
IoTスタートアップの法務・知財【基礎編】_GVA法律事務所IoTスタートアップの法務・知財【基礎編】_GVA法律事務所
IoTスタートアップの法務・知財【基礎編】_GVA法律事務所gvalaw
 
Oral hypoglycemic agents
Oral hypoglycemic agentsOral hypoglycemic agents
Oral hypoglycemic agentsSiham Gafer
 
SCAMPER Technique of Creative Thinking
SCAMPER Technique of Creative ThinkingSCAMPER Technique of Creative Thinking
SCAMPER Technique of Creative ThinkingVogeloh Cin Ceat
 
エグジットを意識した資金調達のために起業家が押さえておきたい投資契約のポイント_GVA法律事務所弁護士藤江大輔
エグジットを意識した資金調達のために起業家が押さえておきたい投資契約のポイント_GVA法律事務所弁護士藤江大輔エグジットを意識した資金調達のために起業家が押さえておきたい投資契約のポイント_GVA法律事務所弁護士藤江大輔
エグジットを意識した資金調達のために起業家が押さえておきたい投資契約のポイント_GVA法律事務所弁護士藤江大輔gvalaw
 

Destaque (20)

White Paper Differentiators - Prometric
White Paper Differentiators - PrometricWhite Paper Differentiators - Prometric
White Paper Differentiators - Prometric
 
Amigos del pes
Amigos del pesAmigos del pes
Amigos del pes
 
Plan V1.5 (optimized size)
Plan V1.5 (optimized size)Plan V1.5 (optimized size)
Plan V1.5 (optimized size)
 
Requisição deserviço
Requisição deserviçoRequisição deserviço
Requisição deserviço
 
Resume-updated012017
Resume-updated012017Resume-updated012017
Resume-updated012017
 
Perempuan tidak berasal daripada tulang rusuk
Perempuan tidak berasal daripada tulang rusukPerempuan tidak berasal daripada tulang rusuk
Perempuan tidak berasal daripada tulang rusuk
 
Soft binding ganga b.tech
Soft binding ganga b.techSoft binding ganga b.tech
Soft binding ganga b.tech
 
OSCFUKUOKA
OSCFUKUOKAOSCFUKUOKA
OSCFUKUOKA
 
Salt Range Field Report
Salt Range Field Report Salt Range Field Report
Salt Range Field Report
 
Play a music on LUNA-88K2
Play a music on LUNA-88K2Play a music on LUNA-88K2
Play a music on LUNA-88K2
 
にゃんぼについて
にゃんぼについてにゃんぼについて
にゃんぼについて
 
cabildeo del Municipio escolar. " todos Unidos por el derecho a una educación...
cabildeo del Municipio escolar. " todos Unidos por el derecho a una educación...cabildeo del Municipio escolar. " todos Unidos por el derecho a una educación...
cabildeo del Municipio escolar. " todos Unidos por el derecho a una educación...
 
Tema 3 4º eso
Tema 3 4º esoTema 3 4º eso
Tema 3 4º eso
 
シラサギ紹介 OSC島根
シラサギ紹介 OSC島根シラサギ紹介 OSC島根
シラサギ紹介 OSC島根
 
Comparing stars and planets.
Comparing stars and planets.Comparing stars and planets.
Comparing stars and planets.
 
IoTスタートアップの法務・知財【基礎編】_GVA法律事務所
IoTスタートアップの法務・知財【基礎編】_GVA法律事務所IoTスタートアップの法務・知財【基礎編】_GVA法律事務所
IoTスタートアップの法務・知財【基礎編】_GVA法律事務所
 
Oral hypoglycemic agents
Oral hypoglycemic agentsOral hypoglycemic agents
Oral hypoglycemic agents
 
Actividades habilidades
Actividades habilidadesActividades habilidades
Actividades habilidades
 
SCAMPER Technique of Creative Thinking
SCAMPER Technique of Creative ThinkingSCAMPER Technique of Creative Thinking
SCAMPER Technique of Creative Thinking
 
エグジットを意識した資金調達のために起業家が押さえておきたい投資契約のポイント_GVA法律事務所弁護士藤江大輔
エグジットを意識した資金調達のために起業家が押さえておきたい投資契約のポイント_GVA法律事務所弁護士藤江大輔エグジットを意識した資金調達のために起業家が押さえておきたい投資契約のポイント_GVA法律事務所弁護士藤江大輔
エグジットを意識した資金調達のために起業家が押さえておきたい投資契約のポイント_GVA法律事務所弁護士藤江大輔
 

Semelhante a Hadoop - OSC2010 Tokyo/Spring

【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~Developers Summit
 
分散処理基盤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
 
Hadoopを用いた大規模ログ解析
Hadoopを用いた大規模ログ解析Hadoopを用いた大規模ログ解析
Hadoopを用いた大規模ログ解析shuichi iida
 
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...NTT DATA OSS Professional Services
 
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たちATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たちAdvancedTechNight
 
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)NTT DATA OSS Professional Services
 
Zabbix jp勉強会 Hadoop-HBaseの監視_20120512
Zabbix jp勉強会 Hadoop-HBaseの監視_20120512Zabbix jp勉強会 Hadoop-HBaseの監視_20120512
Zabbix jp勉強会 Hadoop-HBaseの監視_20120512Seiichiro Ishida
 
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
 
Osc2012 spring HBase Report
Osc2012 spring HBase ReportOsc2012 spring HBase Report
Osc2012 spring HBase ReportSeiichiro Ishida
 
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
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Yuki Gonda
 
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組みNTT DATA OSS Professional Services
 
Hadoop splittable-lzo-compression
Hadoop splittable-lzo-compressionHadoop splittable-lzo-compression
Hadoop splittable-lzo-compressionDaiki Sato
 
データサイズ2ペタ ソネット・メディア・ネットワークスでのImpala活用とHadoop運用
データサイズ2ペタ ソネット・メディア・ネットワークスでのImpala活用とHadoop運用データサイズ2ペタ ソネット・メディア・ネットワークスでのImpala活用とHadoop運用
データサイズ2ペタ ソネット・メディア・ネットワークスでのImpala活用とHadoop運用Yoshikazu Suganuma
 

Semelhante a Hadoop - OSC2010 Tokyo/Spring (20)

日々進化するHadoopの 「いま」
日々進化するHadoopの 「いま」日々進化するHadoopの 「いま」
日々進化するHadoopの 「いま」
 
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
 
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
 
MapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知るMapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知る
 
Apache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATAApache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATA
 
Hadoopを用いた大規模ログ解析
Hadoopを用いた大規模ログ解析Hadoopを用いた大規模ログ解析
Hadoopを用いた大規模ログ解析
 
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...
 
Hadoop, NoSQL, GlusterFSの概要
Hadoop, NoSQL, GlusterFSの概要Hadoop, NoSQL, GlusterFSの概要
Hadoop, NoSQL, GlusterFSの概要
 
はやわかりHadoop
はやわかりHadoopはやわかりHadoop
はやわかりHadoop
 
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たちATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
 
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
 
Zabbix jp勉強会 Hadoop-HBaseの監視_20120512
Zabbix jp勉強会 Hadoop-HBaseの監視_20120512Zabbix jp勉強会 Hadoop-HBaseの監視_20120512
Zabbix jp勉強会 Hadoop-HBaseの監視_20120512
 
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)
 
Osc2012 spring HBase Report
Osc2012 spring HBase ReportOsc2012 spring HBase Report
Osc2012 spring HBase Report
 
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
 
Hadoop loves H2
Hadoop loves H2Hadoop loves H2
Hadoop loves H2
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-
 
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
 
Hadoop splittable-lzo-compression
Hadoop splittable-lzo-compressionHadoop splittable-lzo-compression
Hadoop splittable-lzo-compression
 
データサイズ2ペタ ソネット・メディア・ネットワークスでのImpala活用とHadoop運用
データサイズ2ペタ ソネット・メディア・ネットワークスでのImpala活用とHadoop運用データサイズ2ペタ ソネット・メディア・ネットワークスでのImpala活用とHadoop運用
データサイズ2ペタ ソネット・メディア・ネットワークスでのImpala活用とHadoop運用
 

Hadoop - OSC2010 Tokyo/Spring

  • 1. Hadoop入門 オープンソースで作るGoogleのような分散処理基盤 2010年2月27日 山下 真一 shin1.ym あっと gmail OSC 2010 Tokyo/Spring
  • 2. アジェンダ Hadoopの基礎知識 どのあたりがGoogleのようなのか? Hadoopの使い方 どう使うのか? Hadoopを簡単に・・・ 手軽に使いたい! Hadoopのポイント 注意点とか応用とか 2 OSC 2010 Tokyo/Spring
  • 3. Hadoopの基礎知識 OSC 2010 Tokyo/Spring
  • 4. Hadoopとは? Googleの分散処理システムのOSS版 GFS HDFS (Hadoop Distributed File System) MapReduce MapReduce Framework http://hadoop.apache.org/common/ Apache Projectで開発中 Javaで記述 Yahoo!版 Apache 2.0 ライセンス リリース最新版0.20.2, 開発版0.21~ Cloudera版 4 OSC 2010 Tokyo/Spring
  • 5. Hadoopを使っているところ Yahoo! Facebook Last.fm Amazon Veoh IBM VISA JP Morgan Chase 楽天 Baidu NTTデータ はてな China Mobile 5 OSC 2010 Tokyo/Spring
  • 6. Hadoopの特長 何日経っても終わらない バッチ処理 ・・・・・・・・ たくさんのデータ 短時間で終わらせられる! ・・・・・・・・ 6 OSC 2010 Tokyo/Spring
  • 7. Hadoopの特長 色々なデータ スケーラビリティ コモディティなサーバ 7 OSC 2010 Tokyo/Spring
  • 8. Hadoopの主な使い方 集計 ABC, 100点 ZZZ, 50点 XYZ, 90点 抽出 その他には・・・ 2月27日発売のゲーム ・○×ファンタジー 変換 ・クイズ☆?! ・▲□サッカー1X 分散ストレージ 分析 8 OSC 2010 Tokyo/Spring
  • 9. Hadoopの不向きなこと 少量データの扱い方 0'80'' ・・・ ×10000000 1KB リアルタイム処理 データの追記 × OSC 2010 Tokyo/Spring
  • 10. Hadoopの構成 Pig Hive ZooKeeper Sawzall Chubby MapReduce HBase MapReduce BigTable HDFS GFS Hadoop Google メインプロジェクト サブプロジェクト 10 OSC 2010 Tokyo/Spring
  • 11. HDFSイメージ 巨大なストレージ ファイル格納や取り出し HDFS Hadoopクライアント DataNode NameNode 11 OSC 2010 Tokyo/Spring
  • 12. HDFSの構成 DataNode ブロック ① ① ③ ② 状態監視 管理 Heartbeat ② ① ② メタ情報 管理 ③ ① ② ① NameNode (MASTER) ② ① ③ ① 3 1 2 ① ① ② ファイル ブロック Hadoopクライアント DataNode (HDFS上で保持) (SLAVE) 12 OSC 2010 Tokyo/Spring
  • 13. HDFSの異常時 × × DataNode ブロック ① ① ③ ② 状態監視 × ×× 管理 × × ② ① ② メタ情報 管理 ③ ① ② ① ② NameNode ② ① ③ ① ② HDFS停止 HDFS破壊 ① ① ① ② NameNode=単一障害点 レプリケーションの発生 DataNode DataNode=単体で故障しても大丈夫 13 OSC 2010 Tokyo/Spring
  • 14. MapReduceの流れ This is a pen. <Pen,1> I played tennis. <Tennis,1> ・・・ <This,1> <Pen: [1, 1, 1]> ・・・ <This: [1, 1]> Map <Pen, 3> Reduce <This, 2> ・・・ Map Reduce Shuffle ・・・ Map Keyで集約 <Key, Value>の形でデータを管理 14 OSC 2010 Tokyo/Spring
  • 15. HadoopでのMapReduceイメージ 巨大なストレージ 処理 MapReduceジョブの実行 HDFS 処理 Hadoopクライアント TaskTracker JobTracker 15 OSC 2010 Tokyo/Spring
  • 16. MapReduceの構成 MapReduceジョブ TaskTracker Map Map Reduce 管理 状態監視 タスク ① ① ③ ② 管理 Heartbeat JobTracker M R R (MASTER) R M M M NameNode M R MapReduceジョブ M R R TaskTracker タスク実行待ち Hadoopクライアント (SLAVE) タスク実行中 16 OSC 2010 Tokyo/Spring タスク実行(競争)中
  • 17. MapReduce(TaskTracker)異常時 Map MapReduce JobTracker Heartbeat ① ① ③ ② (MASTER) M R R R M M M NameNode M R ×× MapReduceジョブ T R R TaskTracker タスク再割り当て Hadoopクライアント 17 OSC 2010 Tokyo/Spring
  • 18. MapReduce(JobTracker)異常時 × × MapReduceジョブ × TaskTracker Map MapReduce 管理 状態監視 タスク ① ① ③ ② 管理 M M R JobTracker R M M R MapReduceジョブ・・・失敗 M R M R R TaskTracker Hadoopクライアント 18 OSC 2010 Tokyo/Spring
  • 19. Hadoopの使い方 OSC 2010 Tokyo/Spring
  • 20. Hadoopの動作条件 Linux JavaTM 1.6 Hadoop Windows + (Sun) + Core = (Cygwin) 試しに “localhost”上にNameNodeとDataNodeを起動させる方法 1. ダウンロードしたHadoopパッケージを展開、配置 2. 設定ファイルの確認 (./conf/core-site.xml, ./conf/hdfs-site.xml, ./conf/hadoop-env.sh) 3. NameNodeのフォーマット (./bin/hadoop namenode -format) 4. NameNode起動 (./bin/hadoop-daemon.sh start namenode) 5. DataNode起動 (./bin/hadoop-daemon.sh start datanode) 20 OSC 2010 Tokyo/Spring
  • 21. 手軽にHadoopを使ってみたい方へ その1 Cloudera Hadoop Training VM http://www.cloudera.com/developers/downloads/virtual-machine/ その2 Amazon Elastic MapReduce http://aws.amazon.com/elasticmapreduce/ その3 Sun Grid Engine http://www.sun.com/software/sge/ 21 OSC 2010 Tokyo/Spring
  • 22. Hadoop操作方法 コマンドラインによる操作 HDFS ファイル投入(put) ファイル取り出し(get) ファイル操作(cp, mv, rm) 権限操作(chmod, chown) ディレクトリ操作(mkdir, rmr) ファイルシステムチェック(fsck) など MapReduce ジョブ投入 ジョブ優先度設定 ジョブリスト ジョブ停止 など 22 OSC 2010 Tokyo/Spring
  • 23. Hadoopの状態確認 Webインタフェースから状況を確認可能 HDFS http://[NameNode Address]:50070/ HDFS上のファイル情報 HDFS状態(容量、使用量、DataNodeの数や状態) MapReduce http://[JobTracker Address]:50030/ ジョブ実行状況の確認 ジョブ実行履歴・分析 23 OSC 2010 Tokyo/Spring
  • 24. Hadoopでの MapReduceアプリケーション作成 MapReduceジョブ定義クラス 入力・出力ファイルのパス、ジョブ名、ジョブ各種設定 データ型クラス 処理内で扱うデータ型の定義 入力フォーマットクラス 入力フォーマッタの定義 Mapクラス Map処理の定義 Partitonerクラス Shuffle処理への定義 Groupingクラス Shuffle処理への定義 Reduceクラス Reduce処理の定義 出力フォーマットクラス 出力フォーマッタの定義 24 OSC 2010 Tokyo/Spring
  • 25. MapReduceジョブのデモ Hadoop付属のMapReduceサンプルを実行 WordCount PiEstimator ファイル内の モンテカルロ法での円周率計算 単語を抽出・集計 TeraSort Grep データの並び替え データ抽出 25 OSC 2010 Tokyo/Spring
  • 26. WordCountのソースコード public c la s s WordCount { public s tatic c la s s TokenizerMapper e x te nds Mapper<Object, Text, Text, IntWritable>{ public s tatic void main(String[] args) throw s Exception { Configuration conf = ne w Configuration(); private fina l s ta tic IntWritable one = ne w IntWritable(1); String[] otherArgs = private Text word = ne w Text();     ne w GenericOptionsParser(conf, args).getRemainingArgs(); public void map(Object key, Text value, Context context if (otherArgs.length != 2) { ) throw s IOException, InterruptedException { System.err.println("Usage: wordcount <in> <out>"); StringTokenizer itr = ne w System.exit(2); StringTokenizer(value.toString()); } w hile (itr.hasMoreTokens()) { Job job = ne w Job(conf, "word count"); word.set(itr.nextToken()); job.setJarByClass(WordCount.c la s s ); job.setMapperClass(TokenizerMapper.c la s s ); Map context.write(word, one); } job.setCombinerClass(IntSumReducer.c la s s ); } job.setReducerClass(IntSumReducer.c la s s ); } job.setOutputKeyClass(Text.c la s s ); public s tatic c la s s IntSumReducer job.setOutputValueClass(IntWritable.c la s s ); e x te nds Reducer<Text,IntWritable,Text,IntWritable> { FileInputFormat.addInputP ath(job, ne w Path(otherArgs[0])); private IntWritable result = ne w IntWritable(); FileOutputFormat.setO utputP ath(job, ne w Path(otherArgs[1])); System.exit(job.waitForCompletion(true ) ? 0 : 1); public void reduce(Text key, Iterable<IntWritable> values, } Context context } int sum = 0; ) throw s IOException, InterruptedException { Job for (IntWritable val : values) { sum += val.get(); } result.set(sum); Reduce 約50行 context.write(key, result); 26 } } OSC 2010 Tokyo/Spring
  • 27. Hadoopを簡単に使うために OSC 2010 Tokyo/Spring
  • 28. HadoopのMapReduceの特徴 Javaによる記述 記述量は10数行~数百行 Javaわかんない、、、 好きな言語で記述したい、、、 Perl Python Hadoop Streaming Ruby Shell Script Map用、Reduce用のスクリプトやコマンドで実現 28 OSC 2010 Tokyo/Spring
  • 29. MapReduceを意識しないツール MapReduceラッパ的なツールをあります! Pig Pig Latin を記述することでMapReduceを実行 Yahoo! 内では30%~の処理はPigで実行 Hive どちらも数行程度で HiveQLと呼ばれるSQLに似た言語で MapReduceを実行 MapReduceを実行できる! Facebook 内では大半の処理をHiveで実行 29 OSC 2010 Tokyo/Spring
  • 30. PigやHiveの良い点 MapReduceの実装を意識しなくても良い! JOINとか、、、 コーディング知識とか、、、 最適なジョブ実行計画を作成 個別関数の組み込み 足りない機能は容易に追加可能 思い立ったら即実行! 30 OSC 2010 Tokyo/Spring
  • 31. WordCountをPigで書いたら、、、 Rawdata = LOAD '/tmp/' USING PigStorage(',') AS (row:chararray); Words = FOREACH Rawdata GENERATE FLATTEN (TOKENIZE((chararray)$0)); Grouped = GROUP Words BY $0; Counts = FOREACH Grouped GENERATE COUNT(Words), group; Ordered = ORDER Counts by $0 DESC; STORE Ordered INTO 'pig-wordcount'; 6行でWordCountを実現!!! 31 OSC 2010 Tokyo/Spring
  • 32. Hadoopの注意点 OSC 2010 Tokyo/Spring
  • 33. 注意点その1:ログ とにかくログがたくさん出ます! MapReduceジョブ、、、 NameNode JobTracker ブロック情報、HDFS操作、、、 DataNode TaskTracker Taskの進捗状況、、、 実行したTaskごとに出力 MapTask ReduceTask 実行したTaskごとに出力 ログ格納領域はHadoopとは別に用意したほうがいいでしょう 33 Chukwa OSC 2010 Tokyo/Spring
  • 34. 注意点その2:メモリ 案外メモリも消費します! NameNode JobTracker 1ファイル≒200Byte、、、 入力データ、Task情報 TaskTracker 1つのTaskにつき200MB(デフォルト) MapTask ReduceTask 34 OSC 2010 Tokyo/Spring
  • 35. その他に、、、 OSC 2010 Tokyo/Spring
  • 36. その他のHadoop関連パッケージ Cascading Sqoop MapReduce処理支援 SQL to Hadoop Hadoop Spring Framework Spring Frameworkとの組み合わせ HadoopDB RDBMSとのハイブリット 少量データ、追記 HBase Mountable HDFS 分散Key-Valueストア HDFSをファイルシステム(ext3など)に マウント HyperTable 36 OSC 2010 Tokyo/Spring
  • 37. Hadoopユーザ会 待望のHadoopユーザ会が 発足しました! http://groups.google.co.jp/group/hadoop-jp 37 OSC 2010 Tokyo/Spring
  • 38. まとめ ● Hadoop: OSSで構築するGoogleのような処理基盤 HDFS MapReduce ● 大規模なデータを簡単な記述で処理できる Javaでも数十行、PigやHiveならもっと簡単に! ● いろんなデータを”とりあえず”分析しましょう! 38 OSC 2010 Tokyo/Spring