

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 步骤 3：创建应用程序配置文件
<a name="spark-tutorial-step3"></a>

要将开源 Spark Cassandra Connector 与 Amazon Keyspaces 配合使用，您需要提供一个包含连接 Java 驱动程序所需的设置 DataStax 的应用程序配置文件。您可以使用特定于服务的凭证或 SigV4 插件进行连接。

如果您尚未这样做，则需要将用于创建 TLS 连接的数字证书转换为 TrustStore 文件。您可以按照 Java 驱动程序连接教程的[开始前的准备工作](using_java_driver.md#using_java_driver.BeforeYouBegin)中的详细步骤进行操作。请记下 trustStore 文件路径和密码，因为您在创建应用程序配置文件时需要使用这一信息。

## 使用 Sigv4 身份验证进行连接
<a name="appconfig.sigv4"></a>

本节向您展示了一个示例`application.conf`文件，您可以在连接 AWS 凭据和 SigV4 插件时使用该文件。如果您尚未这样做，则需要生成 IAM 访问密钥（访问密钥 ID 和私有访问密钥），并将其保存在 AWS 配置文件中或作为环境变量保存。有关详细说明，请参阅[适用于 Cassandra AWS CLI客户端驱动程序的、 AWS 软件开发工具包或 Amazon Keyspaces Sigv4 插件所需的凭证](SigV4_credentials.md)。

在以下示例中，请将文件路径替换为您的 trustStore 文件，并且替换密码。

```
datastax-java-driver {
        basic.contact-points = ["cassandra.us-east-1.amazonaws.com:9142"]
        basic.load-balancing-policy {
            class = DefaultLoadBalancingPolicy
            local-datacenter = us-east-1
            slow-replica-avoidance = false
        }
        basic.request {
              consistency = LOCAL_QUORUM
        }
        advanced {
                auth-provider = {
                   class = software.aws.mcs.auth.SigV4AuthProvider
                   aws-region = us-east-1
                 }
            ssl-engine-factory {
                class = DefaultSslEngineFactory
                truststore-path = "path_to_file/cassandra_truststore.jks"
                truststore-password = "password"
        hostname-validation=false
            }
   }
        advanced.connection.pool.local.size = 3   
}
```

更新此配置文件并将其保存为 `/home/user1/application.conf`。下列示例使用这一路径。

## 使用特定于服务的凭证进行连接
<a name="appconfig.ssc"></a>

 本节向您展示了一个示例 `application.conf` 文件，您可以在使用特定于服务的凭证进行连接时使用这一文件。如果您尚未执行这一操作，则需要为 Amazon Keyspaces 生成特定于服务的凭证。有关详细说明，请参阅[创建用于通过编程方式访问 Amazon Keyspaces 的服务特定凭证。](programmatic.credentials.ssc.md)。

在以下示例中，将 `username` 和 `password` 替换为您自己的凭证。另外，请将文件路径替换为您的 trustStore 文件，并且替换密码。

```
datastax-java-driver {
        basic.contact-points = ["cassandra.us-east-1.amazonaws.com:9142"]
        basic.load-balancing-policy {
            class = DefaultLoadBalancingPolicy
            local-datacenter = us-east-1
        }
        basic.request {
              consistency = LOCAL_QUORUM
        }
        advanced {
            auth-provider = {
            class = PlainTextAuthProvider
                    username = "username"
                    password = "password"
                    aws-region = "us-east-1"
            }
            ssl-engine-factory {
                class = DefaultSslEngineFactory
                truststore-path = "path_to_file/cassandra_truststore.jks"
                truststore-password = "password"
                hostname-validation=false
            }
            metadata = {
                schema {
                     token-map.enabled = true
                }
            }
        }    
}
```

更新此配置文件并将其保存为 `/home/user1/application.conf`，以便与代码示例一起使用。

## 设置固定连接速率
<a name="appconfig.fixedrate"></a>

要强制每个 Spark 执行程序都使用固定速率，您可以定义一个请求调节器。请求调节器可以限制每秒的请求速率。Spark Cassandra Connector 会为每个执行程序都部署一个 Cassandra 会话。使用以下公式可以帮助您在表中实现一致的吞吐量。

```
max-request-per-second * numberOfExecutors = total throughput against a table
```

您可以将此示例添加到之前创建的应用程序配置文件中。

```
datastax-java-driver {
  advanced.throttler {
    class = RateLimitingRequestThrottler

    max-requests-per-second = 3000
    max-queue-size = 30000
    drain-interval = 1 millisecond
  }
}
```