マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

Apache Sparkベースのビッグデータ、統合データ分析プラットフォーム

用途

ビッグデータ分析ワークロードで利用する。

  • ETLのようなバッチ処理
  • データ・パイプラインの過程
  • データ・サイエンティスト向けのフル稼働の計算資源
    には向かない(→ Data Science Virtual Machines)。

コンセプト

DataとAIの⺠主化

「DataとAIの⺠主化」を実現する機能

レイクハウス

  • ただ、
  • ブロンズ
  • シルバー
  • ゴールド

データ領域とか、そう言う概念はあるらしい。

詳細

機能

業務領域

  • ビジネス分析(BI/レポート)
  • ⾃由検索(SQLアナリティクス)
  • 機械学習(+深層学習)

データ種類

  • 構造化(CRM(のRDB)など)
  • 半構造化(JSON/XMLなど)
  • ⾮構造化(画像・動画など)

処理タイプ

拡張性

  • ストレージ拡張
  • リソース拡張
  • クラウド(マネージドサービス)

コラボレーション

同時編集・コメント・ロギング機能にて、チームでの開発を加速

  • ビジネス・アナリスト
  • データ・サイエンティスト
  • データ・エンジニア

デジタルイニシアティブ実⾏体制

⾔語

多⾔語対応にて、スキルの壁を跨いでコラボレーション

  • SQL
  • Python/R
  • Scala

スタック

データレイク

  • 多種多様な全てのデータをデータレイクに格納

DELTA LAKE

  • 以下を実現する
  • ⾼信頼性
    • ACIDトランザクション
    • タイムトラベル / スナップショット
    • バッチとストリーミング統合(Apache Spark
    • スキーマ妥当性検証とエボリューション
  • ⾼性能
    Apache Spark Optimized Engine
    • インデックス
    • コンパクション
    • データスキッピング
    • キャッシング
  • オープンソースのオープンな形式をベース(Parquet)

DELTA ENGINE

  • SQL分析・ダッシュボード(要するにウワモノ)の⾼速化を⽀える。
  • 高性能なクエリ・エンジン。
  • SQL や DataFrame?(Spark SQL)のワークロードを加速させる。
    • インプットを⾃動的にキャッシュ化
    • Apache Sparkのオプティマイザを拡張
    • ネイティブ(C++)でベクトル化された実⾏エンジン(Photon)

上モノ

違い

OSS版との違い

...

クラウド・サービスOSS
DELTA LAKEDELTA LAKE
DELTA ENGINE

Azure HDInsightとの違い

上モノ

多様なユースケース

さまざまなデータソースから集約された、
⾼品質なデータセットにアクセス可能であるため、
1つのプラットフォーム上で多様なユースケースを実現可能。

  • Redash
    BI レポート&ダッシュボード

Workspace

機械学習のツールの課題に対するソリューション

  • データ・サイエンスチームの⽣産性を向上
  • 1つのプラットフォームにて多種多様な
    ツール・⾔語・フレームワークを利⽤可能
  • コラボレーション可能なノートブック

MLflow

機械学習のデプロイの課題に対するソリューション

  • 標準化された機械学習ライフサイクル

    モデル学習→ モデル登録→ モデル⽐較→ 承認ワークフロー→ モデルデプロイ

  • シームレスにセキュアに機械学習モデルをステージングから本番環境へ連携可能
  • MLflowトラッキング
    • 実験のトラッキングと検索
    • レコードとクエリの実験:コード、データ、コンフィグ、結果
  • MLflowプロジェクト
    • 再現可能なプロジェクト
    • あらゆるプラットフォームで再現可能なように
      パッケージ化されたデータ・サイエンス・コード
  • MLflowモデル・レジストリ
    • モデル管理とレビュー
    • セントラルのレポジトリーにて
      モデルを保存、注釈付与、管理
  • MLflowモデル・サービング
    • 柔軟なデプロイ⽅法
    • 機械学習モデルを様々な環境に簡易にデプロイ可能
    • RESTエンドポイント

開発デプロイ

取り敢えず、.NET for Apache Spark ガイドのコンテンツをやってみる。

開発

(Get started in 10 minutes)

デプロイ

※ 無料試用版サブスクリプションは利用不可との事。

ワークスペースを作成

ワークスペースの作成には数分かかる。

ツールのインストール

  • インストールの確認
    >python
    ...
  • Databricks CLIのインストール
    >pip3 install databricks-cli
  • インストールの確認
    >databricks
    ...

設定

  • 認証の詳細を設定
    >databricks configure --token
  • ホスト URLの入力
    Databricks Host (should begin with https://): https://<Location>.azuredatabricks.net
  • ワークスペース起動
  • ユーザー設定
  • トークンを生成
    • 取得
    • 入力
      Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

アプリの発行

  • ターゲットはubuntu
    >dotnet publish -c Release -f netcoreapp3.1 -r ubuntu.16.04-x64
  • publishしたものをpublish.zipにまとめる。

ワーカーの依存関係のダウンロード

次のファイルをダウンロードする。

  • Microsoft.Spark.Worker(ローカル実行で使用したものに対応するLinux版の*.tar.gz)
  • install-worker.sh
  • db-init.sh

※ *.shの行の終わりは Unix 形式 (LF) であることを確認
https://github.com/dotnet/spark/tree/master/deployment

ファイルのアップロード

次のファイルをアップロードする(Databricks CLI

  • 発行したアプリ
    • publish.zip
    • input.txt
    • microsoft-spark-2-4_2.11-1.0.0.jar(ローカル実行で使用したもの)
      databricks fs cp input.txt dbfs:/input.txt
      databricks fs cp publish.zip dbfs:/spark-dotnet/publish.zip
      databricks fs cp microsoft-spark-2-4_2.11-1.0.0.jar dbfs:/spark-dotnet/microsoft-spark-2-4_2.11-1.0.0.jar
  • 依存関係
    • Microsoft.Spark.Worker(ローカル実行で使用したものに対応するLinux版の*.tar.gz)
    • install-worker.sh
    • db-init.sh
      databricks fs cp Microsoft.Spark.Worker.netcoreapp3.1.linux-x64-1.0.0.tar.gz 
      dbfs:/spark-dotnet/Microsoft.Spark.Worker.netcoreapp3.1.linux-x64-1.0.0.tar.gz
      databricks fs cp install-worker.sh dbfs:/spark-dotnet/install-worker.sh
      databricks fs cp db-init.sh dbfs:/spark-dotnet/db-init.sh

クラスタの作成

  • Initスクリプトを db-init.sh に設定
  • db-init.sh 内で install-worker.sh が構成される($1-3をパラメタライズ)。

※ install-worker.sh は、.NET for Apache Spark 依存ファイルをクラスタのノードにコピーする。

ジョブの作成

WebのGUIを使用して、spark-submit を構成

["--class","org.apache.spark.deploy.dotnet.DotnetRunner","/dbfs/spark-dotnet/microsoft-spark-2-4_2.11-1.0.0.jar","/dbfs/spark-dotnet/publish.zip","mySparkApp"]

同様に、多分、引数にinput.txtを足す必要があるのではないか?と。

アプリの実行

  • ここで、Initスクリプトが実行される。
  • ジョブのクラスタが作成されるまで数分かかる。
  • 新しく構成した Spark クラスタでジョブが実行される。

リソースのクリーンアップ

リソース グループを削除する。

Azure HDInsightとの比較

クラスタの作成中のdb-init.sh 設定アプリの実行

スクリプト アクション実行

参考

gihyo.jp … 技術評論社

クリエーションライン株式会社

Microsoft Azure

Microsoft Docs

Azure Databricks のドキュメント

https://docs.microsoft.com/ja-jp/azure/databricks/

  • クイックスタート
    ワークスペースの作成
    • ポータル
    • Azure PowerShell
    • ARM テンプレート
    • 仮想ネットワーク
  • チュートリアル
    • Docker コンテナで稼働している SQL Server に対するクエリ
    • Azure Key Vault を使用したストレージへのアクセス
    • Cosmos DB サービス エンドポイントの使用
    • ETL 操作の実行
    • Event Hubs を使用したデータのストリーミング
    • Cognitive Services を使用した感情分析

.NET、C#

  • ...

.NET for Apache Spark ガイド

...

slideshare.net

開発基盤部会 Wiki & Blog


Tags: :クラウド, :Azure


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-11-29 (日) 19:42:42 (94d)