More Related Content Similar to Cloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadeda (20) More from Cloudera Japan (16) Cloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadeda1. 1© Cloudera, Inc. All rights reserved.
Cloudera Data Science
WorkbenchとPySparkで
好きなPythonライブラリを
分散で使う
Michiaki Ariga, Field Data Scientist
2017/06/27 @Data Engineering and Data
Analysis Workshop #1
2. 2© Cloudera, Inc. All rights reserved.
⾃⼰紹介
• 有賀 康顕 (Twitter/GitHub @chezou)
• Field Data Scientist @Cloudera
• 過去の経歴
• 製造系メーカーでNLP/⾳声対話/機械学習の研究開発
• クックパッドでRailsアプリケーションの傍らレコメンドシステムの開発
• 技術書典2で機械学習の⼊⾨本を頒布
• Rubyコミュニティkawasaki.rbも主催
• rubyist.clubというPodcastもやってます
5. 5© Cloudera, Inc. All rights reserved.
https://medium.com/towards-data-science/data-engineer-vs-data-scientist-vs-business-analyst-b68d201364bc#.s6w0i8716
を元に作成
コンピュータ
サイエンス
ドメイン知識統計学
データエンジニア ビジネスアナリスト
データサイエンティスト
6. 6© Cloudera, Inc. All rights reserved.
オープンデータサイエンスの台頭
統計計算とグラフィックのため
の、プログラミング⾔語とソフ
トウェア環境
最も普及している領域: アカデ
ミアと統計コミュニティ
汎⽤の⾼次プログラミング⾔語
最も普及している領域:機械学
習とデータエンジニアリングコ
ミュニティ
強い静的型付けシステムを持つ、
汎⽤の関数プログラミング⾔語
最も普及している領域: Spark
を中⼼としたデータエンジニア
リングコミュニティ
何千ものオープンソースの機械学習、統計、ビジュアライゼーションライブラリが存在
7. 7© Cloudera, Inc. All rights reserved.
オープンデータサイエンスを⽀えるオープンな論⽂
https://medium.com/@karpathy/a-peek-at-trends-in-machine-
learning-ab8a1085a106 より引⽤
機械学習関連の論⽂は
4年で4倍以上に
9. 9© Cloudera, Inc. All rights reserved.
Apache Spark
⾼速で柔軟な汎⽤データ処理フレームワーク
データ
エンジニアリング
ストリーム処理
データサイエンス
& 機械学習
統⼀されたAPIと⼤規模データのための処理エンジン
10. 10© Cloudera, Inc. All rights reserved.
Clouderaが提供するSpark
がClouderaのSparkを
̶以下を圧倒̶
半数以上
がHadoopの他のコンポーネントと
共にSparkを利⽤Clouderaを選択する最⼤の理由 = サポート、
トレーニング、そしてサービス
57%が⾃社の最も重要なユースケースに向けCloudera Sparkを使⽤。
これに対し他社は、Hortonworks(26%)、Apache ダウンロード(22%)、
Databricks (7%)という状況
回答者の48%が、最も⼀般的な利⽤形態としてSparkとHbaseとの併⽤を、
41%がSparkとKafkaの併⽤を表明
11. 11© Cloudera, Inc. All rights reserved.
Sparkのユースケース
3 out of 8 are employing Spark in data science research
Sparkの上位ユースケース
がデータサイエンス⽤途でSparkを活⽤
バッチ処理 (ETL)
ストリーム処理
データサイエンス
機械学習
Sparkの上位ユースケースには、バッチ処理(55%)、ストリーム処理
(44%)、データサイエンス(33%)、機械学習(33%)が存在
8⼈中3⼈がSparkをデータサイエンス
調査の⽤途で活⽤
12. 12© Cloudera, Inc. All rights reserved.
チーム データサイエンティストとアナリスト
ゴール データの理解、モデルの開発と改善、知⾒の共有
データ 新規のデータ、かつ頻繁に変更される。⼤抵の場
合サンプリングしたデータが⽤いられる
環境 ローカルマシンかサンドボックスクラスタ
ツール R、Python、SAS/SPSS、SQL、ノートブック、
データラングリング・ディスカバリツール
最終アウトプット レポート、ダッシュボード、PDF、Excel、Word、
PowerPoint
エンタープライズデータサイエンスにおける2つのステージ
探索
(新しい機会の捜索と定量化)
運⽤
(本番システムへのデプロイ)
チーム データエンジニア、開発者、SRE
ゴール アプリケーションのビルドとメンテナンス、改善
データ 既知のデータ、全データ
環境 本番クラスタ
ツール Java/Scala、C++、IDE、CI、ソース管理など
最終アウトプット オンライン・本番アプリケーション
13. 13© Cloudera, Inc. All rights reserved.
運⽤ツール: バージョン管理、スケジューラ、ワークフロー開発ツール: IDE/ノートブック、Python、R、
Scala
典型的なデータサイエンスワークフロー
取得
処理
ガバナンス
データを使った
実験
可視化と
分析
モデル訓練と
テスト
本番データ
パイプライン
バッチ
スコアリング
データ
サービング
オンライン
スコアリング
データエンジニアリング データサイエンス(探索) 本番環境 (運⽤)
14. 14© Cloudera, Inc. All rights reserved.
エンタープライズでのオープンデータサイエンス
データサイエンティスト
探索、実験、イテレーション
インフラエンジニア
事業の加速とコンプライアンスの両⽴
15. 15© Cloudera, Inc. All rights reserved.
それぞれの課題
データサイエンティスト
探索、実験、イテレーション
インフラエンジニア
事業の加速とコンプライアンスの両⽴
Hadoop上で好きなツールが使えない
基盤チームが標準提供するツールは使いたくない
結局⾃分のノートPC上に⼩さいデータをダウンロードし
ないといけない
データサイエンスチームの雑多な要望への
対応が⾟い
セキュリティを保つのが⼤変になる
コンプライアンスを維持しながら本番適⽤するのが⾟い
限定されたモデル
クラウド上の⾃由な環境のメンテナンス負荷
個別に⾼価でハイスペックな環境を購⼊しないといけない
出処不明のデータ
開発/本番環境での実⾏環境のバージョンの差異
⾼価でセキュアでない、サイロ化されたシステム
16. 16© Cloudera, Inc. All rights reserved.
Clouderaのゴール
より多くの
データサイエンティストに
Hadoopの⼒を使ってほしい
Hadoopのデータと計算能⼒に直接
アクセスして、使い慣れたツール
をパワフルに活⽤する
データサイエンティスト
データエンジニア
簡単かつセキュアに
新しいユーザやユースケースを
追加してほしい
セキュアなセルフサービスの分析
ツールを提供し、普及していて⼿
頃な価格の基盤上でより素早く本
番投⼊する
エンタープライズアーキテクト
Hadoop管理者
18. 18© Cloudera, Inc. All rights reserved.
Cloudera Data Science Workbench 5つの価値
1つのプラットフォームで複数⾔語(Python, R, Scala)が使える
マルチテナント⽬的に利⽤可能な、リソース分離されたセッション
セキュアなクラスタとの連携が簡単にできる
コードや成果物を共有・再利⽤可能
データサイエンスのワークフローの⾃動化とジョブスケジューリング
19. 19© Cloudera, Inc. All rights reserved.
Cloudera Data Science Workbench(CDSW)によって
エンタープライズのためのセルフサービスデータサイエンス基盤
データサイエンティストは
⾃由を得ることが出来る
インフラエンジニアは
ガバナンスを確保できる
20. 20© Cloudera, Inc. All rights reserved.
データサイエンティストは
• R/Python/Scalaをブラウザから環境構
築なしにすぐに使える
• 好みのライブラリやフレームワーク
をプロジェクトごとに独⽴した環境
にインストール可能
• SparkとImpalaを使いセキュアなク
ラスタのデータを直接触れる
• 知⾒をチームに再利⽤・共同開発可
能な形で共有できる
• データパイプラインの⾃動化と監視
を組み込みのジョブスケジューラで
可能
インフラエンジニアは
• データサイエンティスト⾃⾝が好き
な分析環境を作れる⾃由を与えられ
る
• 複雑な設定なしにKerberosと連携が
でき、セキュリティの確保も容易
• オンプレミスでもクラウドでもどこ
でもデータのある場所で使える
CDSWを使えば…
21. 21© Cloudera, Inc. All rights reserved.
データサイエンスの問題はフルスタック
課題 ソリューション
無制限のデータのサポート Hadoop
アナリストのためのツールの提供 Impala / Hive / Hue
データサイエンティストとデータエンジニアのためのツールの提
供
Spark / Data Science Workbench
リアルタイム処理 Kafka / Spark Streaming
データガバナンスの提供 Cloudera Navigator + パートナー製品
フルスタックのセキュリティ Kerberos / Sentry / Record Service / Navigator Encrypt
クラウド上でのデプロイ Cloudera Director
インフラチームによるシステムの構築・管理 Cloudera Manager + Cloudera Director
22. 22© Cloudera, Inc. All rights reserved.
アーキテクチャ概要
CDSWを稼働させる分散ゲートウェイノードが、Hadoop / Spark 2 に接続している
CDH
Gateway
CDH
Node
CDH
Node
CDH
Node
Cloudera Manager
CDSW
Worker Node
Spark, Impala,
Hive, HDFS, …
CDH
Gateway
CDSW
Master Node
Docker
アプリケーションと
エンジンのポッド
Kubernetes
Cloudera Managerエージェント
CDSWのアプリケーションコンポーネントとユーザワークロード
コンテナ・オーケストレーションサービス
コンテナ・ランタイム
CDHサービスのローカル管理
CDH
Gateway
CDSW
Worker Node
23. 23© Cloudera, Inc. All rights reserved.
Dockerを使えば⾃由が得られるか?
• クラスタ上で好きなライブラリを使うには
• Java/Scala
• ライブラリを Fat JARで配布すれば、必要な依存関係を解決できる
• Python
• virtualenv/venvで仮想環境を作り、実⾏環境でライブラリを導⼊
• 全クラスタで? → デモで解決法をお⾒せします
25. 25© Cloudera, Inc. All rights reserved.
PySparkで好きなPythonライブラリを使う
CDSW container
Python
w/ MeCab, TF, etc.
1. 必要なライブラリを
conda環境にまとめる
2. YARNがarchiveとして配布 3. 展開した環境を
PYSPARK_PYTHONで指定して実⾏
Master node
Worker node
https://blog.cloudera.co.jp/224ab84570da
https://blog.cloudera.co.jp/33097ac868fb
27. 27© Cloudera, Inc. All rights reserved.
CDSWを試すには?
• Cloudera Directorを使ってクラウドで試すのがお⼿軽
• https://github.com/takabow/cdsw-demo-env
• AWS上でCDSWとCDHクラスタが起動するconfig file
• Cloudera Directorって?
• Cloud上へCDHクラスタを簡単にデプロイするためのツール
• CyberZさんのブログに詳しくまとまっています
• http://engineer-blog.cyber-z.co.jp/entry/2016/12/21/090000