内部認証を使用したspark-submitジョブの実行
内部認証を使用したspark-submitジョブの実行例
この例では、内部認証を使用してspark-submitジョブを実行する方法を示します。
dse spark-submit
を使用してSparkジョブを送信すると、SparkマスターURLとSparkデータベース接続URLが自動的に設定されます。次に、Spark Confを使用してアプリケーション名を設定します。例を次に示します。package simpleSpark;
import com.datastax.spark.connector.cql.CassandraConnector;
import org.apache.spark.SparkConf;
import org.apache.spark.SparkContext;
import org.apache.spark.api.java.JavaSparkContext;
public interface SparkConfSetup {
static public SparkConf getSparkConf() {
return new SparkConf()
.setAppName("SimpleSpark");
}
static public JavaSparkContext getJavaSparkContext() {
SparkContext usingSparkContext = new SparkContext(getSparkConf());
return new JavaSparkContext(usingSparkContext);
}
static public CassandraConnector getCassandraConnector() {
return CassandraConnector.apply((getSparkConf()));
}
}
- githubからソース・ファイルの複製を作成します。
- Apache Mavenをインストールします。
- DataStax Enterprise Spark JARファイルをローカル・リポジトリに追加します。
mvn install:install-file -Dfile=/usr/share/dse/dse-spark-version.jar -DgroupId=com.datastax -DartifactId=dse -Dversion=5.0.3 -Dpackaging=jar
- mavenをプロジェクトに追加すると、pom.xmlが以下のようになります。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>BasicSparkDemo</groupId> <artifactId>BasicSparkDemo</artifactId> <packaging>jar</packaging> <version>0.1</version> <name>BasicSparkDemo</name> <url>https://www.datastax.com/</url> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.10</artifactId> <version>2.0.2</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.datastax.spark</groupId> <artifactId>spark-cassandra-connector</artifactId> <version>2.0.0</version> </dependency> <dependency> <groupId>com.datastax</groupId> <artifactId>dse</artifactId> <version>5.0.3</version> <scope>provided</scope> </dependency> </dependencies> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> </project>
- コードを編集して、SparkConfオブジェクトを作成します。
package simpleSpark; import com.datastax.spark.connector.cql.CassandraConnector; import org.apache.spark.SparkConf; import org.apache.spark.SparkContext; import org.apache.spark.api.java.JavaSparkContext; /** * When you submit a Spark Job using dse spark-submit it automatically sets the Spark Master URL and the Spark Cassandra Connection URL. * The Spark Conf then just needs to set the app name. **/ public interface SparkConfSetup { static public SparkConf getSparkConf() { return new SparkConf() .setAppName("SimpleSpark"); } static public JavaSparkContext getJavaSparkContext() { SparkContext usingSparkContext = new SparkContext(getSparkConf()); return new JavaSparkContext(usingSparkContext); } static public CassandraConnector getCassandraConnector() { return CassandraConnector.apply((getSparkConf())); }
- Mavenを使用してパッケージを構築します。
mvn clean package
- 認証とspark-submitを併用するには、構成済みDSE認証スキーマに対して認証するように認証情報を指定します。
認証情報はいくつかの方法で指定できます。「認証対応クラスターへの接続」を参照してください。dse -u username -p password spark-submit --class simpleSpark.SparkWordCount ./target/BasicSparkDemo-0.1.jar