连接超时EMR上的spark-redshift异常

问题描述:

我正在使用由数据砖提供的spark-redshift库从Spark中的红移表中读取数据。链接:https://github.com/databricks/spark-redshift连接超时EMR上的spark-redshift异常

注意:在我的情况下,Redshift集群和EMR集群的AWS账户是不同的。

我能够在Spark LOCAL模式下使用spark-redshift连接到红移。但是,相同的代码在EMR上失败,出现以下异常:java.sql.SQLException:错误设置/关闭连接:连接超时。

我已经尝试在我的EMR群集的EC2安全组的入站规则中添加Redshift,但它没有帮助。在做这件事时,我曾使用Source作为MyIP。

我找到了解决这个VPC使用对等:http://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/Welcome.html

我们使用VPC窥视和更新个人的VPC的路由表,从其他VPC的CIDR的IPv4接受流量连接红移和EMR的VPC。 VPC对等也可以在AWS账户中完成。请参阅上面的链接以获取更多详细信息。

完成此操作后,转到这两个帐户中的VPC对等连接并启用来自对等VPC的DNS解析。为此,请选择VPC对等连接 - >转至顶部的操作选项 - >选择编辑DNS设置 - >选择允许来自对等VPC的DNS解析。