SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
2010年3月19日
第16回InfoTalk@産業技術大学院大学




          Hadoopによる
        大規模分散データ処理

         東京大学情報基盤センター
         学術情報研究部門 助教
                清田陽司
      (兼 株式会社リッテル 上席研究員)
          Twitter: @kiyota_yoji   1
Agenda
• Hadoop登場の背景
• Hadoopのしくみ
 – MapReduce
 – 分散ファイルシステムHDFS
• Hadoopで何ができる?
   – 活用事例紹介
• RDBMSとの違い


                       2
情報爆発
• 世界中に流通している情報量は爆発的に増大
• IDCのレポート (2008)
 – デジタル化されたデータ量
    2006年 180Ebytes (1800億Gbytes)
    2011年 1.8Zbytes (1兆8000億Gbytes)
 – 5年間に10倍のペースで増加
• 情報オーバーロード問題
 – 必要な情報が埋もれてしまう
 – 必要な技術を特定する技術が必要!

                                      3
学術研究における
      コンピュータの活用
• 莫大なデータが入手可能になった
 – Web: ブログ、ニュース、画像、動画、…
 – 時系列: アクセスログ、ライフログ、株価、…
 – 自然現象: 気象、地震、宇宙、…
• 莫大なデータを対象とすること自体に価値
 – Webを対象とした研究では、膨大なデータを保有する
   企業との連携がほぼ必須?
• 莫大なリソースが必要
 – サーバ、ディスク、メモリ、ネットワーク、設置スペース、
   電力、管理の手間

                            4
スケールアップとスケールアウト
1台のコンピュータ
の性能



                       性能を上げようとすると
                        コストが飛躍的に
                         増大してしまう



            この領域をうまく
              使いたい




                          コスト

                                 5
スケールアウトの課題
データをたくさんの台数のコンピュータで分散処
  理するのは難しい
• 故障の確率が上がる
 – 1台の故障率 1%/1年 => 1000台の故障率は?!
 – どこか故障しても計算を続けたい
• 有限のリソースの効率的な配分
 – プロセッサ時間、メモリ、ハードディスク空き容量、
   ネットワーク帯域
• データの同期
 – プログラミングがめちゃくちゃ大変               6
ハードディスク読み書き速度の壁
• 市販のハードディスク(ATA規格)のスペック
 – 容量: 2TBytes (cf. 5年前 300GBytes)
 – 転送速度: 110MBytes/秒 (cf. 5年前 50MBytes/秒)
 – 全部の読み出し: 5時間 (cf. 5年前 1時間40分)
 → 読み書き速度がボトルネックに!
• 解決策: 多数のハードディスクに分散読み書き
 – 2TBytes HDDを積んだPC 1000台
   → 2TBytesの読み出しに20秒!

                                            7
分散読み書きの課題
• ハードディスクの障害
 – データのミラーリングやRAIDなどの障害対策
• 障害対策のコスト
 – 大規模なRAIDは高くつく
• 障害対策自体がボトルネックになる
 – RAIDコントローラーが制約要因
• 処理結果の結合
 – 別々のディスクにあるデータ同士を結びつけるの
   は難しい

                            8
Googleによる解決策
Google File System論文、MapReduce論文
• 冗長化
  – どこか壊れることを前提とした構成
• 汎用ハードウェアの利用
  – 市場のスケールメリットを最大限に生かす
• 分散ファイルシステム
  – 複数台のマシンが協調してファイルを管理
• 分散処理のための専用フレームワーク
  – MapReduceアルゴリズム

                                   9
Hadoopの登場
• Nutch(オープンソースWeb検索エンジン)の開発
  者がGoogle論文のアイディアをJavaで再実装
• Hadoop開発の目的
 – Nutchが直面していたスケールアウト問題の解決
 – さまざまなデータに応用できる「汎用性」の実現
   → 多くの開発者を巻き込み、プロジェクトが急激に成
   長
• 現在は多くの企業が自社サービスに活用
 – 特に米Yahoo!とFacebookは多数の開発者が参加
 – 10000台以上、ペタバイト規模のクラスタとして実用
                                  10
Hadoopとは何か?
A large-scale distributed batch processing
  infrastracture
• Large-scale = Web規模のデータを扱える
  • 1TBytes(1兆バイト)~1PBytes(1000兆バイト)
• Distributed = 分散型システム
• Batch = バッチ処理専用 (高速な処理)
• Infrastructure = インフラとしてのシステム
  • つまり意識せずに使える
                                             11
Hadoopを支える2つの柱
• MapReduce
  – 互いに並列処理可能な形に処理を分解
    →スケールアウトしやすい
  – 関数型言語の考え方を巨大データに適用
  – map関数(=射影)とreduce関数(=畳み込み)
• HDFS (Hadoop分散ファイルシステム)
  – 巨大なファイルブロック (MapReduceに最適化)
  – 同一のファイルブロックのコピーを複数のノードが
    保持

                                 12
Hadoopクラスタの構成
• マスタ
 – クラスタ全体の「親分」となる1台のPCサーバ
 – JobTracker (MapReduce担当)とNameNode (HDFS担
   当)の2つのデーモンを動かす
• スレーブ
 – クラスタの「子分」となる多数のPCサーバ
 – TaskTracker (MapReduce担当)とDataNode (HDFS担
   当)の2つのデーモンを動かす
※クライアント
 – MapReduce、HDFSを利用する「お客さん」
 – 必要に応じてマスタ・スレーブと通信
                                               13
HDFSクライアントJVM                 Hadoopスレーブサーバ#1
        HDFS                               DataNode
                              HDFS API                         HDFSストレージ
      クライアント                              デーモン(JVM)
                                                                子JVM           HDFS
                                           TaskTracker          map/reduce   クライアント

                                          デーモン(JVM)             子JVM           HDFS
SecondaryName
 Node デーモン      Hadoopクラスタ                                      map/reduce   クライアント

    (JVM)

            Hadoopマスタサーバ                      Hadoopスレーブサーバ#2
    HDFS
     メタ            NameNode                DataNode
                                                               HDFSストレージ
    データ
     DB           デーモン(JVM)               デーモン(JVM)
                                                                子JVM           HDFS
                                                                map/reduce
                                           TaskTracker
                                                                             クライアント


                                          デーモン(JVM)             子JVM           HDFS
                        JobTracker                              map/reduce   クライアント


                       デーモン(JVM)                          ・・
                                                          ・
                                              Hadoopスレーブサーバ#N
                MapReduceクライアントJVM         DataNode
                                                               HDFSストレージ
                                          デーモン(JVM)                     (6)入出力ファイルを
                                                                        HDFSで読み書き
           MapReduce                                            子JVM           HDFS
                                JobConf
           プログラム                           TaskTracker          map/reduce   クライアント


                                          デーモン(JVM)             子JVM           HDFS
                                                (5)タスクを実行する     map/reduce       14
                                                                             クライアント
                                                子JVMをfork起動
MapReduceとは?
• データ処理を関数型言語の考え方で表現
 – map関数(射影)とreduce関数(畳み込み)
• ひとつの大きな処理(ジョブ)を細かな処理単
  位(タスク)に分解
• 耐障害性: いずれかのスレーブが壊れても正
  常に動き続ける
• JobTrackerとTaskTrackerが連携して動作
 – JobTracker: ジョブ全体の管理、タスクの割り当て
 – TaskTracker: タスクの処理
                                   15
MapReduceのイメージ

map
            reduce


map



map         reduce



map
            reduce


map
      ×
射影        畳み込み
                     16
MapReduceのデータモデル

                       東京タワー   バナナ

                       放送塔      2
                  k
key-valueペア
                  v
    (k, v)             東京タワー   みかん

                       観光名所     3




                  k
key-valuesペア      v1   東京タワー

   (k, list(v))   v1   放送塔

                  v1   観光名所

                  v1


                                     17
MapReduceのデータの流れ
            key-valueペア         key-valueペア      key-valuesペア            key-valueペア
                (k, v)              (k’, v’)       (k’, list(v’))           (k’’, v’’)
並行するmap関数、
reduce関数どうし
 はお互いに独立                             B
                k1                   3
                          map                                A
 ファイル           v1                                                               k’’1
                                     C                       2      reduce
                                                                                 v’’1    ファイル
                                     5                       4
  データ
  ベース                                                                                     データ
                k2                   A                                                    ベース
                          map
 Amazon         v2                   2                       B
   S3                                                               reduce       φ        Amazon
                                                             3                              S3


MapReduce
                                                                                         MapReduce
 の出力
                                                                                 k’’2     の入力
                                     C
                                                             C                   v’’2       ・・
    ・・          k3                   1
    ・                     map                                1      reduce                  ・
                v3                                                               k’’3
                                     A                       5
                                     4                                           v’’3

                  (1)mapフェーズ             (2)shuffle & sort       (3)reduceフェーズ             18
                                         フェーズ
MapReduceの多段適用
                              (アクセスログ集計処理の例)
                                                           k
110.0.146.55 - -
[12/Jan/2010:06:00:10 +0900]
                                                           v
"GET /linux/ HTTP/1.0" 302 1102
110.0.240.244 - -                                          k                           5   /article/COLUMN/2006022

                                                           v
[12/Jan/2010:06:19:29 +0900]                                                               4/230573/
"GET
/article/COLUMN/20060224/23                                                            3   /linux/image/cover_small_
0573/ HTTP/1.1" 200 82242
110.0.240.244 - -
                                         MapReduce         k          MapReduce
                                                                                           1002.jpg

[12/Jan/2010:06:20:23 +0900]
                                                           v                           3   /linux/image/logo10.jpg
"GET
/article/COLUMN/20060224/23             (grep-search)                 (grep-sort)      2
0573/ HTTP/1.1" 200 82242                                  k                               /linux/image/cover_small_
110.0.43.6 - -
[12/Jan/2010:06:26:20 +0900]                               v                               1002.jpg

"GET /linux/ HTTP/1.1" 302 1102
110.0.43.6 - -                                             ・・
[12/Jan/2010:06:26:20 +0900]      (k, v)                      ・     (k, v)
"GET
/linux/image/cover_small_1002.     = (null, アクセスログの1行)               = (URL, アクセス頻度)
                                                            k
jpg HTTP/1.1" 304 0
                                  (k’, v’)                          (k’, v’)
                                   = (URL, 1)               v        = (アクセス頻度, URL)
                                  (k’’, v’’)                        (k’’, v’’)
                                                     (k, v)
                                   = (URL, アクセス頻度)                   = (null, 行の文字列)
                                                       = (URL, アク
                                                セス頻度)
                                  map関数:                            map関数:
                                   URLを正規表現で抜き出す                     URLとアクセス頻度をひっくり返し、
                                  reduce関数:                         keyをアクセス頻度にする
                                   URL毎の頻度をカウントする                   reduce関数:
                                                                     行の文字列を生成する                          19
MapReduceデモ




              20
HDFSとは?
• クラスタ全体でひとつの大きな仮想ファイルシ
  ステムを実現
• FATやe3fsと同様、ファイルとブロックの概念
 – ブロックサイズが巨大 (64Mbytes~)
• 耐障害性
 – 同一ブロックが複数のスレーブに存在
 – 障害発生時は自動的にブロックを複製
• NameNodeとDataNodeが連携して動作


                             21
HDFSのイメージ
                                                                             /file/X.txt
NameNode                                                                                                   /file/X.txt-0
                                                                    64MB
                                                                    64MB                                   /file/X.txt-1
       HDFSメタデータデータベース                                              64MB
       ファイル名              ブロック         DataNode                                                            /file/X.txt-2
                          番号
       /file/X.txt        0            A, D, F
                                                                             /file/Y.txt
                          1            B, D, E                                                             /file/Y.txt-0
                                                                    64MB
                          2            A, C, F
                                                                    64MB
       /file/Y.txt        0            B, D, E                                                             /file/Y.txt-1

                          1            A, C, E




  /file/X.txt-0        /file/X.txt-1               /file/X.txt-2     /file/X.txt-0         /file/X.txt-1                   /file/X.txt-0


  /file/X.txt-2        /file/Y.txt-0               /file/Y.txt-1     /file/X.txt-1         /file/Y.txt-0                   /file/X.txt-2

                                                                     /file/Y.txt-0         /file/Y.txt-1
  /file/Y.txt-1


DataNode A           DataNode B                  DataNode C        DataNode D         DataNode E                     DataNode F

                                                                                                                                           22
HDFSのファイル読み込み
    (1)/file/Y.txt を                             (2)/file/Y.txt の各ブ                                (3)
    全部読み込み                                       ロックを持っている                                         ブロック0 → B, D, E
    たい                                           DataNodeを教えて               NameNode               ブロック1 → A, C, E
                                                                                                   にあるよ
                  HDFSクライアントJVM
                                                                                     HDFSメタデータデータベース
                                                                                     ファイル名                 ブロック      DataNode
      HDFS                                                                                                 番号
                                     HDFS API
    クライアント                                                                           /file/X.txt           0         A, D, F
                                                                    (5)E君、/file/Y.txt の                    1         B, D, E
                                                                    ブロック1ちょうだい
                                                                                                           2         A, C, F
                                                                                     /file/Y.txt           0         B, D, E
(6)お待たせ!
                                                                                                           1         A, C, E
  /file/Y.txt-0
                                         (4)B君、/file/Y.txt の
  /file/Y.txt-1                          ブロック0ちょうだい


  /file/X.txt-0          /file/X.txt-1              /file/X.txt-2            /file/X.txt-0           /file/X.txt-1             /file/X.txt-0


  /file/X.txt-2          /file/Y.txt-0              /file/Y.txt-1            /file/X.txt-1           /file/Y.txt-0             /file/X.txt-2

                                                                             /file/Y.txt-0           /file/Y.txt-1
  /file/Y.txt-1


DataNode A             DataNode B               DataNode C              DataNode D                 DataNode E            DataNode F

                                                                                                                                               23
HDFSのファイル書き込み                                       (4)OK!それではまずB君に
                                                                                                                      (3)B君, C君, F君は
                                                                                                                      まだ空きがたくさん
                                                                                                                      あるな。よし、
        (1)/file/Y.txt に                                                        書き込んでね。そのとき、C                         /file/Y.txtのブロック
                                                    (2)/file/Y.txt に追加          君, F君にもコピーを渡すよ                        2は彼らに割り当て
        追加書き込みし
                                                    書き込みさせてよ
        たいんだけど                                                           NameNode
                                                                                うに伝言しておいて。終わっ
                                                                                たら教えてね
                                                                                                                      よう

                                                                            HDFSメタデータデータベース
                  HDFSクライアントJVM                                             ファイル名                    ブロック   DataNode
                                                                                                     番号
          HDFS                                                              /file/X.txt              0      A, D, F
                                         HDFS API
        クライアント
                                                                                                     1      B, D, E
                                                    (6)B君、これを書き込んでお          (12)終わったよ
                                                                                                     2      A, C, F
                                                    いて。
  (5)これを書き込ん                                                                /file/Y.txt              0      B, D, E
  でね                                                    /file/Y.txt-2
                                                                                                     1      A, C, E
                                                    それから、C君、F君にもコ                                    2      B, C, F
                                                    ピーを渡しておいて。終わっ
                (11)終わったよ                           たら教えてね


                             /file/X.txt-1            /file/X.txt-2                                                   /file/X.txt-0


                             /file/Y.txt-0             /file/Y.txt-1                  (8)F君、これを書き込                    /file/X.txt-2
                                                                                      んでおいて。
                                                                                                                      /file/Y.txt-2
                             /file/Y.txt-2             /file/Y.txt-2                      /file/Y.txt-2

                                                                                      終わったら教えてね
                           DataNode B               DataNode C                                                  DataNode F
(7)C君、これを書き込んで
おいて。    /file/Y.txt-2

それから、F君にもコピーを
                                             (10)終わったよ                           (9)終わったよ                                             24
渡しておいて。終わったら
教えてね
DataNodeの障害時
                        NameNode                                                                   (1)あれ、C君死んだ?!


                          HDFSメタデータデータベース                                                                                                   (2)C君が持っていた
                                                                                                       Live Nodes
                                                                                                                                            ブロックは
                          ファイル名                         ブロック
                                                        番号
                                                                        DataNode
                                                                                                        A B C D E F                         /file/X.txt-2と
                                                                                                                                            /file/Y.txt-1だな。よ
                          /file/X.txt                   0               A, D, F                                                             し、空き容量が多い
                                                        1               B, D, E                                                             B君、F君にコピーし
                                                                                                                                            てもらおう
                                                        2               A, C, F, B
                                                                                                       Dead Nodes
                          /file/Y.txt                   0               B, D, E
(3)A君、きみが持っている                                          1               A, C, E, F
                                                                                                                    C
/file/X.txt のブロック2をB君                                                                                                                   (5)E君、きみが持っている
にもコピーしておいてね                                                                                                                             /file/Y.txt のブロック1をF君
                                                                                                                                        にもコピーしておいてね




     /file/X.txt-0      /file/X.txt-1                   /file/X.txt-2                  /file/X.txt-0                    /file/X.txt-1          /file/X.txt-0


     /file/X.txt-2      /file/Y.txt-0                   /file/Y.txt-1                  /file/X.txt-1                    /file/Y.txt-0          /file/X.txt-2

                                                                                       /file/Y.txt-0                    /file/Y.txt-1          /file/Y.txt-1
     /file/Y.txt-1      /file/X.txt-2


  DataNode A         DataNode B                    DataNode C                        DataNode D                 DataNode E                 DataNode F

                                (4)B君、これを書                                                       (6)F君、これを書
                                き込んでおいてね                                                         き込んでおいてね
                                                                                                                                                               25
                                        /file/X.txt-2                                                   /file/Y.txt-1
MapReduceとの親和性
• mapタスクはブロック単位で作られる
• 可能な限り各々のタスクはブロックが存在す
  るスレーブに割り振られる
  →通信コストが最小化される
   =スケールアウトしやすい




                         26
HDFSデモ




         27
インフラとしてのHadoop
• インフラとは?
 – 道路・鉄道・水道・電気・ガス・電話・インターネット…
 – さまざまなトラブルを解消するしくみを備えている
 – 非常に複雑なシステム、維持は大変!
 – 存在を意識せずに利用できる
• Hadoop = 莫大データバッチ処理のインフラ
 – 耐障害性の確保に重点がおかれている
 – なかみは非常に複雑
 – 利用者は意識しなくても使える
                             28
Hadoopで何ができる?
• 莫大なデータのバッチ処理に威力を発揮
• SQLでは記述しにくい複雑な処理に向いている
 – 時系列処理
 – 検索インデックス作成
 – レコメンデーション
 – 画像処理
 – DNAシーケンスマッチング
 – 言語モデル生成 (音声認識、機械翻訳、…)

                           29
リッテルでの活用事例 (1)
• サーバ構成
 – NameNode 2台
   • Dual Core CPU (2.66GHz), 4GBytes RAM, 750GBytes HDD
 – DataNode 20台
   • Dual Core CPU (2.4GHz), 4GBytes RAM, 1.5TBytes HDD
• 総ストレージ量 15TBytes (冗長化)
 – 1TBあたり単価は16万円程度
• 大量のWebアクセスログのマイニングに利用
• ベンチマーク
 – 3億4000万レコード (63GBytes) の時系列処理
  → 約12分で完了
                                                           30
時系列処理の例
アクセスログより、google等で検索した直後にどのサイトを訪れているかを抽出
し、検索語と関連性の高いURLを取り出す
      ID          URL                             access time

      00001   www.yahoo.co.jp                    2008-08-20 11:10
              www.google.co.jp/?search=XXXXXXX    2008-08-20 11:11
              www.dentsu.co.jp                     2008-08-20 11:12
                 ・・・・・・・                              ・・・・・・・・



     この検索後を投入した人(ID)が、その直後、例えば5分以内に
     どのサイトを訪れているのか、URLの一覧を取得する

                                     N分間



                                                                      時間
                            検    訪問したURL
                            索


                           検索語に非常に関連性の高いURLとして見なす
                                                                           31
リッテルでの活用事例 (2)
• クローリングしたブログを1時間ごとに解析し、
  急上昇ワードを抽出
• 変化率を計算するため、莫大なデータを毎時
  処理する必要がある
• Hadoopクラスタ
 – DataNode 3台 (QuadCore CPU)
• 数十Gbytesのデータを20分ほどで解析


                                32
Trend Navigator




                  33
2009 sort benchmark
• 巨大データのソート速度を競うコンテスト
• 米Yahoo!のグループがHadoopで参加し、2部門
  で優勝
• GraySort部門: 1分あたりのソートデータ量
 – 0.578TBytes/min (100 TB in 173 minutes )
 – 3452 nodes x (2 Quadcore Xeons, 8 GB memory, 4
   SATA)
• MinuteSort部門: 1分以内にソートできる最大
  データ量
 – 500 GB
 – 1406 nodes x (2 Quadcore Xeons, 8 GB memory, 4
   SATA)
                                                    34
分散RDBMSとの比較
Andrew Pavlo et al. A Comparison of
  Approaches to Large-Scale Data Analysis, In
  Proc. of SIGMOD 2009, pp. 165-178.
• Hadoopと2種類の商用分散RDBMS (Verticaと
  某製品)を比較
• データの搭載はHadoopが高速
• 特定のカラムを対象とした検索処理は分散
  RDBMSが高速
• どちらを選択すべきかは用途に応じて決める
  べき
                                            35
データ搭載所要時間の比較
    (1TBytes)




                36
正規表現によるフィールド文字列の
  検索 (1レコード90Bytes)




                      37
分散RDBMSの限界
• 設定すべきパラメータがたくさん
 – セットアップは大変
 – チューニングは困難
• どうインデキシングするかをあらかじめ決め
  ておく必要がある
 – 多様な分析の切り口を提供しづらい
• 耐障害性の確保には高いコストがかかる
• SQLでは記述が困難なロジックがマーケティン
  グ領域では必要とされる
 – 複雑なBoolean条件
 – 時系列集計 (時間的な前後関係の考慮)
                         38
まとめ
• Hadoopの特徴はマーケティング領域におけ
  るデータ解析ニーズにフィットする
 – データ搭載のスループットが重要
 – 多面的な解析が必須
 – 複雑なBoolean式や時系列集計などでもパフォー
   マンスを発揮できる
• 低コストで耐障害性を確保できる
 – MapReduceの単純なプログラミングモデルの御
   利益
• スケーラビリティの担保は生命線
 – 性能が台数に比例しなければ早々に破綻
                               39

Weitere ähnliche Inhalte

Was ist angesagt?

Hadoop for programmer
Hadoop for programmerHadoop for programmer
Hadoop for programmerSho Shimauchi
 
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勉強中
ただいまHadoop勉強中ただいまHadoop勉強中
ただいまHadoop勉強中Satoshi Noto
 
Hadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントHadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントCloudera Japan
 
Hadoop概要説明
Hadoop概要説明Hadoop概要説明
Hadoop概要説明Satoshi Noto
 
MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19
MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19
MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19MapR Technologies Japan
 
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
 
世界一簡単なHadoopの話
世界一簡単なHadoopの話世界一簡単なHadoopの話
世界一簡単なHadoopの話Koichi Shimazaki
 
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているかHBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているかMapR Technologies Japan
 
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15MapR Technologies Japan
 
並列分散処理基盤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
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントNTT DATA OSS Professional Services
 
Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Ken SASAKI
 
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
 

Was ist angesagt? (20)

Hadoop for programmer
Hadoop for programmerHadoop for programmer
Hadoop for programmer
 
Hadoop入門
Hadoop入門Hadoop入門
Hadoop入門
 
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 / MapReduce とは
Hadoop / MapReduce とはHadoop / MapReduce とは
Hadoop / MapReduce とは
 
ただいまHadoop勉強中
ただいまHadoop勉強中ただいまHadoop勉強中
ただいまHadoop勉強中
 
Hadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントHadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイント
 
SASとHadoopとの連携
SASとHadoopとの連携SASとHadoopとの連携
SASとHadoopとの連携
 
Hadoop概要説明
Hadoop概要説明Hadoop概要説明
Hadoop概要説明
 
MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19
MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19
MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19
 
Apache Hive 紹介
Apache Hive 紹介Apache Hive 紹介
Apache Hive 紹介
 
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の話
世界一簡単なHadoopの話世界一簡単なHadoopの話
世界一簡単なHadoopの話
 
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているかHBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
 
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
 
並列分散処理基盤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 ...
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
 
はやわかりHadoop
はやわかりHadoopはやわかりHadoop
はやわかりHadoop
 
Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識
 
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 講演資料)
 
Hadoop 基礎
Hadoop 基礎Hadoop 基礎
Hadoop 基礎
 

Ähnlich wie Hadoopによる大規模分散データ処理

Hadoop Hack Night Vol. 2
Hadoop Hack Night Vol. 2Hadoop Hack Night Vol. 2
Hadoop Hack Night Vol. 2Yoji Kiyota
 
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
 
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practiceマルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best PracticeHadoop / Spark Conference Japan
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlYutuki r
 
OSC2011 Tokyo/Spring Hadoop入門
OSC2011 Tokyo/Spring Hadoop入門OSC2011 Tokyo/Spring Hadoop入門
OSC2011 Tokyo/Spring Hadoop入門Shinichi YAMASHITA
 
Hadoopソースコードリーディング8/MapRを使ってみた
Hadoopソースコードリーディング8/MapRを使ってみたHadoopソースコードリーディング8/MapRを使ってみた
Hadoopソースコードリーディング8/MapRを使ってみたRecruit Technologies
 
InfoTalk springbreak_2012
InfoTalk  springbreak_2012InfoTalk  springbreak_2012
InfoTalk springbreak_2012Hiroshi Bunya
 
Cloudera Impala Seminar Jan. 8 2013
Cloudera Impala Seminar Jan. 8 2013Cloudera Impala Seminar Jan. 8 2013
Cloudera Impala Seminar Jan. 8 2013Cloudera Japan
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Masahiro Nagano
 
PHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったことPHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったことKentaro Matsui
 
Faster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDPFaster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDPRyoga Saito
 
Zabbix jp勉強会 Hadoop-HBaseの監視_20120512
Zabbix jp勉強会 Hadoop-HBaseの監視_20120512Zabbix jp勉強会 Hadoop-HBaseの監視_20120512
Zabbix jp勉強会 Hadoop-HBaseの監視_20120512Seiichiro Ishida
 
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
 
Evolution of Impala #hcj2014
Evolution of Impala #hcj2014Evolution of Impala #hcj2014
Evolution of Impala #hcj2014Cloudera Japan
 
Introduction to Impala ~Hadoop用のSQLエンジン~ #hcj13w
Introduction to Impala ~Hadoop用のSQLエンジン~ #hcj13wIntroduction to Impala ~Hadoop用のSQLエンジン~ #hcj13w
Introduction to Impala ~Hadoop用のSQLエンジン~ #hcj13wCloudera Japan
 
絵で見てわかる 某分散データストア
絵で見てわかる 某分散データストア絵で見てわかる 某分散データストア
絵で見てわかる 某分散データストアTakahiko Sato
 

Ähnlich wie Hadoopによる大規模分散データ処理 (20)

Hadoop Hack Night Vol. 2
Hadoop Hack Night Vol. 2Hadoop Hack Night Vol. 2
Hadoop Hack Night Vol. 2
 
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
 
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practiceマルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
 
20111130 10 aws-meister-emr_long-public
20111130 10 aws-meister-emr_long-public20111130 10 aws-meister-emr_long-public
20111130 10 aws-meister-emr_long-public
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
 
OSC2012 OSC.DB Hadoop
OSC2012 OSC.DB HadoopOSC2012 OSC.DB Hadoop
OSC2012 OSC.DB Hadoop
 
OSC2011 Tokyo/Spring Hadoop入門
OSC2011 Tokyo/Spring Hadoop入門OSC2011 Tokyo/Spring Hadoop入門
OSC2011 Tokyo/Spring Hadoop入門
 
Hadoopソースコードリーディング8/MapRを使ってみた
Hadoopソースコードリーディング8/MapRを使ってみたHadoopソースコードリーディング8/MapRを使ってみた
Hadoopソースコードリーディング8/MapRを使ってみた
 
MapReduce解説
MapReduce解説MapReduce解説
MapReduce解説
 
InfoTalk springbreak_2012
InfoTalk  springbreak_2012InfoTalk  springbreak_2012
InfoTalk springbreak_2012
 
Cloudera Impala Seminar Jan. 8 2013
Cloudera Impala Seminar Jan. 8 2013Cloudera Impala Seminar Jan. 8 2013
Cloudera Impala Seminar Jan. 8 2013
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 
PHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったことPHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったこと
 
Faster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDPFaster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDP
 
WDD2012_SC-004
WDD2012_SC-004WDD2012_SC-004
WDD2012_SC-004
 
Zabbix jp勉強会 Hadoop-HBaseの監視_20120512
Zabbix jp勉強会 Hadoop-HBaseの監視_20120512Zabbix jp勉強会 Hadoop-HBaseの監視_20120512
Zabbix jp勉強会 Hadoop-HBaseの監視_20120512
 
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...
 
Evolution of Impala #hcj2014
Evolution of Impala #hcj2014Evolution of Impala #hcj2014
Evolution of Impala #hcj2014
 
Introduction to Impala ~Hadoop用のSQLエンジン~ #hcj13w
Introduction to Impala ~Hadoop用のSQLエンジン~ #hcj13wIntroduction to Impala ~Hadoop用のSQLエンジン~ #hcj13w
Introduction to Impala ~Hadoop用のSQLエンジン~ #hcj13w
 
絵で見てわかる 某分散データストア
絵で見てわかる 某分散データストア絵で見てわかる 某分散データストア
絵で見てわかる 某分散データストア
 

Mehr von Yoji Kiyota

テキストアナリティクスの知見を社会に活かすには? -シーズ指向の視点とニーズ指向の視点-
テキストアナリティクスの知見を社会に活かすには? -シーズ指向の視点とニーズ指向の視点-テキストアナリティクスの知見を社会に活かすには? -シーズ指向の視点とニーズ指向の視点-
テキストアナリティクスの知見を社会に活かすには? -シーズ指向の視点とニーズ指向の視点-Yoji Kiyota
 
「LIFULL HOME'Sデータセット」提供を通じた不動産テック分野のオープンイノベーション
「LIFULL HOME'Sデータセット」提供を通じた不動産テック分野のオープンイノベーション「LIFULL HOME'Sデータセット」提供を通じた不動産テック分野のオープンイノベーション
「LIFULL HOME'Sデータセット」提供を通じた不動産テック分野のオープンイノベーションYoji Kiyota
 
論文執筆の環境をめぐる最新の状況と、学会の査読・編集システムを持続可能とするための方策の検討
論文執筆の環境をめぐる最新の状況と、学会の査読・編集システムを持続可能とするための方策の検討論文執筆の環境をめぐる最新の状況と、学会の査読・編集システムを持続可能とするための方策の検討
論文執筆の環境をめぐる最新の状況と、学会の査読・編集システムを持続可能とするための方策の検討Yoji Kiyota
 
LIFULL HOME'Sにおける不動産物件画像解析
LIFULL HOME'Sにおける不動産物件画像解析LIFULL HOME'Sにおける不動産物件画像解析
LIFULL HOME'Sにおける不動産物件画像解析Yoji Kiyota
 
第10回ARG WI2研究会 株式会社LIFULL 技術報告
第10回ARG WI2研究会 株式会社LIFULL 技術報告第10回ARG WI2研究会 株式会社LIFULL 技術報告
第10回ARG WI2研究会 株式会社LIFULL 技術報告Yoji Kiyota
 
SoC2017 不動産テックの研究課題
SoC2017 不動産テックの研究課題SoC2017 不動産テックの研究課題
SoC2017 不動産テックの研究課題Yoji Kiyota
 
超高齢社会における地域課題の複雑さと「ネットワークが創発する知能」研究への期待 ―不動産・介護・医療分野を例として―
超高齢社会における地域課題の複雑さと「ネットワークが創発する知能」研究への期待 ―不動産・介護・医療分野を例として―超高齢社会における地域課題の複雑さと「ネットワークが創発する知能」研究への期待 ―不動産・介護・医療分野を例として―
超高齢社会における地域課題の複雑さと「ネットワークが創発する知能」研究への期待 ―不動産・介護・医療分野を例として―Yoji Kiyota
 
IEEE DSAA 2017投稿呼びかけ
IEEE DSAA 2017投稿呼びかけIEEE DSAA 2017投稿呼びかけ
IEEE DSAA 2017投稿呼びかけYoji Kiyota
 
住居選択支援を目的としたAI技術適用の試み -ソーシャルメディアへのクラウドソーシング適用および物件画像への深層学習適用-
住居選択支援を目的としたAI技術適用の試み -ソーシャルメディアへのクラウドソーシング適用および物件画像への深層学習適用-住居選択支援を目的としたAI技術適用の試み -ソーシャルメディアへのクラウドソーシング適用および物件画像への深層学習適用-
住居選択支援を目的としたAI技術適用の試み -ソーシャルメディアへのクラウドソーシング適用および物件画像への深層学習適用-Yoji Kiyota
 
ライフイベントの決断を支えるオープンイノベーションの取り組み
ライフイベントの決断を支えるオープンイノベーションの取り組みライフイベントの決断を支えるオープンイノベーションの取り組み
ライフイベントの決断を支えるオープンイノベーションの取り組みYoji Kiyota
 
学際領域としての不動産の研究を活性化させるために
学際領域としての不動産の研究を活性化させるために学際領域としての不動産の研究を活性化させるために
学際領域としての不動産の研究を活性化させるためにYoji Kiyota
 
「HOME'Sデータセット」を通じた不動産分野の研究活性化
「HOME'Sデータセット」を通じた不動産分野の研究活性化「HOME'Sデータセット」を通じた不動産分野の研究活性化
「HOME'Sデータセット」を通じた不動産分野の研究活性化Yoji Kiyota
 
「HOME'Sデータセット」を活用した不動産物件画像への深層学習の適用の取り組み
「HOME'Sデータセット」を活用した不動産物件画像への深層学習の適用の取り組み「HOME'Sデータセット」を活用した不動産物件画像への深層学習の適用の取り組み
「HOME'Sデータセット」を活用した不動産物件画像への深層学習の適用の取り組みYoji Kiyota
 
Code4Lib JAPANカンファレンス2016 in 大阪
Code4Lib JAPANカンファレンス2016 in 大阪Code4Lib JAPANカンファレンス2016 in 大阪
Code4Lib JAPANカンファレンス2016 in 大阪Yoji Kiyota
 
人生の意思決定を支える社会インフラとしての図書館
人生の意思決定を支える社会インフラとしての図書館人生の意思決定を支える社会インフラとしての図書館
人生の意思決定を支える社会インフラとしての図書館Yoji Kiyota
 
「HOME'Sデータセット」提供を通じた不動産領域におけるオープンイノベーション促進の取り組み
「HOME'Sデータセット」提供を通じた不動産領域におけるオープンイノベーション促進の取り組み「HOME'Sデータセット」提供を通じた不動産領域におけるオープンイノベーション促進の取り組み
「HOME'Sデータセット」提供を通じた不動産領域におけるオープンイノベーション促進の取り組みYoji Kiyota
 
Mining User Experience through Crowdsourcing: A Property Search Behavior Corp...
Mining User Experience through Crowdsourcing: A Property Search Behavior Corp...Mining User Experience through Crowdsourcing: A Property Search Behavior Corp...
Mining User Experience through Crowdsourcing: A Property Search Behavior Corp...Yoji Kiyota
 
不動産物件データセットを用いた研究開発事例と、大学との共同研究の取り組みの紹介
不動産物件データセットを用いた研究開発事例と、大学との共同研究の取り組みの紹介不動産物件データセットを用いた研究開発事例と、大学との共同研究の取り組みの紹介
不動産物件データセットを用いた研究開発事例と、大学との共同研究の取り組みの紹介Yoji Kiyota
 
「HOME'Sデータセット」提供開始の背景 〜産学間データ共有の課題〜
「HOME'Sデータセット」提供開始の背景 〜産学間データ共有の課題〜「HOME'Sデータセット」提供開始の背景 〜産学間データ共有の課題〜
「HOME'Sデータセット」提供開始の背景 〜産学間データ共有の課題〜Yoji Kiyota
 
JSAI2015 ツイートタイムラインへの 階層的クラウドソーシングの適用による 住まい探しユーザの背景ニーズ理解
JSAI2015 ツイートタイムラインへの階層的クラウドソーシングの適用による住まい探しユーザの背景ニーズ理解JSAI2015 ツイートタイムラインへの階層的クラウドソーシングの適用による住まい探しユーザの背景ニーズ理解
JSAI2015 ツイートタイムラインへの 階層的クラウドソーシングの適用による 住まい探しユーザの背景ニーズ理解Yoji Kiyota
 

Mehr von Yoji Kiyota (20)

テキストアナリティクスの知見を社会に活かすには? -シーズ指向の視点とニーズ指向の視点-
テキストアナリティクスの知見を社会に活かすには? -シーズ指向の視点とニーズ指向の視点-テキストアナリティクスの知見を社会に活かすには? -シーズ指向の視点とニーズ指向の視点-
テキストアナリティクスの知見を社会に活かすには? -シーズ指向の視点とニーズ指向の視点-
 
「LIFULL HOME'Sデータセット」提供を通じた不動産テック分野のオープンイノベーション
「LIFULL HOME'Sデータセット」提供を通じた不動産テック分野のオープンイノベーション「LIFULL HOME'Sデータセット」提供を通じた不動産テック分野のオープンイノベーション
「LIFULL HOME'Sデータセット」提供を通じた不動産テック分野のオープンイノベーション
 
論文執筆の環境をめぐる最新の状況と、学会の査読・編集システムを持続可能とするための方策の検討
論文執筆の環境をめぐる最新の状況と、学会の査読・編集システムを持続可能とするための方策の検討論文執筆の環境をめぐる最新の状況と、学会の査読・編集システムを持続可能とするための方策の検討
論文執筆の環境をめぐる最新の状況と、学会の査読・編集システムを持続可能とするための方策の検討
 
LIFULL HOME'Sにおける不動産物件画像解析
LIFULL HOME'Sにおける不動産物件画像解析LIFULL HOME'Sにおける不動産物件画像解析
LIFULL HOME'Sにおける不動産物件画像解析
 
第10回ARG WI2研究会 株式会社LIFULL 技術報告
第10回ARG WI2研究会 株式会社LIFULL 技術報告第10回ARG WI2研究会 株式会社LIFULL 技術報告
第10回ARG WI2研究会 株式会社LIFULL 技術報告
 
SoC2017 不動産テックの研究課題
SoC2017 不動産テックの研究課題SoC2017 不動産テックの研究課題
SoC2017 不動産テックの研究課題
 
超高齢社会における地域課題の複雑さと「ネットワークが創発する知能」研究への期待 ―不動産・介護・医療分野を例として―
超高齢社会における地域課題の複雑さと「ネットワークが創発する知能」研究への期待 ―不動産・介護・医療分野を例として―超高齢社会における地域課題の複雑さと「ネットワークが創発する知能」研究への期待 ―不動産・介護・医療分野を例として―
超高齢社会における地域課題の複雑さと「ネットワークが創発する知能」研究への期待 ―不動産・介護・医療分野を例として―
 
IEEE DSAA 2017投稿呼びかけ
IEEE DSAA 2017投稿呼びかけIEEE DSAA 2017投稿呼びかけ
IEEE DSAA 2017投稿呼びかけ
 
住居選択支援を目的としたAI技術適用の試み -ソーシャルメディアへのクラウドソーシング適用および物件画像への深層学習適用-
住居選択支援を目的としたAI技術適用の試み -ソーシャルメディアへのクラウドソーシング適用および物件画像への深層学習適用-住居選択支援を目的としたAI技術適用の試み -ソーシャルメディアへのクラウドソーシング適用および物件画像への深層学習適用-
住居選択支援を目的としたAI技術適用の試み -ソーシャルメディアへのクラウドソーシング適用および物件画像への深層学習適用-
 
ライフイベントの決断を支えるオープンイノベーションの取り組み
ライフイベントの決断を支えるオープンイノベーションの取り組みライフイベントの決断を支えるオープンイノベーションの取り組み
ライフイベントの決断を支えるオープンイノベーションの取り組み
 
学際領域としての不動産の研究を活性化させるために
学際領域としての不動産の研究を活性化させるために学際領域としての不動産の研究を活性化させるために
学際領域としての不動産の研究を活性化させるために
 
「HOME'Sデータセット」を通じた不動産分野の研究活性化
「HOME'Sデータセット」を通じた不動産分野の研究活性化「HOME'Sデータセット」を通じた不動産分野の研究活性化
「HOME'Sデータセット」を通じた不動産分野の研究活性化
 
「HOME'Sデータセット」を活用した不動産物件画像への深層学習の適用の取り組み
「HOME'Sデータセット」を活用した不動産物件画像への深層学習の適用の取り組み「HOME'Sデータセット」を活用した不動産物件画像への深層学習の適用の取り組み
「HOME'Sデータセット」を活用した不動産物件画像への深層学習の適用の取り組み
 
Code4Lib JAPANカンファレンス2016 in 大阪
Code4Lib JAPANカンファレンス2016 in 大阪Code4Lib JAPANカンファレンス2016 in 大阪
Code4Lib JAPANカンファレンス2016 in 大阪
 
人生の意思決定を支える社会インフラとしての図書館
人生の意思決定を支える社会インフラとしての図書館人生の意思決定を支える社会インフラとしての図書館
人生の意思決定を支える社会インフラとしての図書館
 
「HOME'Sデータセット」提供を通じた不動産領域におけるオープンイノベーション促進の取り組み
「HOME'Sデータセット」提供を通じた不動産領域におけるオープンイノベーション促進の取り組み「HOME'Sデータセット」提供を通じた不動産領域におけるオープンイノベーション促進の取り組み
「HOME'Sデータセット」提供を通じた不動産領域におけるオープンイノベーション促進の取り組み
 
Mining User Experience through Crowdsourcing: A Property Search Behavior Corp...
Mining User Experience through Crowdsourcing: A Property Search Behavior Corp...Mining User Experience through Crowdsourcing: A Property Search Behavior Corp...
Mining User Experience through Crowdsourcing: A Property Search Behavior Corp...
 
不動産物件データセットを用いた研究開発事例と、大学との共同研究の取り組みの紹介
不動産物件データセットを用いた研究開発事例と、大学との共同研究の取り組みの紹介不動産物件データセットを用いた研究開発事例と、大学との共同研究の取り組みの紹介
不動産物件データセットを用いた研究開発事例と、大学との共同研究の取り組みの紹介
 
「HOME'Sデータセット」提供開始の背景 〜産学間データ共有の課題〜
「HOME'Sデータセット」提供開始の背景 〜産学間データ共有の課題〜「HOME'Sデータセット」提供開始の背景 〜産学間データ共有の課題〜
「HOME'Sデータセット」提供開始の背景 〜産学間データ共有の課題〜
 
JSAI2015 ツイートタイムラインへの 階層的クラウドソーシングの適用による 住まい探しユーザの背景ニーズ理解
JSAI2015 ツイートタイムラインへの階層的クラウドソーシングの適用による住まい探しユーザの背景ニーズ理解JSAI2015 ツイートタイムラインへの階層的クラウドソーシングの適用による住まい探しユーザの背景ニーズ理解
JSAI2015 ツイートタイムラインへの 階層的クラウドソーシングの適用による 住まい探しユーザの背景ニーズ理解
 

Kürzlich hochgeladen

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 

Kürzlich hochgeladen (9)

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 

Hadoopによる大規模分散データ処理

  • 1. 2010年3月19日 第16回InfoTalk@産業技術大学院大学 Hadoopによる 大規模分散データ処理 東京大学情報基盤センター 学術情報研究部門 助教 清田陽司 (兼 株式会社リッテル 上席研究員) Twitter: @kiyota_yoji 1
  • 2. Agenda • Hadoop登場の背景 • Hadoopのしくみ – MapReduce – 分散ファイルシステムHDFS • Hadoopで何ができる? – 活用事例紹介 • RDBMSとの違い 2
  • 3. 情報爆発 • 世界中に流通している情報量は爆発的に増大 • IDCのレポート (2008) – デジタル化されたデータ量 2006年 180Ebytes (1800億Gbytes) 2011年 1.8Zbytes (1兆8000億Gbytes) – 5年間に10倍のペースで増加 • 情報オーバーロード問題 – 必要な情報が埋もれてしまう – 必要な技術を特定する技術が必要! 3
  • 4. 学術研究における コンピュータの活用 • 莫大なデータが入手可能になった – Web: ブログ、ニュース、画像、動画、… – 時系列: アクセスログ、ライフログ、株価、… – 自然現象: 気象、地震、宇宙、… • 莫大なデータを対象とすること自体に価値 – Webを対象とした研究では、膨大なデータを保有する 企業との連携がほぼ必須? • 莫大なリソースが必要 – サーバ、ディスク、メモリ、ネットワーク、設置スペース、 電力、管理の手間 4
  • 5. スケールアップとスケールアウト 1台のコンピュータ の性能 性能を上げようとすると コストが飛躍的に 増大してしまう この領域をうまく 使いたい コスト 5
  • 6. スケールアウトの課題 データをたくさんの台数のコンピュータで分散処 理するのは難しい • 故障の確率が上がる – 1台の故障率 1%/1年 => 1000台の故障率は?! – どこか故障しても計算を続けたい • 有限のリソースの効率的な配分 – プロセッサ時間、メモリ、ハードディスク空き容量、 ネットワーク帯域 • データの同期 – プログラミングがめちゃくちゃ大変 6
  • 7. ハードディスク読み書き速度の壁 • 市販のハードディスク(ATA規格)のスペック – 容量: 2TBytes (cf. 5年前 300GBytes) – 転送速度: 110MBytes/秒 (cf. 5年前 50MBytes/秒) – 全部の読み出し: 5時間 (cf. 5年前 1時間40分) → 読み書き速度がボトルネックに! • 解決策: 多数のハードディスクに分散読み書き – 2TBytes HDDを積んだPC 1000台 → 2TBytesの読み出しに20秒! 7
  • 8. 分散読み書きの課題 • ハードディスクの障害 – データのミラーリングやRAIDなどの障害対策 • 障害対策のコスト – 大規模なRAIDは高くつく • 障害対策自体がボトルネックになる – RAIDコントローラーが制約要因 • 処理結果の結合 – 別々のディスクにあるデータ同士を結びつけるの は難しい 8
  • 9. Googleによる解決策 Google File System論文、MapReduce論文 • 冗長化 – どこか壊れることを前提とした構成 • 汎用ハードウェアの利用 – 市場のスケールメリットを最大限に生かす • 分散ファイルシステム – 複数台のマシンが協調してファイルを管理 • 分散処理のための専用フレームワーク – MapReduceアルゴリズム 9
  • 10. Hadoopの登場 • Nutch(オープンソースWeb検索エンジン)の開発 者がGoogle論文のアイディアをJavaで再実装 • Hadoop開発の目的 – Nutchが直面していたスケールアウト問題の解決 – さまざまなデータに応用できる「汎用性」の実現 → 多くの開発者を巻き込み、プロジェクトが急激に成 長 • 現在は多くの企業が自社サービスに活用 – 特に米Yahoo!とFacebookは多数の開発者が参加 – 10000台以上、ペタバイト規模のクラスタとして実用 10
  • 11. Hadoopとは何か? A large-scale distributed batch processing infrastracture • Large-scale = Web規模のデータを扱える • 1TBytes(1兆バイト)~1PBytes(1000兆バイト) • Distributed = 分散型システム • Batch = バッチ処理専用 (高速な処理) • Infrastructure = インフラとしてのシステム • つまり意識せずに使える 11
  • 12. Hadoopを支える2つの柱 • MapReduce – 互いに並列処理可能な形に処理を分解 →スケールアウトしやすい – 関数型言語の考え方を巨大データに適用 – map関数(=射影)とreduce関数(=畳み込み) • HDFS (Hadoop分散ファイルシステム) – 巨大なファイルブロック (MapReduceに最適化) – 同一のファイルブロックのコピーを複数のノードが 保持 12
  • 13. Hadoopクラスタの構成 • マスタ – クラスタ全体の「親分」となる1台のPCサーバ – JobTracker (MapReduce担当)とNameNode (HDFS担 当)の2つのデーモンを動かす • スレーブ – クラスタの「子分」となる多数のPCサーバ – TaskTracker (MapReduce担当)とDataNode (HDFS担 当)の2つのデーモンを動かす ※クライアント – MapReduce、HDFSを利用する「お客さん」 – 必要に応じてマスタ・スレーブと通信 13
  • 14. HDFSクライアントJVM Hadoopスレーブサーバ#1 HDFS DataNode HDFS API HDFSストレージ クライアント デーモン(JVM) 子JVM HDFS TaskTracker map/reduce クライアント デーモン(JVM) 子JVM HDFS SecondaryName Node デーモン Hadoopクラスタ map/reduce クライアント (JVM) Hadoopマスタサーバ Hadoopスレーブサーバ#2 HDFS メタ NameNode DataNode HDFSストレージ データ DB デーモン(JVM) デーモン(JVM) 子JVM HDFS map/reduce TaskTracker クライアント デーモン(JVM) 子JVM HDFS JobTracker map/reduce クライアント デーモン(JVM) ・・ ・ Hadoopスレーブサーバ#N MapReduceクライアントJVM DataNode HDFSストレージ デーモン(JVM) (6)入出力ファイルを HDFSで読み書き MapReduce 子JVM HDFS JobConf プログラム TaskTracker map/reduce クライアント デーモン(JVM) 子JVM HDFS (5)タスクを実行する map/reduce 14 クライアント 子JVMをfork起動
  • 15. MapReduceとは? • データ処理を関数型言語の考え方で表現 – map関数(射影)とreduce関数(畳み込み) • ひとつの大きな処理(ジョブ)を細かな処理単 位(タスク)に分解 • 耐障害性: いずれかのスレーブが壊れても正 常に動き続ける • JobTrackerとTaskTrackerが連携して動作 – JobTracker: ジョブ全体の管理、タスクの割り当て – TaskTracker: タスクの処理 15
  • 16. MapReduceのイメージ map reduce map map reduce map reduce map × 射影 畳み込み 16
  • 17. MapReduceのデータモデル 東京タワー バナナ 放送塔 2 k key-valueペア v (k, v) 東京タワー みかん 観光名所 3 k key-valuesペア v1 東京タワー (k, list(v)) v1 放送塔 v1 観光名所 v1 17
  • 18. MapReduceのデータの流れ key-valueペア key-valueペア key-valuesペア key-valueペア (k, v) (k’, v’) (k’, list(v’)) (k’’, v’’) 並行するmap関数、 reduce関数どうし はお互いに独立 B k1 3 map A ファイル v1 k’’1 C 2 reduce v’’1 ファイル 5 4 データ ベース データ k2 A ベース map Amazon v2 2 B S3 reduce φ Amazon 3 S3 MapReduce MapReduce の出力 k’’2 の入力 C C v’’2 ・・ ・・ k3 1 ・ map 1 reduce ・ v3 k’’3 A 5 4 v’’3 (1)mapフェーズ (2)shuffle & sort (3)reduceフェーズ 18 フェーズ
  • 19. MapReduceの多段適用 (アクセスログ集計処理の例) k 110.0.146.55 - - [12/Jan/2010:06:00:10 +0900] v "GET /linux/ HTTP/1.0" 302 1102 110.0.240.244 - - k 5 /article/COLUMN/2006022 v [12/Jan/2010:06:19:29 +0900] 4/230573/ "GET /article/COLUMN/20060224/23 3 /linux/image/cover_small_ 0573/ HTTP/1.1" 200 82242 110.0.240.244 - - MapReduce k MapReduce 1002.jpg [12/Jan/2010:06:20:23 +0900] v 3 /linux/image/logo10.jpg "GET /article/COLUMN/20060224/23 (grep-search) (grep-sort) 2 0573/ HTTP/1.1" 200 82242 k /linux/image/cover_small_ 110.0.43.6 - - [12/Jan/2010:06:26:20 +0900] v 1002.jpg "GET /linux/ HTTP/1.1" 302 1102 110.0.43.6 - - ・・ [12/Jan/2010:06:26:20 +0900] (k, v) ・ (k, v) "GET /linux/image/cover_small_1002. = (null, アクセスログの1行) = (URL, アクセス頻度) k jpg HTTP/1.1" 304 0 (k’, v’) (k’, v’) = (URL, 1) v = (アクセス頻度, URL) (k’’, v’’) (k’’, v’’) (k, v) = (URL, アクセス頻度) = (null, 行の文字列) = (URL, アク セス頻度) map関数: map関数: URLを正規表現で抜き出す URLとアクセス頻度をひっくり返し、 reduce関数: keyをアクセス頻度にする URL毎の頻度をカウントする reduce関数: 行の文字列を生成する 19
  • 21. HDFSとは? • クラスタ全体でひとつの大きな仮想ファイルシ ステムを実現 • FATやe3fsと同様、ファイルとブロックの概念 – ブロックサイズが巨大 (64Mbytes~) • 耐障害性 – 同一ブロックが複数のスレーブに存在 – 障害発生時は自動的にブロックを複製 • NameNodeとDataNodeが連携して動作 21
  • 22. HDFSのイメージ /file/X.txt NameNode /file/X.txt-0 64MB 64MB /file/X.txt-1 HDFSメタデータデータベース 64MB ファイル名 ブロック DataNode /file/X.txt-2 番号 /file/X.txt 0 A, D, F /file/Y.txt 1 B, D, E /file/Y.txt-0 64MB 2 A, C, F 64MB /file/Y.txt 0 B, D, E /file/Y.txt-1 1 A, C, E /file/X.txt-0 /file/X.txt-1 /file/X.txt-2 /file/X.txt-0 /file/X.txt-1 /file/X.txt-0 /file/X.txt-2 /file/Y.txt-0 /file/Y.txt-1 /file/X.txt-1 /file/Y.txt-0 /file/X.txt-2 /file/Y.txt-0 /file/Y.txt-1 /file/Y.txt-1 DataNode A DataNode B DataNode C DataNode D DataNode E DataNode F 22
  • 23. HDFSのファイル読み込み (1)/file/Y.txt を (2)/file/Y.txt の各ブ (3) 全部読み込み ロックを持っている ブロック0 → B, D, E たい DataNodeを教えて NameNode ブロック1 → A, C, E にあるよ HDFSクライアントJVM HDFSメタデータデータベース ファイル名 ブロック DataNode HDFS 番号 HDFS API クライアント /file/X.txt 0 A, D, F (5)E君、/file/Y.txt の 1 B, D, E ブロック1ちょうだい 2 A, C, F /file/Y.txt 0 B, D, E (6)お待たせ! 1 A, C, E /file/Y.txt-0 (4)B君、/file/Y.txt の /file/Y.txt-1 ブロック0ちょうだい /file/X.txt-0 /file/X.txt-1 /file/X.txt-2 /file/X.txt-0 /file/X.txt-1 /file/X.txt-0 /file/X.txt-2 /file/Y.txt-0 /file/Y.txt-1 /file/X.txt-1 /file/Y.txt-0 /file/X.txt-2 /file/Y.txt-0 /file/Y.txt-1 /file/Y.txt-1 DataNode A DataNode B DataNode C DataNode D DataNode E DataNode F 23
  • 24. HDFSのファイル書き込み (4)OK!それではまずB君に (3)B君, C君, F君は まだ空きがたくさん あるな。よし、 (1)/file/Y.txt に 書き込んでね。そのとき、C /file/Y.txtのブロック (2)/file/Y.txt に追加 君, F君にもコピーを渡すよ 2は彼らに割り当て 追加書き込みし 書き込みさせてよ たいんだけど NameNode うに伝言しておいて。終わっ たら教えてね よう HDFSメタデータデータベース HDFSクライアントJVM ファイル名 ブロック DataNode 番号 HDFS /file/X.txt 0 A, D, F HDFS API クライアント 1 B, D, E (6)B君、これを書き込んでお (12)終わったよ 2 A, C, F いて。 (5)これを書き込ん /file/Y.txt 0 B, D, E でね /file/Y.txt-2 1 A, C, E それから、C君、F君にもコ 2 B, C, F ピーを渡しておいて。終わっ (11)終わったよ たら教えてね /file/X.txt-1 /file/X.txt-2 /file/X.txt-0 /file/Y.txt-0 /file/Y.txt-1 (8)F君、これを書き込 /file/X.txt-2 んでおいて。 /file/Y.txt-2 /file/Y.txt-2 /file/Y.txt-2 /file/Y.txt-2 終わったら教えてね DataNode B DataNode C DataNode F (7)C君、これを書き込んで おいて。 /file/Y.txt-2 それから、F君にもコピーを (10)終わったよ (9)終わったよ 24 渡しておいて。終わったら 教えてね
  • 25. DataNodeの障害時 NameNode (1)あれ、C君死んだ?! HDFSメタデータデータベース (2)C君が持っていた Live Nodes ブロックは ファイル名 ブロック 番号 DataNode A B C D E F /file/X.txt-2と /file/Y.txt-1だな。よ /file/X.txt 0 A, D, F し、空き容量が多い 1 B, D, E B君、F君にコピーし てもらおう 2 A, C, F, B Dead Nodes /file/Y.txt 0 B, D, E (3)A君、きみが持っている 1 A, C, E, F C /file/X.txt のブロック2をB君 (5)E君、きみが持っている にもコピーしておいてね /file/Y.txt のブロック1をF君 にもコピーしておいてね /file/X.txt-0 /file/X.txt-1 /file/X.txt-2 /file/X.txt-0 /file/X.txt-1 /file/X.txt-0 /file/X.txt-2 /file/Y.txt-0 /file/Y.txt-1 /file/X.txt-1 /file/Y.txt-0 /file/X.txt-2 /file/Y.txt-0 /file/Y.txt-1 /file/Y.txt-1 /file/Y.txt-1 /file/X.txt-2 DataNode A DataNode B DataNode C DataNode D DataNode E DataNode F (4)B君、これを書 (6)F君、これを書 き込んでおいてね き込んでおいてね 25 /file/X.txt-2 /file/Y.txt-1
  • 26. MapReduceとの親和性 • mapタスクはブロック単位で作られる • 可能な限り各々のタスクはブロックが存在す るスレーブに割り振られる →通信コストが最小化される =スケールアウトしやすい 26
  • 28. インフラとしてのHadoop • インフラとは? – 道路・鉄道・水道・電気・ガス・電話・インターネット… – さまざまなトラブルを解消するしくみを備えている – 非常に複雑なシステム、維持は大変! – 存在を意識せずに利用できる • Hadoop = 莫大データバッチ処理のインフラ – 耐障害性の確保に重点がおかれている – なかみは非常に複雑 – 利用者は意識しなくても使える 28
  • 29. Hadoopで何ができる? • 莫大なデータのバッチ処理に威力を発揮 • SQLでは記述しにくい複雑な処理に向いている – 時系列処理 – 検索インデックス作成 – レコメンデーション – 画像処理 – DNAシーケンスマッチング – 言語モデル生成 (音声認識、機械翻訳、…) 29
  • 30. リッテルでの活用事例 (1) • サーバ構成 – NameNode 2台 • Dual Core CPU (2.66GHz), 4GBytes RAM, 750GBytes HDD – DataNode 20台 • Dual Core CPU (2.4GHz), 4GBytes RAM, 1.5TBytes HDD • 総ストレージ量 15TBytes (冗長化) – 1TBあたり単価は16万円程度 • 大量のWebアクセスログのマイニングに利用 • ベンチマーク – 3億4000万レコード (63GBytes) の時系列処理 → 約12分で完了 30
  • 31. 時系列処理の例 アクセスログより、google等で検索した直後にどのサイトを訪れているかを抽出 し、検索語と関連性の高いURLを取り出す ID URL access time 00001 www.yahoo.co.jp 2008-08-20 11:10 www.google.co.jp/?search=XXXXXXX 2008-08-20 11:11 www.dentsu.co.jp 2008-08-20 11:12 ・・・・・・・ ・・・・・・・・ この検索後を投入した人(ID)が、その直後、例えば5分以内に どのサイトを訪れているのか、URLの一覧を取得する N分間 時間 検 訪問したURL 索 検索語に非常に関連性の高いURLとして見なす 31
  • 32. リッテルでの活用事例 (2) • クローリングしたブログを1時間ごとに解析し、 急上昇ワードを抽出 • 変化率を計算するため、莫大なデータを毎時 処理する必要がある • Hadoopクラスタ – DataNode 3台 (QuadCore CPU) • 数十Gbytesのデータを20分ほどで解析 32
  • 34. 2009 sort benchmark • 巨大データのソート速度を競うコンテスト • 米Yahoo!のグループがHadoopで参加し、2部門 で優勝 • GraySort部門: 1分あたりのソートデータ量 – 0.578TBytes/min (100 TB in 173 minutes ) – 3452 nodes x (2 Quadcore Xeons, 8 GB memory, 4 SATA) • MinuteSort部門: 1分以内にソートできる最大 データ量 – 500 GB – 1406 nodes x (2 Quadcore Xeons, 8 GB memory, 4 SATA) 34
  • 35. 分散RDBMSとの比較 Andrew Pavlo et al. A Comparison of Approaches to Large-Scale Data Analysis, In Proc. of SIGMOD 2009, pp. 165-178. • Hadoopと2種類の商用分散RDBMS (Verticaと 某製品)を比較 • データの搭載はHadoopが高速 • 特定のカラムを対象とした検索処理は分散 RDBMSが高速 • どちらを選択すべきかは用途に応じて決める べき 35
  • 38. 分散RDBMSの限界 • 設定すべきパラメータがたくさん – セットアップは大変 – チューニングは困難 • どうインデキシングするかをあらかじめ決め ておく必要がある – 多様な分析の切り口を提供しづらい • 耐障害性の確保には高いコストがかかる • SQLでは記述が困難なロジックがマーケティン グ領域では必要とされる – 複雑なBoolean条件 – 時系列集計 (時間的な前後関係の考慮) 38
  • 39. まとめ • Hadoopの特徴はマーケティング領域におけ るデータ解析ニーズにフィットする – データ搭載のスループットが重要 – 多面的な解析が必須 – 複雑なBoolean式や時系列集計などでもパフォー マンスを発揮できる • 低コストで耐障害性を確保できる – MapReduceの単純なプログラミングモデルの御 利益 • スケーラビリティの担保は生命線 – 性能が台数に比例しなければ早々に破綻 39