SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
SC-004
膨大なデータを      多数のサーバーで
短時間で処理       分散処理             高スケーラビリティ




      Google の論文が   Yahoo や Facebook
      契機となって誕生!     で使われている
Hadoop
(今日の主役)
グラフィカルな
    ヒートマップなど                          コマンドラインと
                          管理機能
  管理・監視機能が充実                         シンプルな Web 画面
   CLI / GUI / Web UI

 MPI / SOA / その他
 任意のプログラムを              プログラミングモデル    MapReduce
      利用可能


      標準装備              ジョブスケジューラー      標準装備


Windows のファイル共有や、
    サードパーティ製の           分散ファイルシステム      HDFS
クラスターファイルシステム
分散ファイルシステムを
 自前で備えている


プログラミングモデルが
  規定されている
2012-04-24 01:02:03 W3SVC1 192.168.0.1 GET /…

my %rpm; # 結果を格納するハッシュテーブル
while(<>) {
  next unless /^d{4}/;
  my $time = substr($_,0,16);
  $rpm{$time}++;
}

my @sorted_keys = sort keys %rpm;

foreach my $k (@sorted_keys) {
  print "$k $rpm{$k}n";
}
入力データを分割して複数のプログラムに配る



2012-04-24 01:02:03 W3SVC1 192.168.0.1 GET/…   2012-04-24 01:03:05 W3SVC1 192.168.0.1 GET/…   2012-04-24 01:04:06 W3SVC1 192.168.0.1 GET/…


while(<>) {                   while(<>) {                   while(<>) {
  next unless /^d{4}/;         next unless /^d{4}/;         next unless /^d{4}/;
  my $time = substr($_,0,16);   my $time = substr($_,0,16);   my $time = substr($_,0,16);
  $rpm{$time}++;                $rpm{$time}++;                $rpm{$time}++;
}                             }                             }
                 それぞれのプログラムは与えられた                 他の仲間が何をやっているか
                                 データを淡々と処理                                        気にする必要はない
       Map
                                   my @sorted_keys = sort keys %rpm;                                         結果の断片をソートする


                     foreach my $k (@sorted_keys) {                     foreach my $k (@sorted_keys) {
    Reduce             print "$k $rpm{$k}n";                             print "$k $rpm{$k}n";
                     }                                                  }
                                        キーでソート済みであることが保証されているので、
                                              淡々と結果出力をすればよい
while(<>) {                     while(<>) {                     while(<>) {
  next unless /^d{4}/;           next unless /^d{4}/;           next unless /^d{4}/;
  my $time = substr($_,0,16);     my $time = substr($_,0,16);     my $time = substr($_,0,16);
  $rpm{$time}++;                  $rpm{$time}++;                  $rpm{$time}++;
}                               }                               }
UNIX 環境に依存している     Bash スクリプトの       Java プログラム内の
 部分を Windows 対応        cmd 移植        UNIX 依存部分を調整




                  JavaScript コンソール
 Windows 環境向けの
                                     Hive ODBC ドライバ
     新機能追加
                   Windows Azure
                  ストレージへの対応
Windows 用に移植されたスクリプト群
bin/                               bash の呼び出し部分に
        hadoop- config.cmd      Windows 判定ロジックを追加
        hadoop.cmd
        hdfs.cmd
        mapred.cmd
        start-master.cmd
        start-slave.cmd
        stop-master.cmd
        stop-slave.cmd
conf/
        hadoop-env.cmd
主要な関連プロジェクト




   Pegasus   ZooKeeper
 HDFS に対して SQL 的な言語 (Hive QL) でクエリを発行できる。
 MapReduce の複雑さを隠蔽し RDB ユーザーが直感的に
  Hadoop を活用できるようになる。



 こちらも HDFS に対する上位レイヤで、大規模なデータセットの
  探索を容易にする仕組み
 “Pig Latin” というスクリプト言語で処理を記述すると、
  Pig がそれを MapReduce ジョブに変換して実行してくれる。
Windows Server 版      Windows Azure 版      Windows Azure 版
   (オンプレミス)           その 1 - 「自前クラスター」    その 2 – “Elastic MapReduce”



                        Windows Azure の
   Windows Server に                        クラスターの詳細を意識せず
                      既存サブスクリプションに
Hadoop をインストールして                          MapReduce プログラムだけを
                       Hadoop クラスターを
 クラスターを構築する方式                               デプロイして利用する方式
                         デプロイする方式
通常の Windows Azure 管理
ポータルとは別の専用サイト
“#コマンド” で、FS Shell の
コマンドを呼び出せます。

“#lsr” は ”hadoop fs –lsr” に相当します。




“#fs.get” で HDFS 上のファイルを
ローカルコンピューターへダウンロードできます
Hive に対する操作を Web ブラウザから行えます




                クエリの結果と、実行された Map-Reduce
                ジョブに関する情報が、ここに表示されます。




ここにHQLを入力します。
options.orientation = 45;
   graph.bar(wordCounts, options);




graph.pie(wordCounts, options);
Windows 環境のアプリケーションに対して
                        Hadoop の分散ファイルシステムへのアクセスを提供



                         Action<string> processDirectory = null;
       マネージド DLL         processDirectory = (looppath) =>
(.NET 系の各種言語で利用可能)       {
                             using (HdfsFileInfoEntries entries = hdfsSystem.ListDirectory(looppath))
                             {
     ネイティブ DLL                   foreach (HdfsFileInfoEntry entry in entries.Entries)
 (UNIX系の libhdfs に相当)            {
                                      string kind
                                      = entry.Kind == HdfsFileInfoEntryKind.Directory ? “Directory” : “tFile”;
                                      Console.WriteLine(string.Format(@”{0}:”"{1}”",
                                   Modified/Accessed:”"{2:G}, {3:G}”", Owner:”"{4}”"”
                                   , kind, entry.Name, entry.LastModified, entry.LastAccessed, entry.Owner));
                                      if (entry.Kind == HdfsFileInfoEntryKind.Directory)
                                      {
                                          processDirectory(entry.Name);
                                      }
                                 }
                             }
                                                                    C# でディレクトリの一覧を取得するコード例
                         };
セカンダリネームノードで作成されるチェックポイントファイルを
          Windows Azure Storage へ転送して障害に備える機能です


プライマリ ネームノード             セカンダリ ネームノード              Windows Azure BLOB



 edits    fsimage



                          edits     fsimage


                                  マージ
   fsimage.ckpt                                        fsimage.ckpt

                    転送                        転送
                             fsimage.ckpt
インストール   Excel 用 Hive プラグイン




ポート設定
 単に移植しただけではなく、JavaScript での MapReduce ジョブ作成や、
  Windows Azure Storage との連携など様々な工夫がされています。
WDD2012_SC-004

Weitere ähnliche Inhalte

Was ist angesagt?

Programming Hive Reading #3
Programming Hive Reading #3Programming Hive Reading #3
Programming Hive Reading #3moai kids
 
カジュアルにソースコードリーディング
カジュアルにソースコードリーディングカジュアルにソースコードリーディング
カジュアルにソースコードリーディングAkihiro Okuno
 
"Programming Hive" Reading #1
"Programming Hive" Reading #1"Programming Hive" Reading #1
"Programming Hive" Reading #1moai kids
 
Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207Jun Ohtani
 
BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門Yohei Sasaki
 
2011年10月7日
2011年10月7日2011年10月7日
2011年10月7日nukaemon
 
Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104Satoshi Suzuki
 
はじめてのCouch db
はじめてのCouch dbはじめてのCouch db
はじめてのCouch dbEiji Kuroda
 
AvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregateAvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregateHiroki Ishikawa
 
Docker handson
Docker handsonDocker handson
Docker handsonkoda3
 
Kyoto Tycoon Guide in Japanese
Kyoto Tycoon Guide in JapaneseKyoto Tycoon Guide in Japanese
Kyoto Tycoon Guide in JapaneseMikio Hirabayashi
 
Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104Satoshi Suzuki
 
Cloud computing competition by Hapyrus
Cloud computing competition by HapyrusCloud computing competition by Hapyrus
Cloud computing competition by HapyrusKoichi Fujikawa
 

Was ist angesagt? (20)

Programming Hive Reading #3
Programming Hive Reading #3Programming Hive Reading #3
Programming Hive Reading #3
 
カジュアルにソースコードリーディング
カジュアルにソースコードリーディングカジュアルにソースコードリーディング
カジュアルにソースコードリーディング
 
前期講座09
前期講座09前期講座09
前期講座09
 
"Programming Hive" Reading #1
"Programming Hive" Reading #1"Programming Hive" Reading #1
"Programming Hive" Reading #1
 
test
testtest
test
 
Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207
 
BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門
 
Linux Namespace
Linux NamespaceLinux Namespace
Linux Namespace
 
Unix
UnixUnix
Unix
 
Yesod on Heroku
Yesod on HerokuYesod on Heroku
Yesod on Heroku
 
2011年10月7日
2011年10月7日2011年10月7日
2011年10月7日
 
Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104
 
はじめてのCouch db
はじめてのCouch dbはじめてのCouch db
はじめてのCouch db
 
AvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregateAvailabilityZoneとHostAggregate
AvailabilityZoneとHostAggregate
 
Docker handson
Docker handsonDocker handson
Docker handson
 
Kyoto Tycoon Guide in Japanese
Kyoto Tycoon Guide in JapaneseKyoto Tycoon Guide in Japanese
Kyoto Tycoon Guide in Japanese
 
Openresty
OpenrestyOpenresty
Openresty
 
Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104
 
Cloud computing competition by Hapyrus
Cloud computing competition by HapyrusCloud computing competition by Hapyrus
Cloud computing competition by Hapyrus
 
V6 unix in okinawa
V6 unix in okinawaV6 unix in okinawa
V6 unix in okinawa
 

Andere mochten auch

YAPC::Asia Tokyo 2013 ランチセッション
YAPC::Asia Tokyo 2013 ランチセッションYAPC::Asia Tokyo 2013 ランチセッション
YAPC::Asia Tokyo 2013 ランチセッションKuninobu SaSaki
 
Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」
Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」
Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」Kuninobu SaSaki
 
20140818 オープン白熱塾 ksasakims
20140818 オープン白熱塾 ksasakims20140818 オープン白熱塾 ksasakims
20140818 オープン白熱塾 ksasakimsKuninobu SaSaki
 
HPC Azure TOP500 2012-11
HPC Azure TOP500 2012-11HPC Azure TOP500 2012-11
HPC Azure TOP500 2012-11Kuninobu SaSaki
 
Effective Hyper-V - 久しぶりエディション
Effective Hyper-V - 久しぶりエディションEffective Hyper-V - 久しぶりエディション
Effective Hyper-V - 久しぶりエディションKuninobu SaSaki
 
Windows Azure HDInsight サービスの紹介
Windows Azure HDInsight サービスの紹介Windows Azure HDInsight サービスの紹介
Windows Azure HDInsight サービスの紹介Kuninobu SaSaki
 
もっとわかる Microsoft Azure 最新技術アップデート編 - 20150123
もっとわかる Microsoft Azure最新技術アップデート編 - 20150123もっとわかる Microsoft Azure最新技術アップデート編 - 20150123
もっとわかる Microsoft Azure 最新技術アップデート編 - 20150123Kuninobu SaSaki
 
Azureサブスクリプションの整理
Azureサブスクリプションの整理Azureサブスクリプションの整理
Azureサブスクリプションの整理Junji Yamamoto
 
20150821 Azure 仮想マシンと仮想ネットワーク
20150821 Azure 仮想マシンと仮想ネットワーク20150821 Azure 仮想マシンと仮想ネットワーク
20150821 Azure 仮想マシンと仮想ネットワークKuninobu SaSaki
 
Azure仮想マシンと仮想ネットワークの基本 2016 ComCamp Fukuoka
Azure仮想マシンと仮想ネットワークの基本 2016 ComCamp FukuokaAzure仮想マシンと仮想ネットワークの基本 2016 ComCamp Fukuoka
Azure仮想マシンと仮想ネットワークの基本 2016 ComCamp Fukuokawintechq
 
Azure仮想マシンと仮想ネットワーク
Azure仮想マシンと仮想ネットワークAzure仮想マシンと仮想ネットワーク
Azure仮想マシンと仮想ネットワークKuninobu SaSaki
 

Andere mochten auch (12)

YAPC::Asia Tokyo 2013 ランチセッション
YAPC::Asia Tokyo 2013 ランチセッションYAPC::Asia Tokyo 2013 ランチセッション
YAPC::Asia Tokyo 2013 ランチセッション
 
Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」
Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」
Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」
 
20140818 オープン白熱塾 ksasakims
20140818 オープン白熱塾 ksasakims20140818 オープン白熱塾 ksasakims
20140818 オープン白熱塾 ksasakims
 
HPC Azure TOP500 2012-11
HPC Azure TOP500 2012-11HPC Azure TOP500 2012-11
HPC Azure TOP500 2012-11
 
Effective Hyper-V - 久しぶりエディション
Effective Hyper-V - 久しぶりエディションEffective Hyper-V - 久しぶりエディション
Effective Hyper-V - 久しぶりエディション
 
Windows Azure HDInsight サービスの紹介
Windows Azure HDInsight サービスの紹介Windows Azure HDInsight サービスの紹介
Windows Azure HDInsight サービスの紹介
 
もっとわかる Microsoft Azure 最新技術アップデート編 - 20150123
もっとわかる Microsoft Azure最新技術アップデート編 - 20150123もっとわかる Microsoft Azure最新技術アップデート編 - 20150123
もっとわかる Microsoft Azure 最新技術アップデート編 - 20150123
 
Azureサブスクリプションの整理
Azureサブスクリプションの整理Azureサブスクリプションの整理
Azureサブスクリプションの整理
 
SC16 NVIDIA NEWS
SC16 NVIDIA NEWSSC16 NVIDIA NEWS
SC16 NVIDIA NEWS
 
20150821 Azure 仮想マシンと仮想ネットワーク
20150821 Azure 仮想マシンと仮想ネットワーク20150821 Azure 仮想マシンと仮想ネットワーク
20150821 Azure 仮想マシンと仮想ネットワーク
 
Azure仮想マシンと仮想ネットワークの基本 2016 ComCamp Fukuoka
Azure仮想マシンと仮想ネットワークの基本 2016 ComCamp FukuokaAzure仮想マシンと仮想ネットワークの基本 2016 ComCamp Fukuoka
Azure仮想マシンと仮想ネットワークの基本 2016 ComCamp Fukuoka
 
Azure仮想マシンと仮想ネットワーク
Azure仮想マシンと仮想ネットワークAzure仮想マシンと仮想ネットワーク
Azure仮想マシンと仮想ネットワーク
 

Ähnlich wie WDD2012_SC-004

ただいまHadoop勉強中
ただいまHadoop勉強中ただいまHadoop勉強中
ただいまHadoop勉強中Satoshi Noto
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方linzhixing
 
HDPをWindowsで動かしてみた
HDPをWindowsで動かしてみたHDPをWindowsで動かしてみた
HDPをWindowsで動かしてみたadachij2002
 
クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術Koichi Fujikawa
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...NTT DATA Technology & Innovation
 
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)Iwana Chan
 
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...NTT DATA Technology & Innovation
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもんMasahito Zembutsu
 
CouchDB JP & BigCouch
CouchDB JP & BigCouchCouchDB JP & BigCouch
CouchDB JP & BigCouchYohei Sasaki
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)Rui Hirokawa
 
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのかSecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのかHiroshi Tokumaru
 
Googleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてGoogleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてKazuki Ohta
 
PHPの今とこれから2014
PHPの今とこれから2014PHPの今とこれから2014
PHPの今とこれから2014Rui Hirokawa
 
10分で作る Node.js Auto Scale 環境 with CloudFormation
10分で作る Node.js Auto Scale 環境 with CloudFormation10分で作る Node.js Auto Scale 環境 with CloudFormation
10分で作る Node.js Auto Scale 環境 with CloudFormationKazuyuki Honda
 
Hadoopの紹介
Hadoopの紹介Hadoopの紹介
Hadoopの紹介bigt23
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックEmma Haruka Iwao
 

Ähnlich wie WDD2012_SC-004 (20)

ただいまHadoop勉強中
ただいまHadoop勉強中ただいまHadoop勉強中
ただいまHadoop勉強中
 
MapReduce入門
MapReduce入門MapReduce入門
MapReduce入門
 
Vyatta 改造入門
Vyatta 改造入門Vyatta 改造入門
Vyatta 改造入門
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
 
HDPをWindowsで動かしてみた
HDPをWindowsで動かしてみたHDPをWindowsで動かしてみた
HDPをWindowsで動かしてみた
 
Hadoop on LXC
Hadoop on LXCHadoop on LXC
Hadoop on LXC
 
クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
 
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
 
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもん
 
CouchDB JP & BigCouch
CouchDB JP & BigCouchCouchDB JP & BigCouch
CouchDB JP & BigCouch
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
 
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのかSecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
 
Googleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてGoogleの基盤クローン Hadoopについて
Googleの基盤クローン Hadoopについて
 
Hbstudy41 auto scaling
Hbstudy41 auto scalingHbstudy41 auto scaling
Hbstudy41 auto scaling
 
PHPの今とこれから2014
PHPの今とこれから2014PHPの今とこれから2014
PHPの今とこれから2014
 
10分で作る Node.js Auto Scale 環境 with CloudFormation
10分で作る Node.js Auto Scale 環境 with CloudFormation10分で作る Node.js Auto Scale 環境 with CloudFormation
10分で作る Node.js Auto Scale 環境 with CloudFormation
 
Hadoopの紹介
Hadoopの紹介Hadoopの紹介
Hadoopの紹介
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
 

Mehr von Kuninobu SaSaki

A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
A100 GPU 搭載! P4d インスタンス使いこなしのコツA100 GPU 搭載! P4d インスタンス使いこなしのコツ
A100 GPU 搭載! P4d インスタンス 使いこなしのコツKuninobu SaSaki
 
EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活Kuninobu SaSaki
 
Automatic Mixed Precision の紹介
Automatic Mixed Precision の紹介Automatic Mixed Precision の紹介
Automatic Mixed Precision の紹介Kuninobu SaSaki
 
GTC Japan 2018 NVIDIA NEWS
GTC Japan 2018 NVIDIA NEWSGTC Japan 2018 NVIDIA NEWS
GTC Japan 2018 NVIDIA NEWSKuninobu SaSaki
 
ISC17 NVIDIA NEWS 日本版
ISC17 NVIDIA NEWS 日本版ISC17 NVIDIA NEWS 日本版
ISC17 NVIDIA NEWS 日本版Kuninobu SaSaki
 
TechEd2010_T2-401_EffectiveHyper-V
TechEd2010_T2-401_EffectiveHyper-VTechEd2010_T2-401_EffectiveHyper-V
TechEd2010_T2-401_EffectiveHyper-VKuninobu SaSaki
 
TechEd2009_T1-402_EffectiveHyper-V
TechEd2009_T1-402_EffectiveHyper-VTechEd2009_T1-402_EffectiveHyper-V
TechEd2009_T1-402_EffectiveHyper-VKuninobu SaSaki
 
TechEd2008_T1-407_EffectiveHyper-V
TechEd2008_T1-407_EffectiveHyper-VTechEd2008_T1-407_EffectiveHyper-V
TechEd2008_T1-407_EffectiveHyper-VKuninobu SaSaki
 

Mehr von Kuninobu SaSaki (11)

A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
A100 GPU 搭載! P4d インスタンス使いこなしのコツA100 GPU 搭載! P4d インスタンス使いこなしのコツ
A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
 
EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活
 
Automatic Mixed Precision の紹介
Automatic Mixed Precision の紹介Automatic Mixed Precision の紹介
Automatic Mixed Precision の紹介
 
GTC 2019 NVIDIA NEWS
GTC 2019 NVIDIA NEWSGTC 2019 NVIDIA NEWS
GTC 2019 NVIDIA NEWS
 
SC18 NVIDIA NEWS
SC18 NVIDIA NEWSSC18 NVIDIA NEWS
SC18 NVIDIA NEWS
 
GTC Japan 2018 NVIDIA NEWS
GTC Japan 2018 NVIDIA NEWSGTC Japan 2018 NVIDIA NEWS
GTC Japan 2018 NVIDIA NEWS
 
ISC17 NVIDIA NEWS 日本版
ISC17 NVIDIA NEWS 日本版ISC17 NVIDIA NEWS 日本版
ISC17 NVIDIA NEWS 日本版
 
GTC17 NVIDIA News
GTC17 NVIDIA NewsGTC17 NVIDIA News
GTC17 NVIDIA News
 
TechEd2010_T2-401_EffectiveHyper-V
TechEd2010_T2-401_EffectiveHyper-VTechEd2010_T2-401_EffectiveHyper-V
TechEd2010_T2-401_EffectiveHyper-V
 
TechEd2009_T1-402_EffectiveHyper-V
TechEd2009_T1-402_EffectiveHyper-VTechEd2009_T1-402_EffectiveHyper-V
TechEd2009_T1-402_EffectiveHyper-V
 
TechEd2008_T1-407_EffectiveHyper-V
TechEd2008_T1-407_EffectiveHyper-VTechEd2008_T1-407_EffectiveHyper-V
TechEd2008_T1-407_EffectiveHyper-V
 

WDD2012_SC-004

  • 1.
  • 3.
  • 4.
  • 5.
  • 6. 膨大なデータを 多数のサーバーで 短時間で処理 分散処理 高スケーラビリティ Google の論文が Yahoo や Facebook 契機となって誕生! で使われている
  • 8. グラフィカルな ヒートマップなど コマンドラインと 管理機能 管理・監視機能が充実 シンプルな Web 画面 CLI / GUI / Web UI MPI / SOA / その他 任意のプログラムを プログラミングモデル MapReduce 利用可能 標準装備 ジョブスケジューラー 標準装備 Windows のファイル共有や、 サードパーティ製の 分散ファイルシステム HDFS クラスターファイルシステム
  • 10. 2012-04-24 01:02:03 W3SVC1 192.168.0.1 GET /… my %rpm; # 結果を格納するハッシュテーブル while(<>) { next unless /^d{4}/; my $time = substr($_,0,16); $rpm{$time}++; } my @sorted_keys = sort keys %rpm; foreach my $k (@sorted_keys) { print "$k $rpm{$k}n"; }
  • 11. 入力データを分割して複数のプログラムに配る 2012-04-24 01:02:03 W3SVC1 192.168.0.1 GET/… 2012-04-24 01:03:05 W3SVC1 192.168.0.1 GET/… 2012-04-24 01:04:06 W3SVC1 192.168.0.1 GET/… while(<>) { while(<>) { while(<>) { next unless /^d{4}/; next unless /^d{4}/; next unless /^d{4}/; my $time = substr($_,0,16); my $time = substr($_,0,16); my $time = substr($_,0,16); $rpm{$time}++; $rpm{$time}++; $rpm{$time}++; } } } それぞれのプログラムは与えられた 他の仲間が何をやっているか データを淡々と処理 気にする必要はない Map my @sorted_keys = sort keys %rpm; 結果の断片をソートする foreach my $k (@sorted_keys) { foreach my $k (@sorted_keys) { Reduce print "$k $rpm{$k}n"; print "$k $rpm{$k}n"; } } キーでソート済みであることが保証されているので、 淡々と結果出力をすればよい
  • 12. while(<>) { while(<>) { while(<>) { next unless /^d{4}/; next unless /^d{4}/; next unless /^d{4}/; my $time = substr($_,0,16); my $time = substr($_,0,16); my $time = substr($_,0,16); $rpm{$time}++; $rpm{$time}++; $rpm{$time}++; } } }
  • 13.
  • 14.
  • 15.
  • 16. UNIX 環境に依存している Bash スクリプトの Java プログラム内の 部分を Windows 対応 cmd 移植 UNIX 依存部分を調整 JavaScript コンソール Windows 環境向けの Hive ODBC ドライバ 新機能追加 Windows Azure ストレージへの対応
  • 17. Windows 用に移植されたスクリプト群 bin/ bash の呼び出し部分に hadoop- config.cmd Windows 判定ロジックを追加 hadoop.cmd hdfs.cmd mapred.cmd start-master.cmd start-slave.cmd stop-master.cmd stop-slave.cmd conf/ hadoop-env.cmd
  • 19.  HDFS に対して SQL 的な言語 (Hive QL) でクエリを発行できる。  MapReduce の複雑さを隠蔽し RDB ユーザーが直感的に Hadoop を活用できるようになる。  こちらも HDFS に対する上位レイヤで、大規模なデータセットの 探索を容易にする仕組み  “Pig Latin” というスクリプト言語で処理を記述すると、 Pig がそれを MapReduce ジョブに変換して実行してくれる。
  • 20. Windows Server 版 Windows Azure 版 Windows Azure 版 (オンプレミス) その 1 - 「自前クラスター」 その 2 – “Elastic MapReduce” Windows Azure の Windows Server に クラスターの詳細を意識せず 既存サブスクリプションに Hadoop をインストールして MapReduce プログラムだけを Hadoop クラスターを クラスターを構築する方式 デプロイして利用する方式 デプロイする方式
  • 21. 通常の Windows Azure 管理 ポータルとは別の専用サイト
  • 22. “#コマンド” で、FS Shell の コマンドを呼び出せます。 “#lsr” は ”hadoop fs –lsr” に相当します。 “#fs.get” で HDFS 上のファイルを ローカルコンピューターへダウンロードできます
  • 23. Hive に対する操作を Web ブラウザから行えます クエリの結果と、実行された Map-Reduce ジョブに関する情報が、ここに表示されます。 ここにHQLを入力します。
  • 24. options.orientation = 45; graph.bar(wordCounts, options); graph.pie(wordCounts, options);
  • 25. Windows 環境のアプリケーションに対して Hadoop の分散ファイルシステムへのアクセスを提供 Action<string> processDirectory = null; マネージド DLL processDirectory = (looppath) => (.NET 系の各種言語で利用可能) { using (HdfsFileInfoEntries entries = hdfsSystem.ListDirectory(looppath)) { ネイティブ DLL foreach (HdfsFileInfoEntry entry in entries.Entries) (UNIX系の libhdfs に相当) { string kind = entry.Kind == HdfsFileInfoEntryKind.Directory ? “Directory” : “tFile”; Console.WriteLine(string.Format(@”{0}:”"{1}”", Modified/Accessed:”"{2:G}, {3:G}”", Owner:”"{4}”"” , kind, entry.Name, entry.LastModified, entry.LastAccessed, entry.Owner)); if (entry.Kind == HdfsFileInfoEntryKind.Directory) { processDirectory(entry.Name); } } } C# でディレクトリの一覧を取得するコード例 };
  • 26. セカンダリネームノードで作成されるチェックポイントファイルを Windows Azure Storage へ転送して障害に備える機能です プライマリ ネームノード セカンダリ ネームノード Windows Azure BLOB edits fsimage edits fsimage マージ fsimage.ckpt fsimage.ckpt 転送 転送 fsimage.ckpt
  • 27. インストール Excel 用 Hive プラグイン ポート設定
  • 28.  単に移植しただけではなく、JavaScript での MapReduce ジョブ作成や、 Windows Azure Storage との連携など様々な工夫がされています。