Main Content

parallel.cluster.Spark

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

    説明

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

    作成

    Spark クラスター オブジェクトは parallel.cluster.Spark を使用して作成します。

    説明

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

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

    プロパティ

    すべて展開する

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

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

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

    データ型: logical

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

    データ型: string

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

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

    データ型: logical

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

    データ型: string

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

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

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

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

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

    オブジェクト関数

    mapreduceメモリに収まらないデータセットを解析するプログラミング手法
    mapreducermapreduce および tall 配列の並列実行環境の定義

    すべて折りたたむ

    この例では、parallel.cluster.Spark オブジェクトを作成して使用し、Spark クラスターを mapreduce の並列実行環境として設定する方法を示します。

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

    ヒント

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

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

    • spark.driver.memory

    • spark.executor.memory

    単一の 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 で調整するには、クラスターの SparkProperties プロパティに名前と値のペアを追加します。以下に例を示します。

    cluster = parallel.cluster.Spark;
    cluster.SparkProperties('spark.driver.memory') = '2048m';
    cluster.SparkProperties('spark.executor.memory') = '2048m';
    mapreducer(cluster);

    バージョン履歴

    R2022b で導入