g-tech2015 hadoop/sparkを中核としたビッグデータ基盤_20151006
TRANSCRIPT
1© Cloudera, Inc. All rights reserved.
G-Tech 2015Hadoop/Spark を中核としたビッグデータ基盤エンジニアが知っておくべき最新動向2015/10/16 Cloudera 株式会社 川崎 達夫
2© Cloudera, Inc. All rights reserved.
自己紹介• テクニカルディレクター /
トレーニングマネージャー 兼 シニアインストラクター• email: [email protected]• twitter: @kernel023
3© Cloudera, Inc. All rights reserved.
現代の世界ではますます計測されるように
なっている
4© Cloudera, Inc. All rights reserved.
データはどこにでもある
5© Cloudera, Inc. All rights reserved.
データは私達の働き方を変える
測定できるものは測定されるようになる
従業員と顧客はより個別の関係を期待するようになる一方、プライバシーの保護を願う
最も革新的な企業は実験と迅速性を重視する
インストゥルメンテーション
コンシューマライゼーション
エクスペリメンテーション
6© Cloudera, Inc. All rights reserved.
ビッグデータ
ビガーデータ
7© Cloudera, Inc. All rights reserved.
データはムーアの法則よりも早く成長する
8© Cloudera, Inc. All rights reserved.
後がない従来のアーキテクチャーデータをコモディティとして扱えない専用システムに莫大な投資
データソース
データシステム
データアクセス 業務分析
カスタムアプリケーショ
ン
既存データ
データベース
定型業務アプリケーショ
ン
新規データ
得られる知見は限定的
データに奮闘するパワーユーザー。
多くのユーザーには何のデータも与えられない。
コンプライアンスとプライバシー
大量なデータと多数のユーザー、乱立したツールが複雑さを増長。
セキュリティやガバナンスとビジネスアジリティのバランスを取る必要。
限定的なデータ
新しいデータソースには対処するも、既存テータの保守は非効率的。
既存システムのデータを分析用に変換するために膨大な時間を要する。
9© Cloudera, Inc. All rights reserved.
データを扱うエンジニアに
必要なスキルとは?
10© Cloudera, Inc. All rights reserved.
Apache Hadoop• スケーラブルなオープンソースの分散システム
11© Cloudera, Inc. All rights reserved.
Apache Hadoop™
• Google が公開した論文を参考に開発された大量データのためのオープンソースソフトウェア
Doug CuttingChief Architect @Cloudera
「 Hadoop の生みの親」
Cloudera World Tokyo 2015
11 月 10 日来日予定!
http://clouderaworld.tokyo
12© Cloudera, Inc. All rights reserved.
Hadoop のアーキテクチャ
HDFS MapReduce
13© Cloudera, Inc. All rights reserved.
HDFS :分散ファイルシステム
• データファイルはロード時に 128MB のブロックに分割されて分散される• 各ブロックは複数のデータノードに複製される(デフォルトは 3 カ所) Name
NodeBlock 1
Block 2
Block 3
Block 1Block 3
Block 2Block 3
Block 1Block 3
Block 1Block 2
Block 2
メタデータ :ファイルとブロックについての情報
非常に大きなデータファイ
ル
Block 4
Block 4
Block 4
Block 4
14© Cloudera, Inc. All rights reserved.
MapReduceの主な利点:
• データの局所性: 自動的に計算処理を分けてMapperを適切に開始
• フォールトトレランス : 中間結果を書き出してMapperが再実行できることが、コモディティハードウェアで実行できる機能を意味している
• 線形なスケーラビリティ :問題に対して一般的に拡張できる解決を記述するために、開発者に局所性とプログラミングモデルの組み合わせ強要する
MapReduce :分散処理
Map
Map
Map
Map
Map
Map
Map
Map
Map
Map
Map
Map
Reduce Reduce Reduce Reduc
e
15© Cloudera, Inc. All rights reserved.
現在 : Hadoop を中心とした巨大なエコシステム Director
Provision
Automate
Elastic
API
NavigatorSecure
Policy
Lineage
API
ManagerDeploy
Configure
Report
Recover
Manage
Monitor
Diagnose
Integrate
CDH (Cloudera Distribution for Apache Hadoop)Spark
Hue
Flume
Sentry
MLlib
Hive
Kafka
Map Reduce
Impala
Sqoop
Oozie
Zookeeper
Solr
Pig
Llama
YARN
Kudu
Crunch
AvroRecord Service
HBase
Kite
Parquet
HDFS
Training
Partners
Services
Enterprise
AvailabilityGABetaFlex
16© Cloudera, Inc. All rights reserved.
(余談) Hadoop活用の落とし穴
•Hadoop を安定して継続運用するためのヒント•「エンタープライズデータハブ活用の落とし穴」
http://www.slideshare.net/Cloudera_jp/2015-0827
17© Cloudera, Inc. All rights reserved.
Hadoop/Spark の最新動向
18© Cloudera, Inc. All rights reserved.
(再)初期の Hadoop のアーキテクチャ
HDFS MapReduce
19© Cloudera, Inc. All rights reserved.
バッチからリアルタイムへ
20© Cloudera, Inc. All rights reserved.
Streaming 、 NRT 処理との組み合わせ
http://blog.cloudera.com/blog/2015/07/designing-fraud-detection-architecture-that-works-like-your-brain-does/
21© Cloudera, Inc. All rights reserved.
Streaming 、 NRT 処理との組み合わせ
22© Cloudera, Inc. All rights reserved.
Apache Spark
23© Cloudera, Inc. All rights reserved.
Apache SparkHadoop のための柔軟性のあるインメモリデータ処理
容易なデプロイメント
柔軟、拡張性のある API
高速なバッチとストリーミング処理
• Scala 、 Java 、 Python によるリッチなAPI
• 対話的なシェル
• 異なる種類のワークロードのための API:• バッチ• ストリーミング• 機械学習• グラフ
• インメモリ処理とキャッシュ
24© Cloudera, Inc. All rights reserved.
容易な開発高い生産性を持つ言語をサポート
• 同一の API で複数の言語をネイティブにサポート• Scala, Java, Python
• コードを最小化するために、クロージャ、繰り返し、その他の言語の概念を使用• MapReduce と比較して2-5倍コードを削減
Pythonlines = sc.textFile(...)lines.filter(lambda s: “ERROR” in s).count()
Scalaval lines = sc.textFile(...)lines.filter(s => s.contains(“ERROR”)).count()
JavaJavaRDD<String> lines = sc.textFile(...);lines.filter(new Function<String, Boolean>() { Boolean call(String s) { return s.contains(“error”); }}).count();
25© Cloudera, Inc. All rights reserved.
容易な開発対話的に使用できる
• データサイエンティストのためのインタラクティブなデータ探索• 「アプリケーション」を
開発する必要がない
• 開発者は実際のシステムでアプリケーションのプロトタイピングができる
percolateur:spark srowen$ ./bin/spark-shell --master local[*]...Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ version 1.5.0-SNAPSHOT /_/
Using Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_51)Type in expressions to have them evaluated.Type :help for more information....
scala> val words = sc.textFile("file:/usr/share/dict/words")...words: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[1] at textFile at <console>:21
scala> words.count...res0: Long = 235886
scala>
26© Cloudera, Inc. All rights reserved.
優れたパフォーマンスのためのメモリ管理
トレンド :• 18ヶ月ごとに価格が半分になる• 3年ごとに帯域が倍になる
64-128GB RAM
16 cores
50 GB per second
メモリは高性能なビッグデータアプリケーションを可能にする
27© Cloudera, Inc. All rights reserved.
Spark はメモリの利点を活かす
耐障害性分散データセット:Resilient Distributed Datasets (RDD)• 分散されたフォールトトレランスなキャッシュにデータを保存するメモリキャッシング層• データセットがメモリ領域より大きい場合はディスクに戻すことができる
•安定したストレージにあるデータに対する並列変換処理によって生成• 「リネージ」のコンセプトを通してフォールトトレランスを提供
28© Cloudera, Inc. All rights reserved.
高速な処理メモリ、グラフ演算を使用する
インメモリキャッシュ• データのパーティションは
ディスクの代わりにメモリから読み込む
グラフ演算• スケジューリングの最適化• フォールトトレランス
join
filter
groupBy
B: B:
C: D: E:
F:
Ç√Ω
map
A:
map
take
= cached partition= RDD
29© Cloudera, Inc. All rights reserved.
ロジスティック回帰のパフォーマンス ( データがメモリに乗っている )
1 5 10 20 300
5001000150020002500300035004000
MapReduceSpark
繰り返し回数
実行
時間
(秒) 110秒 /繰り返
し
最初の繰り返し =80秒以降の繰り返しはキャッシュにより 1秒
30© Cloudera, Inc. All rights reserved.
Hadoop での将来のデータ処理特別な目的のエンジンにより Spark を補完する
Spark による汎用データ処理高速バッチ処理
機械学習ストリーム処理
Impala による分析データベース低レイテンシ・超平行クエリ
Solr によるテキスト検索テキストデータに対するクエリ
MapReduce によるディスクでのデータ処理ディスク IO に強く依存したジョブの大規模スケールでの実行
共有 :• データスト
レージ• メタデータ• リソース管理• 運用監視• セキュリティ• ガバナンス
31© Cloudera, Inc. All rights reserved.
Spark StreamingSpark Streaming とは ?• Spark のコア API を用いてデータの「連続した」処理を実行
• Spark のコンセプトをフォールトトレラントで変換可能なストリームに拡張
• 「ローリングウィンドウ」操作を追加• 例 : 直近 5 分間のデータをローリング
しながら平均やカウントを計算
利点• 両方のコンテキストの知見とコードを再利
用• ストリーミングとバッチに対し同じプロ
グラミングのパラダイムを適用• 容易な開発
• 自動的な DAG の生成と高レベルな API• 優れたスループット
• 簡単にスケールするので大量のデータ取込みに対応可能
• MLlib と Oryx のような要素をストリーミングアプリケーションに組み合わせることができる
一般的なユースケース• データが Hadoop/HDFS に取り込まれた
ときの「オンザフライ」の ETL• 異常な振る舞いの検知と警告をトリガ• 入ってくるデータのメトリクスの概要を連続してレポート
32© Cloudera, Inc. All rights reserved.
Spark Streaming のアーキテクチャ
データソース
高厳密
アー
カイ
ブ
取込み
取込みレイヤ
• Flume• Kafka
Spark Stream 処理
データ準備
集約 /スコアリング
変換
結果
アプリケーション
通知
HDFSSpark 長期間分析 /
モデル構築
HBaseリアルタイム
結果提供
リア
ルタ
イム
提供
33© Cloudera, Inc. All rights reserved.
SparkSQL機械学習アプリケーション
•目標• Spark/Java の開発者とデータサイエンティストが Spark アプリにインラインで SQL を記述できる
•設計目的• Spark 開発者のための開発支援• Spark ジョブはそれほど平行実行されない
• 強み• SQL を Java や Scala アプリケー
ションに容易に組み込み可能になる
• 開発フローの一般的な機能のための SQL (例 . 集約、フィルタ、サンプリング )
34© Cloudera, Inc. All rights reserved.
Impala は未だにインタラクティブな SQL のためのツールの選択肢
Impala Spark SQL Presto Hive-on-Tez0
50100150200250300350
Single User vs 10 User Response Time/Impala Times Faster
(Lower bars = better)
Tim
e (in
seco
nds)
Sing
le U
ser,
5
10 U
sers
, 11
Sing
le U
ser,
25
10 U
sers
, 120
10 U
sers
, 302
10 U
sers
, 202
Sing
le U
ser,
37
Sing
le U
ser,
77
5.0x
10.6x
7.4x
27.4x
15.4x
18.3x
35© Cloudera, Inc. All rights reserved.
Spark エコシステムと Hadoop
Spark Streaming MLlib SparkSQL GraphX Data-
frames SparkR
ストレージHDFS, HBase
リソース管理YARN
Spark Impala MR OthersSearch
36© Cloudera, Inc. All rights reserved.
Cloudera は Spark の変化を導く
2013 2014 2015 2016
Spark の初期の可能性を認識
CDH4.4 にSpark を同梱してサポート
Spark on YARN連携を追加
Spark を標準実行エンジンにすることへの方向性を発表
最初の Sparkトレーニングを開始
セキュリティ連携を追加
Cloudera のエンジニアがオライリーのSpark 書籍を執筆
より良いパフォーマンス、ユーザビリティ、エンタープライズレディのための努力を継続していく
42© Cloudera, Inc. All rights reserved.
Apache Kafka
43© Cloudera, Inc. All rights reserved.
Apache Kafka
2009 2014
44© Cloudera, Inc. All rights reserved.
Kafka の導入で単純化
2014 2015+?
45© Cloudera, Inc. All rights reserved.
ユーザーインタフェース
46© Cloudera, Inc. All rights reserved.
Hue : Hadoop 用の標準 GUI
47© Cloudera, Inc. All rights reserved.
Cloudera Manager: 運用管理ツール
管理クラスタの構築、設定、最適化が簡単1監視全てのアクティビティに対する集権的なビュー
2診断簡単に問題を特定し解決する3統合既存のツールを使う4
48© Cloudera, Inc. All rights reserved.
Security
49© Cloudera, Inc. All rights reserved.
認証
システム、データ、関連システムに対する
アクセス管理
LDAPKerberos RPC
監査すべての処理に対する改ざん不能な記録を取得
Cloudera NavigatorSIEM Tools
認可誰がどのリソースやサービスにアクセス
できるかを制御
POSIX PermissionsApache Sentry
保護保存データや実行データに対する、暗号化とキー管理
Cloudera Navigator:Encrypt & Key Trustee
エンタープライズ・グレードのセキュリティあらゆる保存データと実行データに対するアクセスと管理を統制
ビッグデータの根幹を支えるCloudera Enterprise ネイティブな機能
• Cloudera Manager および Navigator が Hadoop や関連する製品のプロテクションを自動化
• 境界ベースのセキュリティ
• ロールベースのアクセスコントロール
• センシティブなデータに対してポリシーベースの管理が唯一可能
• データ系統とディスカバリー
50© Cloudera, Inc. All rights reserved.
市場リスク
Basel III: 市場ストレス、ボラリティティ、金利変化に
対応できる自己資本規制
Apache SparkImpala
電子記録WORM: 削除や変更する
ことなくすべてのレコードを保全
Apache HBaseCloudera Search
取引報告
OATS: すべての注文、見積、取引に関する取引記録報告
MapReduce, Spark,HBase, Impala
データセキュリティ
PCI DSS: クレジットカード所有者の個人情報や
取引情報を保護
Cloudera Navigator:Encrypt & Key Trustee
完全な規制対応データに忠実な集中管理とレポーティング
エンタープライズハブが、リスク管理、不正検知、データの保全、取引に対するセキュリティコンプライアンスを可能に
• ETL 、リンケージ、分析機能、レポーティング機能、ストレージの統合
• セキュリティのための特定システムに必要なコストを相殺
• 必要なデータを集中させ、利用度を向上
• スピードを向上しコンプライアンス報告の手間を軽減
51© Cloudera, Inc. All rights reserved.
ビッグデータがデータガバナンスを満たす
Cloudera NavigatorApache Hadoop 用のネイティブなエンドツーエンドのデータガバナンスソリューションにより、リスクを最小化しコンプライアンスを維持
ユニークな機能 :• 監査• 系統(リネージ)• メタデータのタグ付けと探索• ライフサイクル管理
52© Cloudera, Inc. All rights reserved.
エンタープライズ・グレードのセキュリティと規制に対応Cloudera Enterprise で PCI DSS 要件に対応
PCI 要件 詳細 Apache Sentry Kerberos Cloudera
NavigatorCloudera Manager
Cloudera CSE カスタマー
脆弱性を管理するプログラムの整備
カード会員データを保護するためにファイアウォールを導入し、最適な設定を維持すること ✔
システムパスワードと他のセキュリティ・パラメータにベンダー提供のデフォルトを使用しないこと ✔
カード会員データの保護 保存されたカード会員データを安全に保護すること ✔
公衆ネットワーク上でカード会員データを送信する場合、暗号化すること ✔
脆弱性を管理するプログラムの整備
アンチウィルス・ソフトウェアを利用し、定期的に更新すること ✔
安全性の高いシステムとアプリケーションを開発し、保守すること ✔
強固なアクセス制御手法の導入
カード会員データへのアクセスを業務上の必要範囲内に制限すること ✔
コンピュータにアクセスする利用者毎に個別の ID を割り当てること ✔
カード会員データへの物理的アクセスを制限すること ✔
定期的なネットワークの監視およびテスト
ネットワーク資源およびカード会員データに対するすべてのアクセスを追跡し、監視すること ✔
セキュリティ・システムおよび管理手順を定期的にテストすること ✔
情報セキュリティ・ポリシーの整備
情報セキュリティに関するポリシーを整備すること ✔
53© Cloudera, Inc. All rights reserved.
最新の Hadoop エコシステム
• 2015/9 開催の Strata + Hadoop World より
54© Cloudera, Inc. All rights reserved.
Kudu: Hadoop の新しいストレージオプション
StructuredFixed Column
Data
SQL + Scan Use Cases
UnstructuredData
Deep StorageScan Use Cases
StructuredFixed Column
Data
SQL + Scan Use Cases
Any Type of Column
Schemas
Gets / Puts / Micro Scans
55© Cloudera, Inc. All rights reserved.
RecordService:横断的な新セキュリティ層
56© Cloudera, Inc. All rights reserved.
トレーニング
57© Cloudera, Inc. All rights reserved.
業界をリードする Cloudera のトレーニング
#1 カリキュラム 開発者向け、管理者向け、アナリスト向け、 Spark 、データサイエンティスト向けコースなどを含む広範囲なトレーニング#1 経験 2009年から数えて 45,000人の生徒が受講し、 5,000人の Cloudera認定プロフェッショナルが誕生
#1 柔軟性 オンサイトあるいはパブリック、世界主要各都市で実施
58© Cloudera, Inc. All rights reserved.
Cloudera の Spark 関連トレーニング
• Cloudera Apache Spark 開発者向けトレーニング• Cloudera Spark & Hadoop 開発者向けトレーニング I (New)
http://cloudera.co.jp/university
66© Cloudera, Inc. All rights reserved.
まとめ
67© Cloudera, Inc. All rights reserved.
ビッグデータに関わるエンジニアが知っておくべきこと活用の前に正しい知識を習得する・Hadoop/Spark はデータに関わるエンジニアにとって必要なスキル・トレーニングは短期間で正しい知識を得るために有効
新しいエコシステムへの対応、運用の効率化、セキュリティを考慮する ・ Cloudera Manager などの管理ツールが効果的
継続的な変化への対応と事業継続性を忘れずに・システムは継続的に変化する・非汎用的なツールは将来の変化に耐えられず、負担になる・人に依存しすぎない体制
68© Cloudera, Inc. All rights reserved.
Cloudera World Tokyo 2015
http://clouderaworld.tokyo
69© Cloudera, Inc. All rights reserved.
Cloudera に入って人々を助け、世界で最も大きな問題の解決に乗り出しましょう!
日本チームでの募集職種• 営業• セールスエンジニア
We are Hiring!
70© Cloudera, Inc. All rights reserved.
Thank [email protected]