AZAREA-ClusterHadoopアプリケーションを  GUIで簡単に開発!                         2013年1月21日                       株式会社シーエーシー             ...
自己紹介   株式会社シーエーシー    ◦ 独立系SIer    ◦ 社員数 約1,300名    ◦ 信託銀行、製薬業に強い                    Copyright © 2013 CAC Corporation. All...
自己紹介   田中 等    ◦ アプリケーションアーキテクト    ◦ システム構築プロジェクトにおいて、アーキテクチャを設計し      たりフレームワークを作成したりする      Java、.NET、Flexなど          ...
自己紹介   AZAREA-Cluster    ◦ 「あざれあ くらすたー」と読みます    ◦ AZAREAソリューションファミリーの1つ    ◦ 名前の由来は省略       興味ある方はホームページを参照してください       ...
アジェンダ   経緯    - なぜ、AZAREA-Clusterを作ったのか?   方針    - どんなアプリケーションフレームワークにするのか?   機能    - AZAREA-Clusterで何ができるのか?          ...
経緯     なぜ、 AZAREA-Clusterを         作ったのか?              Copyright © 2013 CAC Corporation. All rights reserved.   6
Hadoopを使ってみよう   CACでは、以前から業務システムのバッチ処理を開発    していた    ◦ パフォーマンス面では苦労することもあった         Hadoopで解決できるのでは?                  Cop...
Hadoopを検証してみた   実際にHadoopでサンプルアプリケーションを作って検証して    みた    ◦ 売上データと店情報や営業担当情報を結合して、複数種類の集計    ◦ これはいけそう!     160            ...
どうやってアプリを開発するか?   生MapReduce    ◦ 当初、これでサンプルアプリケーションを開発    ◦ 難易度は高い                  Copyright © 2013 CAC Corporation. Al...
どうやってアプリを開発するか?   Pig、Hive    ◦ SQLライクな言語    ◦ 簡単なバッチなら簡単に書ける    ◦ 複雑なバッチは無理       SQLだけでは業務バッチを書けないのと同様                ...
AZAREA-Clusterの開発へ   自分でアプリケーションフレームワークを作っ    てしまえ!    ◦ 簡単に効率よくHadoopアプリケーションを開発で      きるように                Copyright © ...
方針どんなアプリケーションフレームワークに       するか?         Copyright © 2013 CAC Corporation. All rights reserved.   12
フレームワークの目標          Hadoopにより   分散アプリケーションの開発は簡単になった とは言え、まだまだ大多数の開発者にとっては難しい     もっともっと簡単にしたい            Copyright © 2013...
アプリケーション開発環境   (CACで一般的な)業務システム開発環境に近付ける    ◦ OSはWindows      Linuxにも対応    ◦ Java言語       (CACでは)JavaとVB.NETが主流    ◦ Ec...
機能     AZAREA-Clusterで      何ができるのか?            Copyright © 2013 CAC Corporation. All rights reserved.   15
AZAREA-Clusterの構成        アプリケーション                                                            編集  AZAREA-Cluster           ...
AZAREA-Clusterの概念   エンティティ                                             エンティ                 エンティ    ◦ データを表す             ...
エンティティ   テキストファイルとマッピングされる    ◦ TSV/CSV/正規表現(入力のみ)   項目の型    ◦   文字列/数値(int/long/BigDecimal/double)/日時    ◦   固定長配列    ◦...
エンティティクラス   エンティティを保持するためのDTOクラス   GUIまたはExcelファイルからクラスを生成する                   Copyright © 2013 CAC Corporation. All rig...
GUI編集機能   GUIによりアプリケーションを編集できる    ◦ 対象はフローの基本部分        エンティティの種類        処理の種類        入出力関係        キー    ◦ 処理の詳細部分は手でコ...
GUI編集機能   デモアプリケーション仕様           売上                          顧客        ・商品コード                       ・顧客ID (PK)        ・顧客...
GUI編集機能   双方向    ◦ フロー図⇨ソース だけでなく    ◦ フロー図⇦ソース も可能        Javaソースを解析し、フロー図を生成している           実現にはEclipseのASTParserを利用  ...
GUI編集機能   手でコーディングした部分も失われない    ◦ フロー情報とは別に解析される    ◦ GUIでフローを編集しても保持される           ×         解析情報               表示     フロ...
GUI編集機能   アンドゥ・リドゥ    ◦ GUI編集画面上でアンドゥ・リドゥ可能    ◦ ソース生成後、テキストエディタ上でアンドゥ可能                  Copyright © 2013 CAC Corporatio...
GUI編集機能   SVG出力    ◦ フロー図をSVGファイルとして出力可能      Webブラウザ等で表示可能    ◦ 実現にはApache Batikを利用      画面描画と同じ要領でSVGデータを作成できる       ...
GUI編集機能   GUI編集機能は「便利なオプション」    ◦ GUIを使わなくてもアプリケーションの開発・修正は可能      リファクタリングなどはその方がやり易い場合も    ◦ 元々は全て手でコーディングする前提でフレームワーク...
処理   フレームワークで数種類の処理をクラスとして提供    ◦ アプリケーションでは匿名クラスで継承して実装    フレームワーク          処理                    基底クラス       変換      結合...
処理   変換                                                             顧客 = A    ◦ あるエンティティを別のエンティティに変換                     ...
処理   結合    ◦ あるエンティティと別のエンティティを指定したキーで結合する       キーは複数指定可能       1対NやN対1の結合が可能       任意の個数のエンティティを出力可能            1対N...
処理   結合    ◦ 入力が大きい場合はReducer側で、小さい場合はMapper側で結合      する    Mapper    map   map                                  結合    Re...
処理   グループ化集計    ◦ エンティティを指定したキーでグループ化して集計する       キーは複数指定可能       集計式は手でコーディングする必要あり                  顧客 = B         顧客...
処理   グループ化集計    ◦ Mapper側のメモリ内で一次集計を行い、Reducer側で最終集計を行う        MapperからReducerへのデータ転送量が減少し、高速化する    ◦ Combinerはデフォルトでは使用...
処理   ソート                                                    顧客 = A                                                       ...
処理最適化   フローをMapReduceジョブに変換する   処理の種類、キーなどの制約、入出力関係を解析し、Mapperや    Reducerに割り当てる    ◦ 複数の処理が1つのMapperやReducerに割り当てられることも...
デバッガ対応   Eclipse上で実行・デバッグ可能    ◦ スタンドアローンJava VM上でアプリケーションを実行可能      なシミュレータを搭載                  Copyright © 2013 CAC Cor...
フローの分割   正確に言うと    ◦ 処理フローはフロークラスで定義される    ◦ アプリケーションは1つ以上のフロークラ      スから成る                                              ...
JAR作成機能   Hadoop上で実行可能なJARを作成する     $ hadoop jar WordCountFlow.jar ...                           Copyright © 2013 CAC Cor...
JAR作成機能   JAR作成機能の内容    ◦ MANIFESTファイルの作成        メインクラスを設定                                      MANIFEST           AZARE...
Oozie連携   Oozie    ◦ MapReduceジョブを実行できるワークフロースケジューラ       http://oozie.apache.org/    ◦ そのままではAZAREA-Clusterのアプリケーションを実行...
パフォーマンス    PigやHiveなどと比べて、極端に速くも遅くもないようである      ◦ 以下は、結合1つとグループ化2つから成るアプリケーションの結果    実装方式             ジョブ数   処理時間(秒)    A...
対応ディストリビューション   以下で動作確認済み    ◦ EMC Greenplum MR        2.0        2.1    ◦ Cloudera CDH        3系            3u4     ...
AZAREA-Clusterの提供形態   残念ながらオープンソースではございません    ◦ 利用条件や価格についてはご相談ください   開発ガイドや評価版をダウンロード可能です    ◦ http://www.cac.co.jp/pro...
AZAREA-Clusterの適用分野   業務システムのバッチ処理    ◦ 高速化    ◦ スケーラビリティの向上   ビッグデータ分析のためのデータ処理    ◦ データクレンジング処理    ◦ データ集計処理          ...
おわり  Hadoopをもっと簡単に!        Copyright © 2013 CAC Corporation. All rights reserved.   44
Upcoming SlideShare
Loading in …5
×

AZAREA-Cluster (Hadoop Conference Japan 2013 Winter)

1,404 views

Published on

Hadoop Conference Japan 2013 Winterでの株式会社シーエーシーによるAZAREA-Clusterに関する発表「HadoopアプリケーションをGUIで簡単に開発」です。

Published in: Technology
  • 発表時に行ったデモの画面イメージをアップロードしました。
    http://www.slideshare.net/AzareaCluster/azareacluster-hadoop-conference-japan-2013-winter-demo-image
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

AZAREA-Cluster (Hadoop Conference Japan 2013 Winter)

  1. 1. AZAREA-ClusterHadoopアプリケーションを GUIで簡単に開発! 2013年1月21日 株式会社シーエーシー 生産技術部 田中 等 Copyright © 2013 CAC Corporation. All rights reserved. 1
  2. 2. 自己紹介 株式会社シーエーシー ◦ 独立系SIer ◦ 社員数 約1,300名 ◦ 信託銀行、製薬業に強い Copyright © 2013 CAC Corporation. All rights reserved. 2
  3. 3. 自己紹介 田中 等 ◦ アプリケーションアーキテクト ◦ システム構築プロジェクトにおいて、アーキテクチャを設計し たりフレームワークを作成したりする  Java、.NET、Flexなど Copyright © 2013 CAC Corporation. All rights reserved. 3
  4. 4. 自己紹介 AZAREA-Cluster ◦ 「あざれあ くらすたー」と読みます ◦ AZAREAソリューションファミリーの1つ ◦ 名前の由来は省略  興味ある方はホームページを参照してください  http://www.cac.co.jp/product/azarea-cluster/  「azarea-cluster」でググればたどりつけます Copyright © 2013 CAC Corporation. All rights reserved. 4
  5. 5. アジェンダ 経緯 - なぜ、AZAREA-Clusterを作ったのか? 方針 - どんなアプリケーションフレームワークにするのか? 機能 - AZAREA-Clusterで何ができるのか? Copyright © 2013 CAC Corporation. All rights reserved. 5
  6. 6. 経緯 なぜ、 AZAREA-Clusterを 作ったのか? Copyright © 2013 CAC Corporation. All rights reserved. 6
  7. 7. Hadoopを使ってみよう CACでは、以前から業務システムのバッチ処理を開発 していた ◦ パフォーマンス面では苦労することもあった Hadoopで解決できるのでは? Copyright © 2013 CAC Corporation. All rights reserved. 7
  8. 8. Hadoopを検証してみた 実際にHadoopでサンプルアプリケーションを作って検証して みた ◦ 売上データと店情報や営業担当情報を結合して、複数種類の集計 ◦ これはいけそう! 160 処 120 理 時 80 間 ( 分 40 ) 0 0 8 16 24 マシン数 ◦ しかし  アプリケーション開発の難易度は高い  簡単に開発する方法は無いか? Copyright © 2013 CAC Corporation. All rights reserved. 8
  9. 9. どうやってアプリを開発するか? 生MapReduce ◦ 当初、これでサンプルアプリケーションを開発 ◦ 難易度は高い Copyright © 2013 CAC Corporation. All rights reserved. 9
  10. 10. どうやってアプリを開発するか? Pig、Hive ◦ SQLライクな言語 ◦ 簡単なバッチなら簡単に書ける ◦ 複雑なバッチは無理  SQLだけでは業務バッチを書けないのと同様 Copyright © 2013 CAC Corporation. All rights reserved. 10
  11. 11. AZAREA-Clusterの開発へ 自分でアプリケーションフレームワークを作っ てしまえ! ◦ 簡単に効率よくHadoopアプリケーションを開発で きるように Copyright © 2013 CAC Corporation. All rights reserved. 11
  12. 12. 方針どんなアプリケーションフレームワークに するか? Copyright © 2013 CAC Corporation. All rights reserved. 12
  13. 13. フレームワークの目標 Hadoopにより 分散アプリケーションの開発は簡単になった とは言え、まだまだ大多数の開発者にとっては難しい もっともっと簡単にしたい Copyright © 2013 CAC Corporation. All rights reserved. 13
  14. 14. アプリケーション開発環境 (CACで一般的な)業務システム開発環境に近付ける ◦ OSはWindows  Linuxにも対応 ◦ Java言語  (CACでは)JavaとVB.NETが主流 ◦ Eclipseで開発・デバッグ可能  コマンドラインは使わない  GUIのプラグインも用意したい 導入コスト・学習コストが下がる Copyright © 2013 CAC Corporation. All rights reserved. 14
  15. 15. 機能 AZAREA-Clusterで 何ができるのか? Copyright © 2013 CAC Corporation. All rights reserved. 15
  16. 16. AZAREA-Clusterの構成 アプリケーション 編集 AZAREA-Cluster AZAREA-Cluster フレームワーク シミュレータ プラグイン Hadoop Eclipse 【本番環境】 【開発環境】 Linux Windows/Linux Copyright © 2013 CAC Corporation. All rights reserved. 16
  17. 17. AZAREA-Clusterの概念 エンティティ エンティ エンティ ◦ データを表す ティ ティ 処理 ◦ エンティティを入力し、エンティティを出力する 処理 ア ◦ 変換、結合、グループ化集計、ソート プ リ ケ エンティ ー ティ アプリケーション シ ョ ◦ エンティティの処理フローとして表わされる ン 処理 エンティ ティ Copyright © 2013 CAC Corporation. All rights reserved. 17
  18. 18. エンティティ テキストファイルとマッピングされる ◦ TSV/CSV/正規表現(入力のみ) 項目の型 ◦ 文字列/数値(int/long/BigDecimal/double)/日時 ◦ 固定長配列 ◦ 可変長リスト ◦ 他のエンティティ #商品コード 商品名 単価  入れ子にできる C101 フライパン 2000 C201 中華鍋 3000 C202 土鍋 7000 エンティティ ... ... ... Copyright © 2013 CAC Corporation. All rights reserved. 18
  19. 19. エンティティクラス エンティティを保持するためのDTOクラス GUIまたはExcelファイルからクラスを生成する Copyright © 2013 CAC Corporation. All rights reserved. 19
  20. 20. GUI編集機能 GUIによりアプリケーションを編集できる ◦ 対象はフローの基本部分  エンティティの種類  処理の種類  入出力関係  キー ◦ 処理の詳細部分は手でコーディングする必要あり  変換仕様  集計式 Copyright © 2013 CAC Corporation. All rights reserved. 20
  21. 21. GUI編集機能 デモアプリケーション仕様 売上 顧客 ・商品コード ・顧客ID (PK) ・顧客ID ・地域 ・金額 顧客IDで結合 結合 地域でグループ化 グループ化 地域別売上 ・地域 (PK) ・件数 ・金額 Copyright © 2013 CAC Corporation. All rights reserved. 21
  22. 22. GUI編集機能 双方向 ◦ フロー図⇨ソース だけでなく ◦ フロー図⇦ソース も可能  Javaソースを解析し、フロー図を生成している  実現にはEclipseのASTParserを利用  フロー図の情報は全てJavaソース上に保存されている  入出力関係は引数で  座標情報はアノテーションで × EntityFile<SalesEntity> ... 生成 EntityFile<CustomerEntity> ... Join<SalesEntity, CustomerEntity>... protected void merge(...) { ... } 解析 }; Copyright © 2013 CAC Corporation. All rights reserved. 22
  23. 23. GUI編集機能 手でコーディングした部分も失われない ◦ フロー情報とは別に解析される ◦ GUIでフローを編集しても保持される × 解析情報 表示 フロー 解析/生成 フロー情報 Join<SalesEntity, CustomerEntity>... 編集画面 編集 protected void merge(...) { ... ... } }; その他の情報 int i = 1; Copyright © 2013 CAC Corporation. All rights reserved. 23
  24. 24. GUI編集機能 アンドゥ・リドゥ ◦ GUI編集画面上でアンドゥ・リドゥ可能 ◦ ソース生成後、テキストエディタ上でアンドゥ可能 Copyright © 2013 CAC Corporation. All rights reserved. 24
  25. 25. GUI編集機能 SVG出力 ◦ フロー図をSVGファイルとして出力可能  Webブラウザ等で表示可能 ◦ 実現にはApache Batikを利用  画面描画と同じ要領でSVGデータを作成できる Copyright © 2013 CAC Corporation. All rights reserved. 25
  26. 26. GUI編集機能 GUI編集機能は「便利なオプション」 ◦ GUIを使わなくてもアプリケーションの開発・修正は可能  リファクタリングなどはその方がやり易い場合も ◦ 元々は全て手でコーディングする前提でフレームワークを設計  ソースの構造を解析してフロー図を表示する機能を追加  更に拡張し、表示だけでなく編集もできるように アプリケーション 編集 AZAREA-Cluster AZAREA-Cluster フレームワーク プラグイン Copyright © 2013 CAC Corporation. All rights reserved. 26
  27. 27. 処理 フレームワークで数種類の処理をクラスとして提供 ◦ アプリケーションでは匿名クラスで継承して実装 フレームワーク 処理 基底クラス 変換 結合 グループ化 ソート グループ化 ソート 処理 処理 処理 処理 処理 実装 実装 実装 実装 実装 アプリケーション Copyright © 2013 CAC Corporation. All rights reserved. 27
  28. 28. 処理 変換 顧客 = A ◦ あるエンティティを別のエンティティに変換 商品 = ZZZ 売上 = 2,000 ◦ 1つの入力エンティティに対して、任意の個数 顧客 = A 商品 = XXX のエンティティを出力可能 売上 = 10,000 顧客 = B 商品 = YYY  0個でもよい 売上 = 5,000 ◦ 例) 変換  売上を10,000円未満と10,000円以上に分類 する 顧客 = A 顧客 = A 商品 = ZZZ 商品 = XXX 売上 = 2,000 売上 = 10,000 顧客 = B 商品 = YYY 売上 = 5,000 Copyright © 2013 CAC Corporation. All rights reserved. 28
  29. 29. 処理 結合 ◦ あるエンティティと別のエンティティを指定したキーで結合する  キーは複数指定可能  1対NやN対1の結合が可能  任意の個数のエンティティを出力可能  1対N結合で、1個出力することもN個出力することも可能 ◦ 例) 社員 = ○○ 部門コード = 110 部門コード = 110 部門名 = “営業部”  社員に部門を結合して部門名を付加する 売上 = 10,000 結合 社員 = ○○ 部門コード = 110 部門名 = “営業部” Copyright © 2013 CAC Corporation. All rights reserved. 29
  30. 30. 処理 結合 ◦ 入力が大きい場合はReducer側で、小さい場合はMapper側で結合 する Mapper map map 結合 Reducer 結合 結合 Copyright © 2013 CAC Corporation. All rights reserved. 30
  31. 31. 処理 グループ化集計 ◦ エンティティを指定したキーでグループ化して集計する  キーは複数指定可能  集計式は手でコーディングする必要あり 顧客 = B 顧客 = A 商品 = ZZZ  件数 商品 = XXX 売上 = 2,000 売上 = 10,000  合計値 顧客 = A  最大値 商品 = XXX 売上 = 10,000 顧客 = B  最小値 商品 = YYY  etc... 売上 = 5,000 ◦ 例) グループ化  顧客毎に売上金額を合計する 顧客 = A 顧客 = B 売上 = 12,000 売上 = 5,000 Copyright © 2013 CAC Corporation. All rights reserved. 31
  32. 32. 処理 グループ化集計 ◦ Mapper側のメモリ内で一次集計を行い、Reducer側で最終集計を行う  MapperからReducerへのデータ転送量が減少し、高速化する ◦ Combinerはデフォルトでは使用していない  オーバーヘッドがあるので、逆に遅くなる場合がある Mapper 集計 集計 集計 Reducer 集計 集計 集計 Copyright © 2013 CAC Corporation. All rights reserved. 32
  33. 33. 処理 ソート 顧客 = A 売上 = 12,000 ◦ エンティティを指定したキーでソートする 顧客 = B 売上 = 15,000  キーは複数指定可能 顧客 = C 売上 = 8,000  昇順/降順 ◦ ソートされたエンティティを順次処理する ◦ 任意の個数のエンティティを出力可能 ソート ◦ 例) 顧客 = B 売上 = 15,000  売上金額順に顧客に連番を振る 番号 = 1 顧客 = A ◦ ソートの拡張版として、グループ化とソート 売上 = 12,000 番号 = 2 を組み合わせた処理もあり 顧客 = C 売上 = 8,000 番号 = 3 Copyright © 2013 CAC Corporation. All rights reserved. 33
  34. 34. 処理最適化 フローをMapReduceジョブに変換する 処理の種類、キーなどの制約、入出力関係を解析し、Mapperや Reducerに割り当てる ◦ 複数の処理が1つのMapperやReducerに割り当てられることもある 分散の制御も行う ◦ 基本的にはキー(結合キー/グループ化キー)に応じて分散する アプリケーション※最新バージョン(0.9.1) は 変換 結合 ソート 前バージョン(0.9.0) よりも 最適化ロジックを若干改善 処理最適化 変換 結合 ソート MapReduceジョブ① MapReduceジョブ② Copyright © 2013 CAC Corporation. All rights reserved. 34
  35. 35. デバッガ対応 Eclipse上で実行・デバッグ可能 ◦ スタンドアローンJava VM上でアプリケーションを実行可能 なシミュレータを搭載 Copyright © 2013 CAC Corporation. All rights reserved. 35
  36. 36. フローの分割 正確に言うと ◦ 処理フローはフロークラスで定義される ◦ アプリケーションは1つ以上のフロークラ スから成る 処理 処理 処理フローが複雑な場合は、フローク フ ロ ラスを分割するとよい ア ー プ 処理 ◦ 最適化結果は変わらない リ ケ ー シ ョ 処理 ン フ ロ ー 処理 Copyright © 2013 CAC Corporation. All rights reserved. 36
  37. 37. JAR作成機能 Hadoop上で実行可能なJARを作成する $ hadoop jar WordCountFlow.jar ... Copyright © 2013 CAC Corporation. All rights reserved. 37
  38. 38. JAR作成機能 JAR作成機能の内容 ◦ MANIFESTファイルの作成  メインクラスを設定 MANIFEST AZAREA- xxx.class ◦ 各ファイルをJARにまとめる .MF Cluster.jar xxx.class XXX.class  MANIFESTファイル  AZAREA-ClusterのJARファイル  アプリケーションのクラスファイル  その他の参照ライブラリ 自分でbuild.xmlを書いてもそれほど難しくない App.jar が、検証時等には便利 Copyright © 2013 CAC Corporation. All rights reserved. 38
  39. 39. Oozie連携 Oozie ◦ MapReduceジョブを実行できるワークフロースケジューラ  http://oozie.apache.org/ ◦ そのままではAZAREA-Clusterのアプリケーションを実行で きないので拡張して使用する ◦ Oozieを使っている人は少なそうなので詳細は割愛 Copyright © 2013 CAC Corporation. All rights reserved. 39
  40. 40. パフォーマンス PigやHiveなどと比べて、極端に速くも遅くもないようである ◦ 以下は、結合1つとグループ化2つから成るアプリケーションの結果 実装方式 ジョブ数 処理時間(秒) AZAREA-Cluster 2 221 Pig 3 424 480 420 Hive 2 247 360 300 処 理 240 時 180 間 ( 120 秒 ) 60 0 AZAREA-Cluster Pig Hive ◦ アプリケーションの内容によって速かったり遅かったりする  一概にどちらが速いとか遅いとかは言えない Copyright © 2013 CAC Corporation. All rights reserved. 40
  41. 41. 対応ディストリビューション 以下で動作確認済み ◦ EMC Greenplum MR  2.0  2.1 ◦ Cloudera CDH  3系  3u4  3u5  4系 (MapReduce v1のみ対応)  4.1.1  4.1.2 ◦ Amazon EMR  Hadoop 1.0.3 (Amazon Distribution)  Hadoop 0.20.205 (MapR M5 Edition v1.2.8)  Hadoop 0.20.205 (MapR M3 Edition v1.2.8) Copyright © 2013 CAC Corporation. All rights reserved. 41
  42. 42. AZAREA-Clusterの提供形態 残念ながらオープンソースではございません ◦ 利用条件や価格についてはご相談ください 開発ガイドや評価版をダウンロード可能です ◦ http://www.cac.co.jp/product/azarea-cluster/download/index.html  「azarea-cluster」でググればたどりつけます  1/18に最新版(バージョン0.9.1)をリリース 問合せ先 ◦ azarea-cluster@cac.co.jp Copyright © 2013 CAC Corporation. All rights reserved. 42
  43. 43. AZAREA-Clusterの適用分野 業務システムのバッチ処理 ◦ 高速化 ◦ スケーラビリティの向上 ビッグデータ分析のためのデータ処理 ◦ データクレンジング処理 ◦ データ集計処理 Copyright © 2013 CAC Corporation. All rights reserved. 43
  44. 44. おわり Hadoopをもっと簡単に! Copyright © 2013 CAC Corporation. All rights reserved. 44

×