SlideShare a Scribd company logo
Hadoop 入門
 オープンソースで作る分散処理基盤
2012 年 3 月 17 日
Shinichi Yamashita



                                         1
                     OSC 2012 Tokyo/Spring
自己紹介

Shinichi Yamashita (やました しんいち)
 象の面倒をみることが最近の日課


最近興味を持っているもの
 パッチの投稿
 文書の執筆にダメ出し


最近思うこと、「少し休ませて。。。」




                                                     2
                                 OSC 2012 Tokyo/Spring
本日の発表内容

Hadoop を知ろう
 Hadoop とは何か、 Hadoop のイイ所


Hadoop の使い方
 Hadoop での処理、事例


Hadoop とその仲間たち
 Hadoop と関連技術の紹介


Hadoop を動かそう
 デモとして実際に Hadoop を動作
                                                3
                            OSC 2012 Tokyo/Spring
本日の発表内容

Hadoop を知ろう
 Hadoop とは何か、 Hadoop のイイ所


Hadoop の使い方
 Hadoop での処理、事例


Hadoop とその仲間たち
 Hadoop と関連技術の紹介


Hadoop を動かそう
 デモとして実際に Hadoop を動作
                                                4
                            OSC 2012 Tokyo/Spring
Hadoop を知ろう

Hadoop について説明します




                                       5
                   OSC 2012 Tokyo/Spring
Hadoop とは何か?

ベースは Google 社が発表した 2 つの論文
 The Google File System (ACM, 2003)
 MapReduce: Simplified Data Processing on Large
 Clusters (OSDI, 2004)
Doug Cutting 氏が中心となり Java で実装


2 つの主要コンポーネントから構成
  HDFS : Hadoop 分散ファイルシステム
 Hadoop MapReduce : 分散処理フレームワーク



                                                             6
                                         OSC 2012 Tokyo/Spring
MapReduce の仕組み

   スコア
                     Shuffle
    一覧         (同じ Key でデータを集約)
               <A, 10>
                         <A, {10,25} >
               <B, 20>
                         <C, {10,5,15} >    何らかの処理
         Map   <C, 15>

                              Reduce         <A, 35 >
               <D, 5>                        <C, 30 >
         Map   <A, 25>
               <C, 10>
               <D, 10>
                                             <B, 30 >
                              Reduce
               <B, 10>                       <D, 15 >
         Map
               <C, 5>
                         <B, {20,10} >
                         <D, {5,10} >
   スコアの抽出   ・ <Key, Value> の形でデータを管理
            ・ Map や Reduce が分散処理の対象
                                                               7
                                           OSC 2012 Tokyo/Spring
HDFS と MapReduce の関係
                      タスク            TaskTracker(s)
                     M M M
ジョブ情報       タスク分割                    M             ・・・
                     R R R
                    JobTracker
JobClient                                   R      ・・・



 クライ                     入出力データは
 アント データローカリティを           HDFS と連携
                                                   ・・・   M
      意識した割り当て
                                                             スレーブ
                            マスター                              サーバ
 ファイルをブロックに分割               サーバ                    ・・・
     配置を指示
                    NameNode
DFSClient                                          ・・・




                                                   ・・・


 ファイル                                    DataNode(s)
                         ラックを意識した
                         ブロック配置を実施                                  8
                                                OSC 2012 Tokyo/Spring
Hadoop のイイ所

従来数時間~数日要していたバッチ処理を数分~短時間で処理
 同じ処理を複数のサーバで分担して処理させることがポイント
大量のさまざまなデータを分散して保存して利用可能
 容量が不足しても単純にサーバを追加することで増設可能


容易に手に入るコモディティなサーバで利用可能
 Hadoop を構成するサーバとして、特別な製品は不要
データは複製して分散配置、処理も異常時にはリトライ
 特定のスレーブサーバが故障してもサービスは継続できる仕組み


                                                9
                            OSC 2012 Tokyo/Spring
Hadoop と RDBMS の違い

 その 1: データ格納
  Hadoop : 自由に格納、処理するときに意味づけ
  RDBMS : 格納するときに定義、正規化された状態で保存
 その 2: データアクセス
  Hadoop : シーケンシャルアクセス
  RDBMS : ランダムアクセス
 その 3: 処理の向き
  Hadoop : 大規模なデータを一気に処理
  RDBMS : 小さなデータを高速に処理

  両方の良いところを組み合わせて処理することが重要
                                              10
                           OSC 2012 Tokyo/Spring
Hadoop のさまざまなバージョン

Hadoop のバージョン
 1.0.X : 現在の stable ( 3/10 1.0.1 リリース)
   0.20.203.X : 以前の stable
  0.20.X : 以前の stable
 1.1.X : beta 版
 0.23.X : alpha 版、 MapReduce 2.0 対応
 0.22.X : セキュリティ非対応版、先進的な機能


とりあえず stable を利用すれば大丈夫


                                                            11
                                         OSC 2012 Tokyo/Spring
Hadoop のさまざまなディストリビューション

Apache コミュニティ版


CDH 版
 Cloudera's Distribution for including Apache Hadoop
 0.20.2 ベースでパッチや新機能を追加したディストリビューション


その他にも利用できる Hadoop 環境
 Amazon Elastic MapReduce
 MapR
 Apache Hadoop for Windows Azure

                                                              12
                                           OSC 2012 Tokyo/Spring
Hadoop の使い方

Hadoop の使い方や事例について説明します




                                         13
                      OSC 2012 Tokyo/Spring
Hadoop の使い方

集計
 ログデータなどをさまざまな観点で数えること
抽出
 多くのデータから必要な情報を取り出すこと
分析
 特定のデータを変形させて特性を見つけること
 異なる種類のデータを組み合わせて特性を見つけること
加工
 あるデータを必要な情報に変化させること


                                            14
                         OSC 2012 Tokyo/Spring
事例 1: GE 社の製品に関する感性分析

自社製品に関するつぶやき情報や記事を収集し、製品に対する評価を分析
従来 MySQL で 50 時間要した処理を Hadoop では 30 分強で処理

 異なるデータを組み合わせて
    特性を見つける


アドレス : Hadoop World 2010




                                                   15
                                OSC 2012 Tokyo/Spring
事例 2: CBS Interactive 社の統合環境

自社が運営するさまざまな Web サイトのログを Hadoop で格納
DWH やデータベースで扱うためのデータを生成
      ログデータ集計
     必要なデータを抽出


アドレス : Hadoop World 2011




                                                  16
                               OSC 2012 Tokyo/Spring
Hadoop とその仲間たち

Hadoop エコシステムについて説明します




                                            17
                         OSC 2012 Tokyo/Spring
処理言語関係の関連技術

より簡単に MapReduce を実行するためのツールも開発されています


Apache Pig
 データフローによりデータをどのように処理するか定義
 シンプルかつ少ない記述で、 MapReduce を意識せず実行


Apache Hive
 SQL ライクな記法により処理内容を定義
 SQL を知っている人にとって導入が容易


                                                18
                             OSC 2012 Tokyo/Spring
カラム指向型データベース

Hadoop は、数時間~数日を数分~数十分に短縮する技術
 秒未満の処理には、 Hadoop 単体では適用できません


Apache HBase
 HDFS 上で動作するカラム指向型データベース
 “ 行キー”、”列ファミリ”、”値”、”タイムスタンプ” でデータを管理
 行キーに対して低レイテンシーで読み書きを実現
 Hadoop と同様にスケーラブルな仕組み
  数百 TB 程度までの動作実績あり


                                                  19
                               OSC 2012 Tokyo/Spring
データ入出力の関連技術

Hadoop 環境にデータを入出力する技術も開発されています


Apache Flume
 様々なログ・データを損失無く Hadoop 環境に格納する仕組み
 ZooKeeper (分散協調ソフトウェア)により高可用性を実現


Apache Sqoop
 RDBMS と Hadoop 環境を連携させるコネクター
 MapReduce による分散処理でデータ通信を高速化


                                                   20
                                OSC 2012 Tokyo/Spring
Hadoop を動かそう

デモとして仮想環境上で Hadoop を動かしてみます




                                         21
                      OSC 2012 Tokyo/Spring
Hadoop の動作に必要なもの

Hadoop : Apache 版 or CDH 版


Java : Oracle Java6 (要 64bit )


OS : RedHat 系 or Debian 系(要 64bit )


動作させる環境
 最初は手元の PC サーバで試してみる
 本格的な運用ではコモディティな IA サーバを利用する
   CPU 2 ソケット、 MEM 24G ~ 48G 、 HDD 2TB×8 ~ 12

                                                         22
                                      OSC 2012 Tokyo/Spring
Hadoop で MapReduce を実行する方法

Java API による実装


Hadoop Streaming により各種言語で実装
 Python 、 Ruby 、 Perl など(コマンドも利用可能)


各種処理言語
 Apache Pig
 Apache Hive
 Asakusa Framework


                                                     23
                                  OSC 2012 Tokyo/Spring
Java で MapReduce を実行するために

Java API で実装する内容は以下の内容です
 ジョブクラス : MapReduce ジョブ定義クラス
 Map クラス : map 処理用クラス
 Reduce クラス : reduce 処理用クラス
 入力・出力フォーマットクラス : 入力方法、出力方法を定義
 Partitioner クラス : データ集約方法の定義
 データ型クラス : ジョブ内で扱うデータの定義




                                                   24
                                OSC 2012 Tokyo/Spring
定義するクラスと MapReduce 処理の関係

   ジョブクラス
                       Shuffle
             <A, 10>
                             <A, {10,25} >
             <B, 20>
                             <C, {10,5,15} >
      Map    <C, 15>

                                     Reduce      <A, 35 >
             <D, 5>                              <C, 30 >
       Map   <A, 25>
             <C, 10>                  Reduce クラス
   Map クラス   <D, 10>
                                                 <B, 30 >
                                     Reduce
             <B, 10>                             <D, 15 >
       Map
             <C, 5>
                                 <B, {20,10} >
                                 <D, {5,10} >
         Partitioner クラス
                                   出力フォーマットクラス
  入力フォーマットクラス
                                                                    25
                                                 OSC 2012 Tokyo/Spring
Java で実装するポイント

処理したい内容を中心に記述するため、記述量を削減
 分散制御、ノード間通信、ディスク操作は意識しなくても実装可能


各種ライブラリとの連携も容易
 Hadoop の分散キャッシュ機構で容易に連携可能


小さいサイズのデータとの連携も容易
 これも Hadoop の分散キャッシュ機構を利用




                                                26
                             OSC 2012 Tokyo/Spring
DEMO1: サンプルアプリケーションの実行

HDFS 上のサンプルデータとローカルディスク上のマスターデータを
MapReduce で結合させる処理を実行します


デモ用コード置き場 : https://gist.github.com/2179126




                                                        27
                                     OSC 2012 Tokyo/Spring
DEMO1: サンプルアプリケーションの実行

サンプルアプリケーションのソースコードについて説明します




                                              28
                           OSC 2012 Tokyo/Spring
DEMO1: サンプルアプリケーションの実行

実際にデモ環境でサンプルアプリケーションを実行します




                                                29
                             OSC 2012 Tokyo/Spring
DEMO2: Hive で実行

 DEMO1 のアプリケーションを Hive でも実行してみます


 Hive のテーブル
  sample テーブル : サンプルデータを格納するテーブル
  master テーブル : マスターデータを格納する外部テーブル


 SELECT 文を利用して DEMO1 と同じ処理を実行します


 デモ用コード置き場 : https://gist.github.com/2179126


                                                         30
                                      OSC 2012 Tokyo/Spring
DEMO3: Pig で実行

 DEMO1 のアプリケーションを Pig でも実行します


 デモ用コード置き場 : https://gist.github.com/2179126




                                                         31
                                      OSC 2012 Tokyo/Spring
Hadoop のゆくえ

今後の Hadoop はどこに向かうのでしょう?




                                          32
                       OSC 2012 Tokyo/Spring
Hadoop の向かうところ

Hadoop はカーネルになる ( Hadoop World 2011 より)
 データの蓄積、処理のコア
 各種ツール、連携技術が確立


Hadoop 自体も課題を着実に克服していきます
 NameNode HA : SPOF であった NameNode の HA 化
 MapReduce 2.0 : MapReduce 環境の見直し
 Apache BigTop を軸にした Hadoop 構築・テスト環境


より簡単に MapReduce を実行する仕組みも作られます
 Hive や Pig の強化、 Web 上からのシンプルな実行の仕組み etc...
                                                       33
                                    OSC 2012 Tokyo/Spring
まとめ

本セッションをまとめます




                                  34
               OSC 2012 Tokyo/Spring
まとめ

Hadoop は 2 つのコンポーネントから構成されます
 HDFS
 MapReduce


Hadoop エコシステムは更に拡大します
 Hive や Pig で簡単に MapReduce を実行できます


データをためて、その都度、色々と分析・計算しましょう!
 今あるデータを Hadoop を使って確実に集計しましょう
 得られた結果を利用して Hadoop をより活用しましょう!

                                                        35
                                     OSC 2012 Tokyo/Spring
Thank you …
ご清聴ありがとうございました




   All text and image content in this document is licensed under the Creative Commons Attribution-Share Alike 3.0 License
   (unless otherwise specified). "LibreOffice" and "The Document Foundation" are registered trademarks. Their respective logos
   and icons are subject to international copyright laws. The use of these therefore is subject to the trademark policy.




                                                                                                                          36
                                                                                                       OSC 2012 Tokyo/Spring

More Related Content

PDF
OSC2012 OSC.DB Hadoop
Shinichi YAMASHITA
 
PDF
Hadoop - OSC2010 Tokyo/Spring
Shinichi YAMASHITA
 
PDF
OSC2011 Tokyo/Spring Hadoop入門
Shinichi YAMASHITA
 
PDF
日々進化するHadoopの 「いま」
NTT DATA OSS Professional Services
 
PDF
Hadoop入門
Preferred Networks
 
PPTX
ビッグデータ&データマネジメント展
Recruit Technologies
 
PPTX
Hadoopソースコードリーディング8/MapRを使ってみた
Recruit Technologies
 
PDF
Hadoop ecosystem NTTDATA osc15tk
NTT DATA OSS Professional Services
 
OSC2012 OSC.DB Hadoop
Shinichi YAMASHITA
 
Hadoop - OSC2010 Tokyo/Spring
Shinichi YAMASHITA
 
OSC2011 Tokyo/Spring Hadoop入門
Shinichi YAMASHITA
 
日々進化するHadoopの 「いま」
NTT DATA OSS Professional Services
 
Hadoop入門
Preferred Networks
 
ビッグデータ&データマネジメント展
Recruit Technologies
 
Hadoopソースコードリーディング8/MapRを使ってみた
Recruit Technologies
 
Hadoop ecosystem NTTDATA osc15tk
NTT DATA OSS Professional Services
 

What's hot (20)

PDF
20160121 データサイエンティスト協会 木曜セミナー #5
Koichiro Sasaki
 
PDF
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Shinpei Ohtani
 
PDF
Hadoopのシステム設計・運用のポイント
Cloudera Japan
 
PDF
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTT DATA OSS Professional Services
 
PDF
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
Developers Summit
 
PDF
Hadoopを用いた大規模ログ解析
shuichi iida
 
PDF
MapReduce入門
Satoshi Noto
 
PDF
Hadoop概要説明
Satoshi Noto
 
PDF
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
NTT DATA OSS Professional Services
 
PPTX
Apache Spark チュートリアル
K Yamaguchi
 
PDF
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
Hadoop / Spark Conference Japan
 
PDF
HDFS新機能総まとめin 2015 (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo 2015 講演資料)
NTT DATA OSS Professional Services
 
PPTX
Hadoopカンファレンス2013
Recruit Technologies
 
PDF
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
hamaken
 
PPTX
ビッグデータ活用支援フォーラム
Recruit Technologies
 
PPTX
今さら聞けないHadoop セントラルソフト株式会社(20120119)
Toru Takizawa
 
PDF
Hadoopによる大規模分散データ処理
Yoji Kiyota
 
PDF
Learning spaerk chapter03
Akimitsu Takagi
 
PDF
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...
MapR Technologies Japan
 
PDF
SQL Server 2016 R Services + Microsoft R Server 技術資料
Koichiro Sasaki
 
20160121 データサイエンティスト協会 木曜セミナー #5
Koichiro Sasaki
 
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Shinpei Ohtani
 
Hadoopのシステム設計・運用のポイント
Cloudera Japan
 
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTT DATA OSS Professional Services
 
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
Developers Summit
 
Hadoopを用いた大規模ログ解析
shuichi iida
 
MapReduce入門
Satoshi Noto
 
Hadoop概要説明
Satoshi Noto
 
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
NTT DATA OSS Professional Services
 
Apache Spark チュートリアル
K Yamaguchi
 
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
Hadoop / Spark Conference Japan
 
HDFS新機能総まとめin 2015 (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo 2015 講演資料)
NTT DATA OSS Professional Services
 
Hadoopカンファレンス2013
Recruit Technologies
 
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
hamaken
 
ビッグデータ活用支援フォーラム
Recruit Technologies
 
今さら聞けないHadoop セントラルソフト株式会社(20120119)
Toru Takizawa
 
Hadoopによる大規模分散データ処理
Yoji Kiyota
 
Learning spaerk chapter03
Akimitsu Takagi
 
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...
MapR Technologies Japan
 
SQL Server 2016 R Services + Microsoft R Server 技術資料
Koichiro Sasaki
 
Ad

Viewers also liked (9)

PDF
世界一簡単なHadoopの話
Koichi Shimazaki
 
PDF
Hadoop book-2nd-ch3-update
Taisuke Yamada
 
ODP
Hadoop for programmer
Sho Shimauchi
 
PPT
20150219 初めての「embulk」
Hideto Masuoka
 
PDF
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
NTT DATA OSS Professional Services
 
PDF
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
NTT DATA OSS Professional Services
 
PDF
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
hamaken
 
PPTX
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
 
PDF
スタディサプリを支えるデータ分析基盤 ~設計の勘所と利活用事例~
Tetsuo Yamabe
 
世界一簡単なHadoopの話
Koichi Shimazaki
 
Hadoop book-2nd-ch3-update
Taisuke Yamada
 
Hadoop for programmer
Sho Shimauchi
 
20150219 初めての「embulk」
Hideto Masuoka
 
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
NTT DATA OSS Professional Services
 
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
NTT DATA OSS Professional Services
 
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
hamaken
 
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
 
スタディサプリを支えるデータ分析基盤 ~設計の勘所と利活用事例~
Tetsuo Yamabe
 
Ad

Similar to OSC2012 Tokyo/Spring - Hadoop入門 (20)

PPT
Hadoop ~Yahoo! JAPANの活用について~
Yahoo!デベロッパーネットワーク
 
PDF
Osc2012 spring HBase Report
Seiichiro Ishida
 
PPT
Googleの基盤クローン Hadoopについて
Kazuki Ohta
 
PDF
マイニング探検会#10
Yoji Kiyota
 
PDF
Hadoop事始め
You&I
 
PPT
Hadoopの紹介
bigt23
 
PDF
Data-Intensive Text Processing with MapReduce(Ch1,Ch2)
Sho Shimauchi
 
PPT
Hadoop~Yahoo! JAPANの活用について~
Yahoo!デベロッパーネットワーク
 
PPTX
Cloudera大阪セミナー 20130219
Cloudera Japan
 
PDF
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
NTT DATA OSS Professional Services
 
PDF
VLDB2011勉強会 Research Session 18: MapReduce and Hadoop
Hiroaki Shiokawa
 
PDF
MapReduce解説
Shunsuke Aihara
 
PPTX
WebDB Forum 2012 基調講演資料
Recruit Technologies
 
PPTX
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
YoheiOkuyama
 
PPT
Hadoop~Yahoo!Japanの活用について
kaminashi
 
PDF
Hadoopの概念と基本的知識
Ken SASAKI
 
PDF
Hadoop, NoSQL, GlusterFSの概要
日本ヒューレット・パッカード株式会社
 
PPTX
Hadoop scr第7回 hw2011フィードバック
AdvancedTechNight
 
PDF
ただいまHadoop勉強中
Satoshi Noto
 
PDF
Hadoop Hack Night Vol. 2
Yoji Kiyota
 
Hadoop ~Yahoo! JAPANの活用について~
Yahoo!デベロッパーネットワーク
 
Osc2012 spring HBase Report
Seiichiro Ishida
 
Googleの基盤クローン Hadoopについて
Kazuki Ohta
 
マイニング探検会#10
Yoji Kiyota
 
Hadoop事始め
You&I
 
Hadoopの紹介
bigt23
 
Data-Intensive Text Processing with MapReduce(Ch1,Ch2)
Sho Shimauchi
 
Hadoop~Yahoo! JAPANの活用について~
Yahoo!デベロッパーネットワーク
 
Cloudera大阪セミナー 20130219
Cloudera Japan
 
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
NTT DATA OSS Professional Services
 
VLDB2011勉強会 Research Session 18: MapReduce and Hadoop
Hiroaki Shiokawa
 
MapReduce解説
Shunsuke Aihara
 
WebDB Forum 2012 基調講演資料
Recruit Technologies
 
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
YoheiOkuyama
 
Hadoop~Yahoo!Japanの活用について
kaminashi
 
Hadoopの概念と基本的知識
Ken SASAKI
 
Hadoop scr第7回 hw2011フィードバック
AdvancedTechNight
 
ただいまHadoop勉強中
Satoshi Noto
 
Hadoop Hack Night Vol. 2
Yoji Kiyota
 

OSC2012 Tokyo/Spring - Hadoop入門