SlideShare une entreprise Scribd logo
1  sur  46
Télécharger pour lire hors ligne
Hadoop入門

株式会社 Preferred Infrastructure
       西川 徹
とは?
• Googleの基盤ソフトウェアのクローン
  – Google File System, MapReduce
• Yahoo Research の Doug Cutting氏が開発
  – 元々はLuceneのサブプロジェクト
  – Apache Project
• Javaで記述!
Google関連 参考論文 & スライド
• The Google File System
  – Sanjay Ghemawat, Howard Gobioff, and Shu-Tak
    Leong, SOSP 2003

• MapReduce: Simplified Data Processing on Large
  Clusters
  – Jeffrey Dean and Sanjay Ghemawat, SOSP 2004

• Parallel Architectures and Compilation
  Techniques (PACT) 2006, KeyNote
  – http://www.cs.virginia.edu/~pact2006/program/mapr
    educe-pact06-keynote.pdf
Hadoop参考文献
• Hadoop公式サイト
 – http://hadoop.apache.org/core/
 – Wiki: http://wiki.apache.org/hadoop/
    • インストール方法・チュートリアル・プレゼン資料など
 – Running Hadoop on Ubuntu Linux
    • http://www.michael-
      noll.com/wiki/Running_Hadoop_On_Ubuntu_Linux_(Single-
      Node_Cluster)
    • http://www.michael-
      noll.com/wiki/Running_Hadoop_On_Ubuntu_Linux_%28Multi-
      Node_Cluster%29

• Hadoop, hBaseで構築する大規模データ処理システム
  on Codezine
 – http://codezine.jp/a/article/aid/2448.aspx
弊社による取り組み
• OSS分散システム「Hadoop」解析資料
 – NTTレゾナント様と共同で調査・公開


• Googleの基盤システムと比較し、機能的には
  遜色が無い事を確認
 – GFS/HDFSの機能比較
 – MapReduce/Hadoop Mapreduceの機能比較
 – ソースコード構造の解析
 – ベンチマーク結果
性能
• Apache Hadoop wins TeraSort Benchmark!
  – http://developer.yahoo.com/blogs/hadoop/2008/
    07/apache_hadoop_wins_terabyte_sort_benchm
    ark.html
  – 規定フォーマットの1Tデータをソート
  – 209 seconds (5G/sec, 5M/sec per node)
    • 910 nodes, 4 dual core Xeon 2.0GHz, 1G Ether


                      物量作戦
Hadoop,MapReduce登場の背景
問題
• インターネットの爆発的普及により、非常に大
  規模なデータが蓄積されている
 – 例えばWebページのサイズを考えてみる
   • 200億ページ * 20KB = 400 TB

 – Disk読み込み性能は50MB/sec (SATA)
   • 1台では読み込むだけでも約100日
   • 保存するだけでも500Gのディスクが1000個程度必要


• このデータを効率的に処理したい
解決方法
• お金
 – とにかく大量のマシンを用意
 – 1000台マシンがあれば1台で400G処理すればok
 – 読み込むのに8000秒程度で済む
お金だけでは解決しない
• プログラミングが非常に困難になる
 – プロセス起動
 – プロセス監視              うはー
                     めんどくせー!
 – プロセス間通信
 – デバッグ
 – 最適化
 – 故障時への対応


• しかも、新しいプログラムを作る度にこれらの
  問題をいちいち実装する必要がある
既存の分散/並列プログラミング環境
• MPI (Message Passing Interface)
  – 並列プログラミングのためのライブラリ
     • スパコンの世界では主流


  – プログラマは各プロセスの挙動を記述
     • 通信プリミティブ(Send, Recv, All-to-All)が提供されてお
       り、それを用いてデータ通信を実現


  – 利点
     • 通信パターンなどをプログラマがコントロールでき、問
       題に対して最適なプログラムを記述する事ができる
MPIの問題点
• 問題点
 – 耐障害性への考慮が少ない
  • アプリケーションが独自にチェックポイント機能を実装
  • 1万台以上の環境で計算するには耐えられない
    – 1台が1000日程度で壊れるとすると、1日で10台程度壊れる
    – 壊れる度にチェックポイントから戻すとかやってらんない
    – RAID組んでもそのうち壊れるので一緒


 – 通信パターンなどを記述する作業が多くなり、実
   際のアルゴリズムを記述するのにたどり着くまで
   時間がかかる
そこでMapReduce
• 大体の大規模データ処理を行う問題に特化したプロ
  グラミングモデル
 – アルゴリズムの記述のみにプログラマが集中できる
 – ただし世の中の問題全てに対して最適なモデルではない

• ライブラリ側で面倒な事を全て担当
 –   自動的に処理を分散/並列化
 –   ロードバランシング
 –   ネットワーク転送・ディスク使用効率化
 –   耐障害性の考慮
     • 1ノードで失敗したら違う場所でやりなおせばいいよね
 – MapReduceが賢くなれば、それを使う全てのプログラムが
   賢くなる!
MapReduce型の処理
•   WordCount
•   Grep
•   Sort (適切なPartition関数を選択する必要)
•   Log Analysis
•   Web Graph Generation
•   Inverted Index Construction
•   Machine Learning
    – NaiveBayes, K-means, Expectation Maximization,
      etc.
Googleでの使用率
MapReduce
プログラミングモデル
MapReduceの実行フロー


Data      Map

                          Reduce   Data


Data      Map   Shuffle

                          Reduce   Data

Data      Map
MapReduceの実行フロー
• 入力読み込み
  – <key, value>*
• Map
  – map: <key, value> ⇒ <key’, value’>*
• Shuffle
  – shuffle: <key’, reducers> ⇒ destination reducer
• Reduce
  – reduce: <key’, <value’> * > ⇒ <key’’, value’’>*
• 出力書き出し
  – <key’’, value’’>*
MapReduceの実行フロー

                 <k, v>* ⇒ <k’, v’>*
       <k, v>*
Data                   Map                  <k’, <v’>*>* ⇒ <k’’, v’’>*

                                                    Reduce               Data
                 <k, v>* ⇒ <k’, v’>*
       <k, v>*
Data                   Map             Shuffle

                                                    Reduce               Data
                 <k, v>* ⇒ <k’, v’>*
       <k, v>*                              <k’, <v’>*>* ⇒ <k’’, v’’>*
Data                   Map
入力文書: doc1      例: ワードカウント
  foo foo foo
 bar bar buzz




    Data         Map

                                 Reduce   Data


    Data         Map   Shuffle

                                 Reduce   Data

    Data         Map
入力文書: doc1          例: ワードカウント
 foo foo foo
 bar bar buz




    Data             Map
        doc1: foo
        doc1: foo                    Reduce   Data


    Data             Map   Shuffle
        doc1: foo
        doc1: bar                    Reduce   Data

    Data             Map
        doc1: bar
        doc1: buz
入力文書: doc1         例: ワードカウント
 foo foo foo
 bar bar buz


               doc1: foo
               doc1: foo
    Data                   Map

               doc1: foo                   Reduce   Data
               doc1: bar
    Data                   Map   Shuffle


               doc1: bar                   Reduce   Data
               doc1: buz
    Data                   Map
入力文書: doc1         例: ワードカウント
 foo foo foo
 bar bar buz


               doc1: foo         foo: 1
               doc1: foo         foo: 1
    Data                   Map

               doc1: foo         bar: 1   Reduce   Data
               doc1: bar         foo: 1
    Data                   Map

               doc1: bar         bar: 1   Reduce   Data
               doc1: buz         buz: 1
    Data                   Map
入力文書: doc1     例: ワードカウント
 foo foo foo
 bar bar buz


                foo: 1
                foo: 1
                Map      bar: <1, 1>
    Data
                         buz: <1>

                bar: 1                 Reduce   Data
                foo: 1
    Data        Map      foo: <1, 1, 1>

                bar: 1                 Reduce   Data
                buz: 1
    Data        Map
入力文書: doc1     例: ワードカウント
 foo foo foo
 bar bar buz




                Map   bar: <1, 1>
    Data
                      buz: <1>
                                    Reduce   Data


    Data        Map   foo: <1, 1, 1>

                                    Reduce   Data

    Data        Map
入力文書: doc1     例: ワードカウント
 foo foo foo
 bar bar buz




                Map   bar: <1, 1>            bar: 2
    Data
                      buz: <1>               buz: 1
                                    Reduce            Data


    Data        Map   foo: <1, 1, 1>         foo: 3

                                    Reduce            Data

    Data        Map
入力文書: doc1     例: ワードカウント
 foo foo foo
 bar bar buz




                Map            bar: 2
    Data
                               buz: 1
                      Reduce   Data


    Data        Map            foo: 3

                      Reduce   Data

    Data        Map
例: ワードカウント
• 擬似コード
  map(string key, string value) {
    foreach word in value:
      emit(word, 1);
  }

  reduce(string key, vector<int> values) {
    int result = 0;
    for (int i = 0; I < values.size(); i++)
      result += values[i];
    emit(key, result);
  }
MapReduceの特徴
• データ通信
 – 各Map処理、Reduce処理は完全に並列に実行可能
 – マシンを増やせばその分処理能力が増える

• 耐故障性
 – 失敗したMap, Reduce処理は他のノードで再実行される
 – 遅いMap, Reduce処理についても同じ

• ローカリティ
 – データのある場所で計算を始めれば、ネットワークを使う
   必要がなくなる
 – Moving Computation is Cheaper Than Moving Data
Hadoopの中身
Hadoopの中身



• Hadoop Distributed File System (HDFS)
  – GFSのクローン
  – MapReduceプログラムの入力や出力に使用
• Hadoop MapReduce
  – MapReduce処理を実現するためのサーバー,ライ
    ブラリ
Hadoop Distributed File System
• Master/Slave アーキテクチャ
• ファイルはブロックという単位に分割して保存

• NameNode
  – Master
  – ファイルのメタデータ(パス・権限など)を管理

• DataNode
  – Slave
  – 実際のデータ(ブロックを管理)
From: http://hadoop.apache.org/core/docs/current/hdfs_design.html
Hadoop MapReduce
• Master/Slave アーキテクチャ

• JobTracker
   – Master
   – JobをTaskに分割し、Taskを各TaskTrackerに分配
      • Job: MapReduceプログラムの実行単位
      • Task: MapTask, ReduceTask
   – 全てのTaskの進行状況を監視し、死んだり遅れたりしたTaskは
     別のTaskTrackerで実行させる

• TaskTracker
   – Slave
   – JobTrackerにアサインされたTaskを実行
      • 実際の計算処理を行う
MapReduce Processing
                        JobTracker

TaskTracker
Mapフェーズ
• 分割された入力を読み込み、mapプログラムを動かす
• Partitioner(通常はHash)を使用して宛先を決定
• バッファサイズが閾値を越えたらメモリ上でソートして
  ディスクに書き出す
• すべてが終わったらソートされたものをさらに外部マー
  ジソート
             Reducer1宛て



    (k, v)   Reducer2宛て
Reduceフェーズ
•   Mapフェーズの出力をフェッチ
•   メモリ上でキー毎にまとめあげる
•   Reduceプログラムを動かす
•   出力をHDFSに書き出し
    – Amazon S3などにも書き出せる
Hadoopを取り巻く環境
概要
• Hadoopを扱いやすくするミドルウェア
  – Pig
  – Hive
                     Pig,Hive
  – HBase
                                       HBase
• MapReduce+RDBMS   MapReduce

  – HadoopDB
                                HDFS
Pig
• Pig Latinという専用言語で簡単にDWH的な処
  理を書けるようにしたミドルウェア
 – Javaを使用せずに、SQL的な言語でMapReduce処
   理を記述する事が出来る
 – Googleでは、同様にSawzallというスクリプト言語
   で、MapReduce処理が簡単に書けるようになって
   いる
• Yahoo!が開発
• データのロード・結合やフィルタ処理を楽に書
  ける
Hive
• Pigと同じく、SQLのような言語(HiveQL)で処理
  を記述することができる
 – Facebookが独自に開発
• Join,Group Byといった操作を、SQLであたかも
  扱っているように書くことが可能
• Facebookでは、95%のMapReduceジョブが、
  HiveQLプログラムになっている
HBase
• BigTableのクローン
• HDFSは巨大なファイルを扱うのは苦手だが、
  細かいデータを大量に扱う操作は苦手
• 細かい粒度・低レイテンシなデータアクセスを
  可能にするための分散データベース
 – 同じ分野のソフトウェアとして、HyperTable


• Telanium.Inc. 小宮山様のプレゼンに登場予定
HadoopDB
• Hadoopは、バッチ処理が得意
• OLAP的な処理はRDBMSが得意

• 2つをくっつけて、大量データ・非構造的なデ
  ータをHadoopで処理し、対話的なBI処理は
  RDBMSに任せる
RDBMSとの共存
• RDBMSとHadoopは競合するものではない

• 商用製品でもMapReduceとRDBMSのハイブリ
  ッドなものがでてきた
 – Vertica
まとめ
まとめ
•   Hadoopの概要
•   MapReduceプログラミングモデル
•   Hadoopの中身・アーキテクチャ
•   Hadoopを取り巻く環境

Contenu connexe

Tendances

初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!Tetsutaro Watanabe
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)NTT DATA Technology & Innovation
 
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)NTT DATA Technology & Innovation
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方Yoshiyasu SAEKI
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)NTT DATA Technology & Innovation
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれKumazaki Hiroki
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方Shohei Koyama
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話Kentaro Yoshida
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜Preferred Networks
 
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略Takayuki Shimizukawa
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~NTT DATA OSS Professional Services
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)NTT DATA Technology & Innovation
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドAkihiro Suda
 
ログ解析を支えるNoSQLの技術
ログ解析を支えるNoSQLの技術ログ解析を支えるNoSQLの技術
ログ解析を支えるNoSQLの技術Drecom Co., Ltd.
 

Tendances (20)

NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例
 
Apache Sparkのご紹介 (後半:技術トピック)
Apache Sparkのご紹介 (後半:技術トピック)Apache Sparkのご紹介 (後半:技術トピック)
Apache Sparkのご紹介 (後半:技術トピック)
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
 
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
 
Apache Spark の紹介(前半:Sparkのキホン)
Apache Spark の紹介(前半:Sparkのキホン)Apache Spark の紹介(前半:Sparkのキホン)
Apache Spark の紹介(前半:Sparkのキホン)
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
 
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
ログ解析を支えるNoSQLの技術
ログ解析を支えるNoSQLの技術ログ解析を支えるNoSQLの技術
ログ解析を支えるNoSQLの技術
 

Similaire à Hadoop入門

Googleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてGoogleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてKazuki Ohta
 
Hadoop splittable-lzo-compression
Hadoop splittable-lzo-compressionHadoop splittable-lzo-compression
Hadoop splittable-lzo-compressionDaiki Sato
 
OSC2011 Tokyo/Spring Hadoop入門
OSC2011 Tokyo/Spring Hadoop入門OSC2011 Tokyo/Spring Hadoop入門
OSC2011 Tokyo/Spring Hadoop入門Shinichi YAMASHITA
 
今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)Toru Takizawa
 
カウチなやつら CouchDB in the room
カウチなやつら CouchDB in the roomカウチなやつら CouchDB in the room
カウチなやつら CouchDB in the roomMakoto Ohnami
 
CouchDB JP & BigCouch
CouchDB JP & BigCouchCouchDB JP & BigCouch
CouchDB JP & BigCouchYohei Sasaki
 
OSC2012 Tokyo/Spring - Hadoop入門
OSC2012 Tokyo/Spring - Hadoop入門OSC2012 Tokyo/Spring - Hadoop入門
OSC2012 Tokyo/Spring - Hadoop入門Shinichi YAMASHITA
 
BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門Yohei Sasaki
 
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)Hadoop / Spark Conference Japan
 
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説decode2016
 
Db2 Warehouse Spark利用ガイド データ操作編
Db2 Warehouse Spark利用ガイド データ操作編Db2 Warehouse Spark利用ガイド データ操作編
Db2 Warehouse Spark利用ガイド データ操作編IBM Analytics Japan
 

Similaire à Hadoop入門 (20)

Googleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてGoogleの基盤クローン Hadoopについて
Googleの基盤クローン Hadoopについて
 
Hadoop splittable-lzo-compression
Hadoop splittable-lzo-compressionHadoop splittable-lzo-compression
Hadoop splittable-lzo-compression
 
OSC2011 Tokyo/Spring Hadoop入門
OSC2011 Tokyo/Spring Hadoop入門OSC2011 Tokyo/Spring Hadoop入門
OSC2011 Tokyo/Spring Hadoop入門
 
OSC2012 OSC.DB Hadoop
OSC2012 OSC.DB HadoopOSC2012 OSC.DB Hadoop
OSC2012 OSC.DB Hadoop
 
Hadoop事始め
Hadoop事始めHadoop事始め
Hadoop事始め
 
今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)
 
MapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知るMapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知る
 
カウチなやつら CouchDB in the room
カウチなやつら CouchDB in the roomカウチなやつら CouchDB in the room
カウチなやつら CouchDB in the room
 
Hadoop - OSC2010 Tokyo/Spring
Hadoop - OSC2010 Tokyo/SpringHadoop - OSC2010 Tokyo/Spring
Hadoop - OSC2010 Tokyo/Spring
 
CouchDB JP & BigCouch
CouchDB JP & BigCouchCouchDB JP & BigCouch
CouchDB JP & BigCouch
 
Inside of Asakusa DSL
Inside of Asakusa DSLInside of Asakusa DSL
Inside of Asakusa DSL
 
HDFS vs. MapR Filesystem
HDFS vs. MapR FilesystemHDFS vs. MapR Filesystem
HDFS vs. MapR Filesystem
 
Hadoop loves H2
Hadoop loves H2Hadoop loves H2
Hadoop loves H2
 
OSC2012 Tokyo/Spring - Hadoop入門
OSC2012 Tokyo/Spring - Hadoop入門OSC2012 Tokyo/Spring - Hadoop入門
OSC2012 Tokyo/Spring - Hadoop入門
 
BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門
 
MongoDB
MongoDBMongoDB
MongoDB
 
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
 
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
 
Db2 Warehouse Spark利用ガイド データ操作編
Db2 Warehouse Spark利用ガイド データ操作編Db2 Warehouse Spark利用ガイド データ操作編
Db2 Warehouse Spark利用ガイド データ操作編
 
Hadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返りHadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返り
 

Plus de Preferred Networks

PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57Preferred Networks
 
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Preferred Networks
 
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...Preferred Networks
 
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...Preferred Networks
 
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Preferred Networks
 
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Preferred Networks
 
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2Preferred Networks
 
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2Preferred Networks
 
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演Preferred Networks
 
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)Preferred Networks
 
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)Preferred Networks
 
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)Preferred Networks
 
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語るKubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語るPreferred Networks
 
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張Preferred Networks
 
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会Preferred Networks
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2Preferred Networks
 
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...Preferred Networks
 
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...Preferred Networks
 
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...Preferred Networks
 
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50Preferred Networks
 

Plus de Preferred Networks (20)

PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
 
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
 
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
 
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
 
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
 
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
 
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
 
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
 
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
 
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
 
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
 
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
 
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語るKubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
 
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
 
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
 
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
 
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
 
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
 
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
 

Dernier

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

Dernier (9)

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

Hadoop入門

  • 2. とは? • Googleの基盤ソフトウェアのクローン – Google File System, MapReduce • Yahoo Research の Doug Cutting氏が開発 – 元々はLuceneのサブプロジェクト – Apache Project • Javaで記述!
  • 3. Google関連 参考論文 & スライド • The Google File System – Sanjay Ghemawat, Howard Gobioff, and Shu-Tak Leong, SOSP 2003 • MapReduce: Simplified Data Processing on Large Clusters – Jeffrey Dean and Sanjay Ghemawat, SOSP 2004 • Parallel Architectures and Compilation Techniques (PACT) 2006, KeyNote – http://www.cs.virginia.edu/~pact2006/program/mapr educe-pact06-keynote.pdf
  • 4. Hadoop参考文献 • Hadoop公式サイト – http://hadoop.apache.org/core/ – Wiki: http://wiki.apache.org/hadoop/ • インストール方法・チュートリアル・プレゼン資料など – Running Hadoop on Ubuntu Linux • http://www.michael- noll.com/wiki/Running_Hadoop_On_Ubuntu_Linux_(Single- Node_Cluster) • http://www.michael- noll.com/wiki/Running_Hadoop_On_Ubuntu_Linux_%28Multi- Node_Cluster%29 • Hadoop, hBaseで構築する大規模データ処理システム on Codezine – http://codezine.jp/a/article/aid/2448.aspx
  • 5. 弊社による取り組み • OSS分散システム「Hadoop」解析資料 – NTTレゾナント様と共同で調査・公開 • Googleの基盤システムと比較し、機能的には 遜色が無い事を確認 – GFS/HDFSの機能比較 – MapReduce/Hadoop Mapreduceの機能比較 – ソースコード構造の解析 – ベンチマーク結果
  • 6. 性能 • Apache Hadoop wins TeraSort Benchmark! – http://developer.yahoo.com/blogs/hadoop/2008/ 07/apache_hadoop_wins_terabyte_sort_benchm ark.html – 規定フォーマットの1Tデータをソート – 209 seconds (5G/sec, 5M/sec per node) • 910 nodes, 4 dual core Xeon 2.0GHz, 1G Ether 物量作戦
  • 8. 問題 • インターネットの爆発的普及により、非常に大 規模なデータが蓄積されている – 例えばWebページのサイズを考えてみる • 200億ページ * 20KB = 400 TB – Disk読み込み性能は50MB/sec (SATA) • 1台では読み込むだけでも約100日 • 保存するだけでも500Gのディスクが1000個程度必要 • このデータを効率的に処理したい
  • 9. 解決方法 • お金 – とにかく大量のマシンを用意 – 1000台マシンがあれば1台で400G処理すればok – 読み込むのに8000秒程度で済む
  • 10. お金だけでは解決しない • プログラミングが非常に困難になる – プロセス起動 – プロセス監視 うはー めんどくせー! – プロセス間通信 – デバッグ – 最適化 – 故障時への対応 • しかも、新しいプログラムを作る度にこれらの 問題をいちいち実装する必要がある
  • 11. 既存の分散/並列プログラミング環境 • MPI (Message Passing Interface) – 並列プログラミングのためのライブラリ • スパコンの世界では主流 – プログラマは各プロセスの挙動を記述 • 通信プリミティブ(Send, Recv, All-to-All)が提供されてお り、それを用いてデータ通信を実現 – 利点 • 通信パターンなどをプログラマがコントロールでき、問 題に対して最適なプログラムを記述する事ができる
  • 12. MPIの問題点 • 問題点 – 耐障害性への考慮が少ない • アプリケーションが独自にチェックポイント機能を実装 • 1万台以上の環境で計算するには耐えられない – 1台が1000日程度で壊れるとすると、1日で10台程度壊れる – 壊れる度にチェックポイントから戻すとかやってらんない – RAID組んでもそのうち壊れるので一緒 – 通信パターンなどを記述する作業が多くなり、実 際のアルゴリズムを記述するのにたどり着くまで 時間がかかる
  • 13. そこでMapReduce • 大体の大規模データ処理を行う問題に特化したプロ グラミングモデル – アルゴリズムの記述のみにプログラマが集中できる – ただし世の中の問題全てに対して最適なモデルではない • ライブラリ側で面倒な事を全て担当 – 自動的に処理を分散/並列化 – ロードバランシング – ネットワーク転送・ディスク使用効率化 – 耐障害性の考慮 • 1ノードで失敗したら違う場所でやりなおせばいいよね – MapReduceが賢くなれば、それを使う全てのプログラムが 賢くなる!
  • 14. MapReduce型の処理 • WordCount • Grep • Sort (適切なPartition関数を選択する必要) • Log Analysis • Web Graph Generation • Inverted Index Construction • Machine Learning – NaiveBayes, K-means, Expectation Maximization, etc.
  • 17. MapReduceの実行フロー Data Map Reduce Data Data Map Shuffle Reduce Data Data Map
  • 18. MapReduceの実行フロー • 入力読み込み – <key, value>* • Map – map: <key, value> ⇒ <key’, value’>* • Shuffle – shuffle: <key’, reducers> ⇒ destination reducer • Reduce – reduce: <key’, <value’> * > ⇒ <key’’, value’’>* • 出力書き出し – <key’’, value’’>*
  • 19. MapReduceの実行フロー <k, v>* ⇒ <k’, v’>* <k, v>* Data Map <k’, <v’>*>* ⇒ <k’’, v’’>* Reduce Data <k, v>* ⇒ <k’, v’>* <k, v>* Data Map Shuffle Reduce Data <k, v>* ⇒ <k’, v’>* <k, v>* <k’, <v’>*>* ⇒ <k’’, v’’>* Data Map
  • 20. 入力文書: doc1 例: ワードカウント foo foo foo bar bar buzz Data Map Reduce Data Data Map Shuffle Reduce Data Data Map
  • 21. 入力文書: doc1 例: ワードカウント foo foo foo bar bar buz Data Map doc1: foo doc1: foo Reduce Data Data Map Shuffle doc1: foo doc1: bar Reduce Data Data Map doc1: bar doc1: buz
  • 22. 入力文書: doc1 例: ワードカウント foo foo foo bar bar buz doc1: foo doc1: foo Data Map doc1: foo Reduce Data doc1: bar Data Map Shuffle doc1: bar Reduce Data doc1: buz Data Map
  • 23. 入力文書: doc1 例: ワードカウント foo foo foo bar bar buz doc1: foo foo: 1 doc1: foo foo: 1 Data Map doc1: foo bar: 1 Reduce Data doc1: bar foo: 1 Data Map doc1: bar bar: 1 Reduce Data doc1: buz buz: 1 Data Map
  • 24. 入力文書: doc1 例: ワードカウント foo foo foo bar bar buz foo: 1 foo: 1 Map bar: <1, 1> Data buz: <1> bar: 1 Reduce Data foo: 1 Data Map foo: <1, 1, 1> bar: 1 Reduce Data buz: 1 Data Map
  • 25. 入力文書: doc1 例: ワードカウント foo foo foo bar bar buz Map bar: <1, 1> Data buz: <1> Reduce Data Data Map foo: <1, 1, 1> Reduce Data Data Map
  • 26. 入力文書: doc1 例: ワードカウント foo foo foo bar bar buz Map bar: <1, 1> bar: 2 Data buz: <1> buz: 1 Reduce Data Data Map foo: <1, 1, 1> foo: 3 Reduce Data Data Map
  • 27. 入力文書: doc1 例: ワードカウント foo foo foo bar bar buz Map bar: 2 Data buz: 1 Reduce Data Data Map foo: 3 Reduce Data Data Map
  • 28. 例: ワードカウント • 擬似コード map(string key, string value) { foreach word in value: emit(word, 1); } reduce(string key, vector<int> values) { int result = 0; for (int i = 0; I < values.size(); i++) result += values[i]; emit(key, result); }
  • 29. MapReduceの特徴 • データ通信 – 各Map処理、Reduce処理は完全に並列に実行可能 – マシンを増やせばその分処理能力が増える • 耐故障性 – 失敗したMap, Reduce処理は他のノードで再実行される – 遅いMap, Reduce処理についても同じ • ローカリティ – データのある場所で計算を始めれば、ネットワークを使う 必要がなくなる – Moving Computation is Cheaper Than Moving Data
  • 31. Hadoopの中身 • Hadoop Distributed File System (HDFS) – GFSのクローン – MapReduceプログラムの入力や出力に使用 • Hadoop MapReduce – MapReduce処理を実現するためのサーバー,ライ ブラリ
  • 32. Hadoop Distributed File System • Master/Slave アーキテクチャ • ファイルはブロックという単位に分割して保存 • NameNode – Master – ファイルのメタデータ(パス・権限など)を管理 • DataNode – Slave – 実際のデータ(ブロックを管理)
  • 34. Hadoop MapReduce • Master/Slave アーキテクチャ • JobTracker – Master – JobをTaskに分割し、Taskを各TaskTrackerに分配 • Job: MapReduceプログラムの実行単位 • Task: MapTask, ReduceTask – 全てのTaskの進行状況を監視し、死んだり遅れたりしたTaskは 別のTaskTrackerで実行させる • TaskTracker – Slave – JobTrackerにアサインされたTaskを実行 • 実際の計算処理を行う
  • 35. MapReduce Processing JobTracker TaskTracker
  • 36. Mapフェーズ • 分割された入力を読み込み、mapプログラムを動かす • Partitioner(通常はHash)を使用して宛先を決定 • バッファサイズが閾値を越えたらメモリ上でソートして ディスクに書き出す • すべてが終わったらソートされたものをさらに外部マー ジソート Reducer1宛て (k, v) Reducer2宛て
  • 37. Reduceフェーズ • Mapフェーズの出力をフェッチ • メモリ上でキー毎にまとめあげる • Reduceプログラムを動かす • 出力をHDFSに書き出し – Amazon S3などにも書き出せる
  • 39. 概要 • Hadoopを扱いやすくするミドルウェア – Pig – Hive Pig,Hive – HBase HBase • MapReduce+RDBMS MapReduce – HadoopDB HDFS
  • 40. Pig • Pig Latinという専用言語で簡単にDWH的な処 理を書けるようにしたミドルウェア – Javaを使用せずに、SQL的な言語でMapReduce処 理を記述する事が出来る – Googleでは、同様にSawzallというスクリプト言語 で、MapReduce処理が簡単に書けるようになって いる • Yahoo!が開発 • データのロード・結合やフィルタ処理を楽に書 ける
  • 41. Hive • Pigと同じく、SQLのような言語(HiveQL)で処理 を記述することができる – Facebookが独自に開発 • Join,Group Byといった操作を、SQLであたかも 扱っているように書くことが可能 • Facebookでは、95%のMapReduceジョブが、 HiveQLプログラムになっている
  • 42. HBase • BigTableのクローン • HDFSは巨大なファイルを扱うのは苦手だが、 細かいデータを大量に扱う操作は苦手 • 細かい粒度・低レイテンシなデータアクセスを 可能にするための分散データベース – 同じ分野のソフトウェアとして、HyperTable • Telanium.Inc. 小宮山様のプレゼンに登場予定
  • 43. HadoopDB • Hadoopは、バッチ処理が得意 • OLAP的な処理はRDBMSが得意 • 2つをくっつけて、大量データ・非構造的なデ ータをHadoopで処理し、対話的なBI処理は RDBMSに任せる
  • 46. まとめ • Hadoopの概要 • MapReduceプログラミングモデル • Hadoopの中身・アーキテクチャ • Hadoopを取り巻く環境