Main Content

parallel.cluster.Spark

mapreducer、mapreduce および tall 配列用の Spark クラスター

R2022b 以降

    説明

    parallel.cluster.Spark オブジェクトは、Spark™ クラスターへのアクセスを表し、そのアクセスを提供します。parallel.cluster.Spark オブジェクトを関数 mapreduce および関数 mapreducer への入力として使用し、Spark クラスターを tall 配列および mapreduce の並列実行環境として指定します。

    作成

    関数 parcluster を使用して、Spark クラスター プロファイルから parallel.cluster.Spark クラスター オブジェクトを作成します。または、関数 parallel.cluster.Spark (ここで説明) を使用して Spark クラスター オブジェクトを作成します。

    説明

    sparkCluster = parallel.cluster.Spark は、Spark クラスターを表す parallel.cluster.Spark オブジェクトを作成します。

    sparkCluster = parallel.cluster.Spark(Name,Value) は、parallel.cluster.Spark オブジェクトで 1 つ以上の名前と値の引数を使用してオプションのプロパティを設定します。たとえば、Spark のインストール フォルダーを変更するには、SparkInstallFolder="/share/spark/spark-3.3.0" を使用します。有効なプロパティの一覧については、プロパティを参照してください。

    プロパティ

    すべて展開する

    ワーカーの MATLAB 検索パスに追加するフォルダー。文字ベクトル、string、string 配列、または文字ベクトルの cell 配列として指定します。

    計算をワーカーにオフロードするときに、クライアント上での計算に必要なファイルもすべてワーカー上で使用可能でなければなりません。既定で、クライアントはそれらのファイルを検出して追加しようとします。自動検出をオフにするには、AutoAttachFiles プロパティを false に設定します。ソフトウェアがいずれかのファイルを検出できない場合や、クライアントからワーカーへのファイルの送信速度が遅い場合には、以下のいずれかのオプションを使用します。

    • ワーカー上でアクセスできないフォルダーにファイルが含まれている場合は、AttachedFiles プロパティを設定します。指定した各ファイルが、クラスターによってクライアントからワーカーにコピーされます。

    • ワーカー上でアクセスできるフォルダーにファイルが含まれている場合は、代わりに AdditionalPaths プロパティを設定できます。AdditionalPaths プロパティを使用して各ワーカーの MATLAB 検索パスにパスを追加し、クライアントからワーカーへの不必要なファイルのコピーを回避します。

    mapreduce の呼び出し時にワーカーに送信されるファイルとフォルダー。文字ベクトル、string、string 配列、または文字ベクトルの cell 配列として指定します。

    クライアントでファイルを自動的に検出して添付するかどうかを指定します。

    データ型: logical

    ワーカーが使用する MATLAB へのパス。'ClusterMatlabRoot' と文字ベクトルからなるコンマ区切りのペアとして指定します。これは、各マシンに対してローカルなものかネットワーク共有されたものかにかかわらず、ワーカーが使用する MATLAB Parallel Server™ のインストールを指します。

    データ型: string

    オンライン ライセンスで使用するライセンス番号。

    R2024a 以降

    この プロパティ は読み取り専用です。

    このクラスターのいずれかのプロパティがクラスター プロファイルと比較して変更されている場合は logical true。クラスター プロパティを変更した場合は logical true (1)、そうでない場合は logical false (0) として返されます。

    データ型: logical

    R2024a 以降

    ワーカーの計算スレッド数。非負の整数として指定します。

    R2024a 以降

    クラスター ワーカー マシンのオペレーティング システム。次のいずれかの値として指定します。

    • "windows"

    • "unix"

    • "mixed"

    R2024a 以降

    クラスター オブジェクトの作成に使用するプロファイルの名前。文字ベクトルとして指定します。

    データ型: char

    Spark クラスターでオンライン ライセンスを使用するかどうかを指定します。

    データ型: logical

    クライアント マシン上の Spark のインストール パス。SparkInstallFolder と文字ベクトルまたは string 配列からなるコンマ区切りのペアとして指定します。このプロパティが設定されていない場合、既定値は環境変数 SPARK_PREFIX で指定された値ですが、それが設定されていない場合は SPARK_HOME になります。

    データ型: char

    Spark クラスターに渡される Spark のプロパティの名前と値のペアのマップ。

    SparkProperties を使用すると、Spark の構成プロパティをオーバーライドできます。プロパティのリストは、Spark のドキュメンテーションを参照してください。

    R2024a 以降

    この プロパティ は読み取り専用です。

    このクラスターのタイプ。'Spark' として返されます。

    R2024a 以降

    現在のセッションでクラスター オブジェクトに関連付けられているデータ。任意の MATLAB データ型として指定します。

    オブジェクト関数

    mapreduceメモリに収まらないデータセットを解析するプログラミング手法
    mapreducermapreduce および tall 配列の並列実行環境の定義
    saveAsProfileクラスターのプロパティを指定されたプロファイルに保存する
    saveProfileクラスターの変更済みプロパティを現在のプロファイルに保存する

    すべて折りたたむ

    R2024a 以降

    Spark クラスター プロファイルから parallel.cluster.Spark オブジェクトを作成して使用します。

    Spark クラスターのプロファイルの作成方法については、クライアント構成 (MATLAB Parallel Server)を参照してください。

    sparkCluster = parcluster("SparkProfile")
    mr = mapreducer(sparkCluster)
    cluster = 
    
     Spark Cluster
    
        Properties: 
    
                          Type: Spark
                       Profile: SparkProfile
                      Modified: false
                    NumThreads: 1
       RequiresOnlineLicensing: false
             ClusterMatlabRoot: /network/installs/MATLAB/R2024a/matlab
    
            SparkInstallFolder: /network/installs/spark/3.0.2-3.2
               SparkProperties: [1x1 parallel.cluster.SparkProperties]
    

    parallel.cluster.Spark オブジェクトを手動で作成して使用します。

    マシン上の Spark インストールを指定してクラスター オブジェクトを作成し、Spark クラスターを mapreduce 並列実行環境として設定します。

    sparkCluster = parallel.cluster.Spark(SparkInstallFolder="/host/spark-install");
    mr = mapreducer(sparkCluster)

    制限

    • Spark クラスター プロファイルを既定のプロファイルとして設定することはサポートされていません。

    • Spark クラスターは並列プールとバッチ ジョブをサポートしていません。

    ヒント

    Spark クラスターでは、使用可能なメモリ量に制限が設定されます。ワークフローをサポートするため、収集するデータのサイズを調整しなければなりません。

    クライアントに収集されるデータ量は、Spark のプロパティにより制限されます。

    • spark.driver.memory

    • spark.executor.memory

    MATLAB から投入される Spark ジョブの spark.executor.memory プロパティの既定値は 2560 MB です。

    単一の Spark タスクから収集するデータ量は、これらのプロパティに適合しなければなりません。単一の Spark タスクは HDFS からの 1 データ ブロックを処理します。これは既定で 128 MB のデータです。元のデータの大部分を含む tall 配列を収集する場合は、必ずこれらのプロパティが適合するように設定しなければなりません。

    これらのプロパティが小さすぎる値に設定された場合、以下のようなエラーが表示されます。

    Error using tall/gather (line 50)
    Out of memory; unable to gather a partition of size 300m from Spark.
    Adjust the values of the Spark properties spark.driver.memory and 
    spark.executor.memory to fit this partition.
    エラー メッセージには、必要なプロパティの設定も示されます。

    プロパティは、クラスターの既定の設定か MATLAB 上で直接調整します。プロパティを MATLAB で調整するには、これらの Spark プロパティを Spark クラスター プロファイルの [SparkProperties] のテーブルに追加します。

    名前タイプ
    spark.driver.memory2048mString
    spark.executor.memory2048mString

    Spark クラスター オブジェクトを編集することもできます。

    cluster = parcluster("SparkProfile");
    cluster.SparkProperties('spark.driver.memory') = '2048m';
    cluster.SparkProperties('spark.executor.memory') = '2048m';
    mapreducer(cluster);

    バージョン履歴

    R2022b で導入

    すべて展開する