本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
解决在亚马逊密钥空间中使用 Spark Cassandra 连接器时的常见错误
如果您使用的是亚马逊虚拟私有云并连接到亚马逊密钥空间,则在使用 Spark 连接器时遇到的最常见错误是由以下配置问题引起的。
在 VPC 中使用的 IAM 用户或角色缺乏访问所需的权限
system.peers
亚马逊密钥空间中的表。有关更多信息,请参阅填充system.peers包含接口 VPC 终端节点信息的表条目:IAM 用户或角色缺乏所需的用户表读取/写入权限以及对 Amazon Keyspaces 中系统表的读取权限。有关更多信息,请参阅步骤 1:配置亚马逊密钥空间以便与 Apache Cassandra Spark Connector 集成:
创建 SSL/TLS 连接时,Java 驱动程序配置不会禁用主机名验证。有关示例,请参阅 步骤 2:配置驱动程序。
有关连接故障排除的详细步骤,请参见我的 VPC 终端节点连接无法正常工作。
此外,你可以使用亚马逊CloudWatch可帮助您解决亚马逊 Keyspaces 中的 Spark Cassandra 连接器配置问题的指标。要了解有关使用亚马逊密钥空间的更多信息CloudWatch,参见使用亚马逊监控亚马逊Keyspaces CloudWatch。
以下部分描述了在使用 Spark Cassandra 连接器时需要观察的最有用的指标。
- PerConnectionRequestRateExceeded
-
亚马逊密钥空间的配额为每个连接每秒 3,000 个请求。每个 Spark 执行者都会与亚马逊密钥空间建立连接。多次重试可能会耗尽您的每次连接请求速率配额。如果您超过此配额,亚马逊密钥空间会发出
PerConnectionRequestRateExceeded
公制英寸CloudWatch。如果你看见PerConnectionRequestRateExceeded存在事件以及其他系统或用户错误,很可能是 Spark 正在运行多次重试,超出了每个连接的分配请求数。
如果你看见
PerConnectionRequestRateExceeded
没有其他错误的事件,则可能需要增加驱动程序设置中的连接数以增加吞吐量,或者可能需要增加 Spark 任务中的执行器数量。 - StoragePartitionThroughputCapacityExceeded
-
亚马逊 Keyspaces 的配额为每秒 1,000 个 WCU 或 WRU /每秒 3,000 个 RCU 或 RRU,每个分区。如果你看见
StoragePartitionThroughputCapacityExceeded
CloudWatch事件,它可能表明数据不是在加载时随机化的。有关如何随机排列数据的示例,请参见步骤 4:在亚马逊密钥空间中准备源数据和目标表。
常见错误和警告
如果你使用的是亚马逊虚拟私有云并连接到亚马逊 Keyspaces,Cassandra 驱动程序可能会在中发出有关控制节点本身的警告消息system.peers
桌子。有关更多信息,请参阅常见错误和警告:你可以放心地忽略这个警告。