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

目次

概要

チュートリアル

以下のチュートリアルを実施してみた。

Get started in 10 minutes
.NET for Apache Spark 101-α
.NET for Apache Spark ガイド-α
≠ github.com...README.md#get-started

前提

  • 情報源
    • 2020/11の情報
    • Microsoft Docsベース
  • ローカルはWindows
    • .NET:netcoreapp3.1
    • Java:jdk-8u201-windows-x64.exe
  • Apache Spark
    • ver:2.4.1
    • パス:
      C:\prog\spark\spark-2.4.1-bin-hadoop2.7
  • .NET for Apache Spark
    • ver:1.0.0
    • パス:
      C:\prog\spark\Microsoft.Spark.Worker-1.0.0
  • winutils.exe
    • ver:.../hadoop-2.7.1/bin/winutils.exe
    • パス:
      C:\prog\spark\spark-2.4.1-bin-hadoop2.7\bin
  • その他
  • 7-Zip(インストール済み)

詳細

開発

Get started in 10 minutes

  • デモを見た限り、入力はTXTファイルで単語を数える。
  • メソッド構文のSpark SQLで単語を数える(いきなりハードル高い)。
  • コピペ用CMD
    • Apache Spark
      • HOMEの指定
        setx /M HADOOP_HOME C:\prog\spark\spark-2.4.1-bin-hadoop2.7\
        setx /M SPARK_HOME C:\prog\spark\spark-2.4.1-bin-hadoop2.7\
        setx /M PATH "%PATH%;%HADOOP_HOME%;%SPARK_HOME%\bin"
      • 動作確認
        >spark-submit --version
        Welcome to
        
             / __/__  ___ _____/ /__
            _\ \/ _ \/ _ `/ __/  '_/
           /___/ .__/\_,_/_/ /_/\_\   version 2.4.1
              /_/
        
        Using Scala version 2.11.12, Java HotSpot(TM) 64-Bit Server VM, 1.8.0_201
        Branch
        Compiled by user  on 2019-03-26T22:44:44Z
        Revision
        Url
        Type --help for more information.
  • .NET for Apache Spark
    • パス設定
      setx /M DOTNET_WORKER_DIR C:\prog\spark\Microsoft.Spark.Worker-1.0.0
    • 動作確認
      以下のアプリをビルドして動作させる。
  • 実行
    \MySparkApp\bin\Debug\netcoreapp3.1>spark-submit ^
    --class org.apache.spark.deploy.dotnet.DotnetRunner ^
    --master local ^
    microsoft-spark-2-4_2.11-1.0.0.jar ^
    dotnet MySparkApp.dll input.txt
    ...
    20/11/19 12:39:29 INFO CodeGenerator: Code generated in 10.4659 ms
    +------+-----+
    |  word|count|
    +------+-----+
    |  .NET|    3|
    |Apache|    2|
    |   app|    2|
    |  This|    2|
    | Spark|    2|
    | World|    1|
    |counts|    1|
    |   for|    1|
    | words|    1|
    |  with|    1|
    | Hello|    1|
    |  uses|    1|
    +------+-----+
    
    20/11/19 12:39:29 INFO SparkUI: Stopped Spark web UI at http://nishi.mshome.net:4040
    ...

バッチ処理

  • デモを見た限り、入力はCSVファイルで集計処理を行う。

構造化ストリーミング

(別名、マイクロ・バッチ)

  • デモを見た限り、入力はNetcatからのテキスト行で、変換処理を行う。
  • なお、ストリーミング処理では、ループを書くのではなく、StreamingQuery?を使用する模様。
    • StreamingQuery?のStartでアプリケーションが開始する。
    • StreamingQuery?AwaitTermination?でアプリケーションが外部から停止されるまで実行。

ML.NET での感情分析

  • デモを見た限り、入力はyelptest.csvで、感情分析を行う。
  • なお、学習は、yelptrain.csvを使用して行う。
  • 学習の結果、XXXXML.Modelプロジェクトが生成されるので、参照を追加する。
  • ML処理を呼出すUDFクエリ構文のSpark SQLから利用する。

デプロイ

リンク先を読むと解るが差は僅か。

Azure HDInsight

Azure Databricks

分散環境での入出力

分散環境

  • 基本的には、マネージド・サービスのクラスタを利用する。
  • 自動的にクラスタ内のワーカー・ノードに分散される模様。
    • RDDや変数を共有する範囲のタスクが1つのワーカー・ノードに割り当てられる。
    • 上記以外のタスクはその他のワーカー・ノードに割り当てられる可能性がある。

入出力

遅延評価

  • DAGを用いた遅延評価で、一回、処理が解析される。
    • エグゼキュータでDAGが生成され、
    • RDDを消費するAPIが呼ばれるとジョブが作られる。
    • ドライバはエグゼキュータにジョブを転送する。

参考

msdn.com

Channel 9 > .NET for Apache Spark 101

.NET for Apache Spark ガイドのチュートリアル部」を動画化してある。

microsoft.com

Get started in 10 minutes

https://dotnet.microsoft.com/learn/data/spark-tutorial/intro

Microsoft Docs > .NET for Apache Spark ガイド

  • チュートリアル

Tags: :クラウド, :Azure, :.NET開発, :.NET Core, :.NET Standard


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