

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 步驟 3：建立應用程式組態檔案
<a name="spark-tutorial-step3"></a>

若要搭配 Amazon Keyspaces 使用開放原始碼 Spark Cassandra Connector，您需要提供應用程式組態檔案，其中包含與 DataStax Java 驅動程式連線所需的設定。您可以使用服務特定的登入資料或 SigV4 外掛程式來連線。

如果您尚未這麼做，則需要將用來建立 TLS 連線的數位憑證轉換為 trustStore 檔案。您可以從 [開始之前](using_java_driver.md#using_java_driver.BeforeYouBegin) Java 驅動程式連線教學課程中遵循 的詳細步驟。請記下 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)。

在下列範例中，`password`使用您自己的登入資料取代 `username`和 。此外，請取代 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 連接器會為每個執行器部署 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
  }
}
```