Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS
これからはじめるHadoop/Spark
Asakusaではじめる
Hadoop/Sparkプロ...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 2
永続的なエンジニアリングが
できる会社に
– ⼈の役に⽴つ
– 途中で投げない
– お客様に...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 3
Asakusaではじめる
Hadoop / Sparkプログラミング
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 4
⼤変申し訳ございません
本セッション
の対応⾔語
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 5
Hadoop / Spark どこから始めたらいいのか
n すぐに成果がでそうなところから
...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 6
アドホックならSQL
Impala
環境構築が⾯倒なら BigQuery / Tresure...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 7
Spark試すならZeppelin
Microsoft AzureのHDInsightは、ク...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 8
その他にも多数
https://hadoopecosystemtable.github.io/
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 9
プログララミングから始める
n ここから始めて間違いはない
– つぶしがきく
n SQLでは...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 10
Asakusa Framework
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 11
Spark
YARN
Asakusa Frameworkとは
n 基幹業務向け分散バッチ開...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 12
アンデルセン・サービス様 原材料原価計算 事例
n 原材料からの製品原価計算で4時間かかっ...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 13
よくわかりません
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 14
n Hadoop / Spark APIの知識を必要とせず
n MapReduceではなく...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 15
まずは、それぞれのサンプルから
WordCount
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 16
Hadoop プログラミング
Map
&
Reduce
・・・と設定https://had...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 17
Sparkプログラミング(Scala)
http://spark.apache.org/e...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 18
Sparkプログラミング(Java)
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 19
MapReduce
ビッグデータ界のアセンブラ
※たぶん
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 20
Asakusaプログラミング
以降のコードは https://github.com/nau...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 21
n データの流れのこと
n DFD(データフローダイアグラム)などで図⽰
される
データフ...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 22
n データモデル
AsakusaによるWordCount(1)
⾏
単語
頻度
分割
集計
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 23
n 演算⼦(変換)
AsakusaによるWordCount(2)
⾏
単語
頻度
分割
集...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 24
n フロー(制御)
AsakusaによるWordCount(3)
⾏
単語
頻度
分割
集...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 25
Asakusaはコンパイル時に
複数の演算⼦をまとめて
MapReduceに変換する。
(...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 26
n Apacheログファイルの集計
– 読み込めないレコードはエラーレコードとして別途
出...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 27
実⾏計画
この例では、2つのMR
として実⾏される。
⾃分でMRを考えなくて
いいのは、精...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 28
– MapReduceを⼿で書くのはキツイ
– Hadoopはエコシステムが充実しているの...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 29
Asakusa Frameworkのよいところ
n Hadoop / Spark 両⽅で動...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 30
Hadoop / Spark 両⽅で実⾏が可能
クラウド
分散環境
分散処理フレームワーク...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 31
n (問題にもよるが)Hadoopが速いこともある
ScalaでSpark⼀択でいいのでは...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 32
n 型チェックによる強⼒なエラー検知機能
n コンパイラによるフレームワーク固有エラー検
...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 33
n Junitによる演算⼦の単体テストが可能
テストフレームワーク 〜 演算⼦
演算⼦アノ...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 34
テストフレームワーク 〜 ジョブフロー
text.xls word_count.xls
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 35
Asakusa Frameworkを始めてみよう!
n 開発環境は、⼀括インストールツール...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 36
Asakusa Framework
n Asakusa Framework
– Apach...
Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 37
PPT中のイラストは、「いらすとや」さんからお借りしました
http://www.iras...
Prochain SlideShare
Chargement dans…5
×

Asakusaではじめるhadoop sparkプログラミング

1 049 vues

Publié le

Programming Hadoop / Spark with Asakusa Framework.
Asakusa Framework produces a module runs both Hadoop / Spark cluster. No need to learn MapReduce API!

Publié dans : Ingénierie
  • Soyez le premier à commenter

Asakusaではじめるhadoop sparkプログラミング

  1. 1. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS これからはじめるHadoop/Spark Asakusaではじめる Hadoop/Sparkプログラミング
  2. 2. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 2 永続的なエンジニアリングが できる会社に – ⼈の役に⽴つ – 途中で投げない – お客様にしっかり⻑く使ってもらう あらためて、ノーチラス・テクノロジーズは Hadoop / Sparkにも当初から現在に⾄るまで、コミットしています。
  3. 3. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 3 Asakusaではじめる Hadoop / Sparkプログラミング
  4. 4. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 4 ⼤変申し訳ございません 本セッション の対応⾔語
  5. 5. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 5 Hadoop / Spark どこから始めたらいいのか n すぐに成果がでそうなところから – まずはSQL on Hadoop / Spark – ⼤半はこれでOK n 環境で悩まないようにする – クラスタを正しくセットアップするのは⼤変 – Google / Amazon / Microsoft には、Hadoop / Sparkクラスタのマネージドサービスがある n プログラミングもいいですよ! – 最終的にやらなければならないケースが・・ – 今回のお題
  6. 6. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 6 アドホックならSQL Impala 環境構築が⾯倒なら BigQuery / TresureData / RedShift などを使うという⼿も
  7. 7. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 7 Spark試すならZeppelin Microsoft AzureのHDInsightは、クラスタの起動時に使えるようになっている
  8. 8. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 8 その他にも多数 https://hadoopecosystemtable.github.io/
  9. 9. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 9 プログララミングから始める n ここから始めて間違いはない – つぶしがきく n SQLでは書ききれないニーズ – 複雑なバッチ処理 – 前処理、後処理 n エコシステム間のつなぎに役⽴つ
  10. 10. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 10 Asakusa Framework
  11. 11. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 11 Spark YARN Asakusa Frameworkとは n 基幹業務向け分散バッチ開発フレームワーク – Asakusa Frameworkは、基幹業務システムのバッチの⾼速処理を⽬的とした、 Hadoopに対応した業界初のソフトウェア – 基幹バッチ開発に必要な、開発環境・実⾏環境・運⽤環境を⽤意 n Hadoopの開発を容易にし、更に⾼速化 n MapReduce特有のコードを、Asakusaのコンパイラが⾃動⽣成 n Asakusaのコンパイラにて、MapReduceのコードを最適化し、MapReduceの 段数を削減させて⾼速化 データモデル定義 外部システム連携 Asakusa DSL Operator DSL ⾃動テストバッチ実⾏ツール Flow DSL Batch DSL MapReduce コンパイラ DMDL DMDL コンパイラ TestDriver ThunderGat e WindGate Direct I/O YAESS EXCEL テンプレート 実⾏エンジン スモールジョブ 実⾏エンジン Apache Hadoop CDH MapR HDP Amazon EMR Hadoop1系、 2系も可 Spark コンパイラ
  12. 12. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 12 アンデルセン・サービス様 原材料原価計算 事例 n 原材料からの製品原価計算で4時間かかっていた n BOMの展開・原価の4時間バッチで、週に2回実⾏するのが限界 n 110万の原材料、3000品⽬の原価をツリー構造の積上げ計算を実施 アンデルセン様データセンタ Amazon VPC インターネット DBサーバ バイナリバイナリ ⼊⼒ファイル 結果ファイル ① データを様々なシステムから 集配信する。 ② バッチ処理の時間だけ、 Hadoopを起動し、 時間課⾦を節約 クラウド転送も、データ量が 少ないので、問題なし。 バッチをクラウド上で実⾏ VPCでセキュア ⑥ Hadoop Masterバッチサーバ バイナリバイナリ 4時間のバッチ処理が 20分で終了2 2 12 3 2 0 5 10 15 20 25 バッチ処理時間 Clusterの起動 データの転送 原価計算 データの受信 Clusterの停⽌
  13. 13. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 13 よくわかりません
  14. 14. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 14 n Hadoop / Spark APIの知識を必要とせず n MapReduceではなくデータフローで n IDEを活⽤しつつプログラムができる Asakusa Framework 要約
  15. 15. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 15 まずは、それぞれのサンプルから WordCount
  16. 16. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 16 Hadoop プログラミング Map & Reduce ・・・と設定https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop- mapreduce-client-core/MapReduceTutorial.html#Example:_WordCount_v1.0
  17. 17. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 17 Sparkプログラミング(Scala) http://spark.apache.org/examples.html
  18. 18. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 18 Sparkプログラミング(Java)
  19. 19. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 19 MapReduce ビッグデータ界のアセンブラ ※たぶん
  20. 20. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 20 Asakusaプログラミング 以降のコードは https://github.com/nautilus-sekiguchi/asakusa-wordcount-example にあります
  21. 21. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 21 n データの流れのこと n DFD(データフローダイアグラム)などで図⽰ される データフローとは Source ⼊⼒ Transform 変換 Sink 出⼒ テキスト⾏ 単語抽出 出現頻度計測 単語と頻度 STS分割によるWordCount問題のDFD
  22. 22. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 22 n データモデル AsakusaによるWordCount(1) ⾏ 単語 頻度 分割 集計
  23. 23. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 23 n 演算⼦(変換) AsakusaによるWordCount(2) ⾏ 単語 頻度 分割 集計 Text Word WordCount
  24. 24. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 24 n フロー(制御) AsakusaによるWordCount(3) ⾏ 単語 頻度 分割 集計 Text Word WordCount
  25. 25. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 25 Asakusaはコンパイル時に 複数の演算⼦をまとめて MapReduceに変換する。 (最適化) この例だと1つの MapReduceの実⾏となる 実⾏計画
  26. 26. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 26 n Apacheログファイルの集計 – 読み込めないレコードはエラーレコードとして別途 出⼒ – ステータスレコードが200のレコードは、⽇付・時 間・URL毎に件数を集計 – ステータスコードが200以外のレコードはステータス コード・URL毎に集計 少し複雑な例
  27. 27. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 27 実⾏計画 この例では、2つのMR として実⾏される。 ⾃分でMRを考えなくて いいのは、精神衛⽣上も 開発効率上も良い。
  28. 28. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 28 – MapReduceを⼿で書くのはキツイ – Hadoopはエコシステムが充実しているので、成果優 先ならまず必要ない – Spark はイイ – ScalaだけではなくPython, Rなんかも使えるらしい。 – RDDだけではなくDataFrameなんかもあるらしい。 – (英語がわかれば)教育コンテンツは⼭盛り – かっちり、⼤規模開発にはAsakusa Framework – MapReduce知らなくても書ける。やりたいことに近い DSL – 柔軟性とのトレードオフがある まとめ
  29. 29. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 29 Asakusa Frameworkのよいところ n Hadoop / Spark 両⽅で動作する n IDE/コンパイラチェックが強⼒ n 標準テストフレームワークがある
  30. 30. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 30 Hadoop / Spark 両⽅で実⾏が可能 クラウド 分散環境 分散処理フレームワーク 商⽤ディストリビューション シングルノード 並列環境 並列処理 フレームワーク &実⾏基盤 M3 クラウドサービス Amazon EMR Azure HDInsight データフロー DSL / コンパイラ インフラ ストラクチャ 並列・分散処理 ミドルウェア 開発 フレームワーク リファレンス実装 実装者は実⾏環境を意識する必要がない オンプレミス 開発中
  31. 31. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 31 n (問題にもよるが)Hadoopが速いこともある ScalaでSpark⼀択でいいのでは? 14.0 50.9 10.0 35.0 12.6 67.0 8.8 38.3 0 10 20 30 40 50 60 70 80 Medium(85GB) Large(586GB) Hadoop(5) Hadoop(10) Spark(5) Spark(10)
  32. 32. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 32 n 型チェックによる強⼒なエラー検知機能 n コンパイラによるフレームワーク固有エラー検 知機能 – フローの抜け漏れ検知など n IDEによるコードアシスト – ローカル変数はIDE任せで型を覚える必要なし IDE / コンパイラチェックが強⼒
  33. 33. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 33 n Junitによる演算⼦の単体テストが可能 テストフレームワーク 〜 演算⼦ 演算⼦アノテーションを 使うと、⾃動的にテスト ⽤のモッククラスを⽣成 してくれる。
  34. 34. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 34 テストフレームワーク 〜 ジョブフロー text.xls word_count.xls
  35. 35. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 35 Asakusa Frameworkを始めてみよう! n 開発環境は、⼀括インストールツール『Jinrikisha』を⽤意 – http://asakusafw.s3.amazonaws.com/documents/jinrikisha/ja/html/index.html Hadoopや Gradle/Eclipseを Asakusaと⼀括イ ンストール 既存の他システムとの連携 RDBMS連携、HDFS連携モジュール提供 Asteria/DataSpider/Hulft等のEAI/ETL連携 ジョブ管理ツールとの結合 JP1やSystemWalker、千⼿、A-Auto等の ジョブ管理製品との連携 Windows環境で開発・テスト・ビルド Eclipseプラグイン『Shafu』を⽤意 バッチテストランナーにてテスト時間を 短縮 Hadoop以外のエンジンも選択可能 Asakusaスモールジョブ実⾏エンジンや Sparkも、処理時間に応じて選択可能
  36. 36. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 36 Asakusa Framework n Asakusa Framework – Apache2.0ですので、どうぞご⾃由にお使いください n https://github.com/asakusafw – gitHub上に、公開しています n http://www.asakusafw.com/ – 各種技術資料も豊富な、専⽤サイトを⽤意 – 無料問合せ可能なメーリングリストを⽤意 n コミュニティ – 正直まだまだです(ブログ、Meetup、勉強会 etc) – SEO的にいまいち(”asakusa framework …” で検索) – 皆様の参加をお待ちしています!
  37. 37. Copyright © 2016 Nautilus Technologies, Inc. All rights reserved.NAUTILUS 37 PPT中のイラストは、「いらすとや」さんからお借りしました http://www.irasutoya.com/

×