Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadeda

2,115 views

Published on

Data Engineering and Data Analysis Workshop #1 での有賀 (@chezou)の発表です。
https://cyberagent.connpass.com/event/58808/

Cloudera Data Science WorkbenchとPySparkを使い、Pythonで好きなライブラリを分散実行する方法についてです。日本語の形態素解析ライブラリMeCabをPySparkから実行します。

Published in: Technology

Cloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadeda

  1. 1. 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. 2© Cloudera, Inc. All rights reserved. ⾃⼰紹介 • 有賀 康顕 (Twitter/GitHub @chezou) • Field Data Scientist @Cloudera • 過去の経歴 • 製造系メーカーでNLP/⾳声対話/機械学習の研究開発 • クックパッドでRailsアプリケーションの傍らレコメンドシステムの開発 • 技術書典2で機械学習の⼊⾨本を頒布 • Rubyコミュニティkawasaki.rbも主催 • rubyist.clubというPodcastもやってます
  3. 3. 3© Cloudera, Inc. All rights reserved. We are hiring! • サポートメンバー、コンサルタント募集中
  4. 4. 4© Cloudera, Inc. All rights reserved. オープンデータサイエンス
  5. 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. 6© Cloudera, Inc. All rights reserved. オープンデータサイエンスの台頭 統計計算とグラフィックのため の、プログラミング⾔語とソフ トウェア環境 最も普及している領域: アカデ ミアと統計コミュニティ 汎⽤の⾼次プログラミング⾔語 最も普及している領域:機械学 習とデータエンジニアリングコ ミュニティ 強い静的型付けシステムを持つ、 汎⽤の関数プログラミング⾔語 最も普及している領域: Spark を中⼼としたデータエンジニア リングコミュニティ 何千ものオープンソースの機械学習、統計、ビジュアライゼーションライブラリが存在
  7. 7. 7© Cloudera, Inc. All rights reserved. オープンデータサイエンスを⽀えるオープンな論⽂ https://medium.com/@karpathy/a-peek-at-trends-in-machine- learning-ab8a1085a106 より引⽤ 機械学習関連の論⽂は 4年で4倍以上に
  8. 8. 8© Cloudera, Inc. All rights reserved. エンタープライズにおける、 スケールするデータサイエンス
  9. 9. 9© Cloudera, Inc. All rights reserved. Apache Spark ⾼速で柔軟な汎⽤データ処理フレームワーク データ エンジニアリング ストリーム処理 データサイエンス & 機械学習 統⼀されたAPIと⼤規模データのための処理エンジン
  10. 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. 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. 12© Cloudera, Inc. All rights reserved. チーム データサイエンティストとアナリスト ゴール データの理解、モデルの開発と改善、知⾒の共有 データ 新規のデータ、かつ頻繁に変更される。⼤抵の場 合サンプリングしたデータが⽤いられる 環境 ローカルマシンかサンドボックスクラスタ ツール R、Python、SAS/SPSS、SQL、ノートブック、 データラングリング・ディスカバリツール 最終アウトプット レポート、ダッシュボード、PDF、Excel、Word、 PowerPoint エンタープライズデータサイエンスにおける2つのステージ 探索 (新しい機会の捜索と定量化) 運⽤ (本番システムへのデプロイ) チーム データエンジニア、開発者、SRE ゴール アプリケーションのビルドとメンテナンス、改善 データ 既知のデータ、全データ 環境 本番クラスタ ツール Java/Scala、C++、IDE、CI、ソース管理など 最終アウトプット オンライン・本番アプリケーション
  13. 13. 13© Cloudera, Inc. All rights reserved. 運⽤ツール: バージョン管理、スケジューラ、ワークフロー開発ツール: IDE/ノートブック、Python、R、 Scala 典型的なデータサイエンスワークフロー 取得 処理 ガバナンス データを使った 実験 可視化と 分析 モデル訓練と テスト 本番データ パイプライン バッチ スコアリング データ サービング オンライン スコアリング データエンジニアリング データサイエンス(探索) 本番環境 (運⽤)
  14. 14. 14© Cloudera, Inc. All rights reserved. エンタープライズでのオープンデータサイエンス データサイエンティスト 探索、実験、イテレーション インフラエンジニア 事業の加速とコンプライアンスの両⽴
  15. 15. 15© Cloudera, Inc. All rights reserved. それぞれの課題 データサイエンティスト 探索、実験、イテレーション インフラエンジニア 事業の加速とコンプライアンスの両⽴ Hadoop上で好きなツールが使えない 基盤チームが標準提供するツールは使いたくない 結局⾃分のノートPC上に⼩さいデータをダウンロードし ないといけない データサイエンスチームの雑多な要望への 対応が⾟い セキュリティを保つのが⼤変になる コンプライアンスを維持しながら本番適⽤するのが⾟い 限定されたモデル クラウド上の⾃由な環境のメンテナンス負荷 個別に⾼価でハイスペックな環境を購⼊しないといけない 出処不明のデータ 開発/本番環境での実⾏環境のバージョンの差異 ⾼価でセキュアでない、サイロ化されたシステム
  16. 16. 16© Cloudera, Inc. All rights reserved. Clouderaのゴール より多くの データサイエンティストに Hadoopの⼒を使ってほしい Hadoopのデータと計算能⼒に直接 アクセスして、使い慣れたツール をパワフルに活⽤する データサイエンティスト データエンジニア 簡単かつセキュアに 新しいユーザやユースケースを 追加してほしい セキュアなセルフサービスの分析 ツールを提供し、普及していて⼿ 頃な価格の基盤上でより素早く本 番投⼊する エンタープライズアーキテクト Hadoop管理者
  17. 17. 17© Cloudera, Inc. All rights reserved. Cloudera Data Science Workbench
  18. 18. 18© Cloudera, Inc. All rights reserved. Cloudera Data Science Workbench 5つの価値 1つのプラットフォームで複数⾔語(Python, R, Scala)が使える マルチテナント⽬的に利⽤可能な、リソース分離されたセッション セキュアなクラスタとの連携が簡単にできる コードや成果物を共有・再利⽤可能 データサイエンスのワークフローの⾃動化とジョブスケジューリング
  19. 19. 19© Cloudera, Inc. All rights reserved. Cloudera Data Science Workbench(CDSW)によって エンタープライズのためのセルフサービスデータサイエンス基盤 データサイエンティストは ⾃由を得ることが出来る インフラエンジニアは ガバナンスを確保できる
  20. 20. 20© Cloudera, Inc. All rights reserved. データサイエンティストは • R/Python/Scalaをブラウザから環境構 築なしにすぐに使える • 好みのライブラリやフレームワーク をプロジェクトごとに独⽴した環境 にインストール可能 • SparkとImpalaを使いセキュアなク ラスタのデータを直接触れる • 知⾒をチームに再利⽤・共同開発可 能な形で共有できる • データパイプラインの⾃動化と監視 を組み込みのジョブスケジューラで 可能 インフラエンジニアは • データサイエンティスト⾃⾝が好き な分析環境を作れる⾃由を与えられ る • 複雑な設定なしにKerberosと連携が でき、セキュリティの確保も容易 • オンプレミスでもクラウドでもどこ でもデータのある場所で使える CDSWを使えば…
  21. 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. 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. 23© Cloudera, Inc. All rights reserved. Dockerを使えば⾃由が得られるか? • クラスタ上で好きなライブラリを使うには • Java/Scala • ライブラリを Fat JARで配布すれば、必要な依存関係を解決できる • Python • virtualenv/venvで仮想環境を作り、実⾏環境でライブラリを導⼊ • 全クラスタで? → デモで解決法をお⾒せします
  24. 24. 24© Cloudera, Inc. All rights reserved. Demo InstallしていないMeCabをPySparkクラスタ上で実⾏する
  25. 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
  26. 26. 26© Cloudera, Inc. All rights reserved. オープンなエコシステムの重要性 オープンエコシステム ブラックボックス
  27. 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
  28. 28. 28© Cloudera, Inc. All rights reserved. Thank you! ariga@cloudera.com

×