認証が有効な場合にクラスター・モードでSparkアプリを有効にする

JARファイルがCassandraファイル・システム(CFS)上にあり、認証が有効になっている場合に、クラスター・モードでSparkアプリケーションを有効にするための構成手順。

JARファイルがCassandraファイル・システム(CFS)上にあり、認証が有効になっている場合は、クラスター・モードでSparkアプリケーションを有効にする必要があります。アプリケーションがクラスター・モードで送信され、JARファイルがCFS上にある場合、必要なJARファイルの取得はSparkワーカー・プロセスが担当します。認証が必要な場合、Sparkワーカー・プロセスではCFSへの認証情報が必要になります。Sparkワーカーは無関係なSparkジョブのエグゼキューターを開始するため、Sparkワーカー・プロセスの認証情報を指定することで、今後すべてのSparkジョブがJARファイルをCFSから引き出して依存関係を得られるようにできます。Sparkワーカーに付与された認証情報は、送信するユーザーに関係なく、送信されるすべてのアプリケーション間で「共有」されていると見なす必要があります。共有される認証情報は、アプリケーション・コードからのCFSへのアクセスには適用されません。
spark-env.shファイルのデフォルトの場所は、インストールのタイプによって異なります。

パッケージ・インストールInstaller-Servicesインストール

/etc/dse/spark/spark-env.sh

tarボール・インストールInstaller-No Servicesインストール

installation_location/resources/spark/conf/spark-env.sh

手順

  1. JARファイルがCFS上にあり、認証が有効になっている場合にクラスター・モードでSparkアプリケーションを有効にするには、以下のいずれかを行います。
    • すべてのDataStax Enterpriseノードのspark-env.shに次の文を追加します。
      SPARK_WORKER_OPTS="$SPARK_WORKER_OPTS -Dspark.hadoop.cassandra.username=username
            -Dspark.hadoop.cassandra.password=password"
    • DataStax Enterpriseサーバー・プロセスを開始する前に、SPARK_WORKER_OPTS環境変数を、DataStax Enterpriseサーバー・プロセスの可視性を保証するように設定します。

      この環境変数は、dse sparkまたはdse spark-submitコマンドを使用して送信されるアプリケーションに渡す必要はありません。

  2. 以下のベスト・プラクティスに従います。
    • CFS上でのみ権限を持つ(関連するCFSキースペースへのアクセス)一意のユーザーを作成し、その一意のユーザー認証情報をSparkワーカー認証に使用します。このベスト・プラクティスによって、明示的なパーミッションがなくてもユーザーのSparkジョブを介してアクセスできる、データベース内の保護された情報の量が制限されます。
    • 別のCFSディレクトリーを作成し、このディレクトリーへのアクセス権限を読み取り専用に限定します。