步骤 3:创建应用程序配置文件 - Amazon Keyspaces(Apache Cassandra 兼容)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

步骤 3:创建应用程序配置文件

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

如果您尚未执行这一操作,则需要将 Starfield 数字证书转换为 trustStore 文件。您可以按照 Java 驱动程序连接教程的开始前的准备工作中的详细步骤进行操作。请记下 trustStore 文件路径和密码,因为您在创建应用程序配置文件时需要使用这一信息。

使用 Sigv4 身份验证进行连接

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

在以下示例中,请将文件路径替换为您的 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。下列示例使用这一路径。

使用特定于服务的凭证进行连接

本节向您展示了一个示例 application.conf 文件,您可以在使用特定于服务的凭证进行连接时使用这一文件。如果您尚未执行这一操作,则需要为 Amazon Keyspaces 生成特定于服务的凭证。有关详细说明,请参阅生成服务特定凭证

在以下示例中,将 usernamepassword 替换为您自己的凭证。另外,请将文件路径替换为您的 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,以便与代码示例一起使用。

设置固定连接速率

要强制每个 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 } }