我有一个AWS作业(Python3中的Glue版本2),它用于将数据加载到托管在EC2实例上的Elasticsearch集群中。连接是由一个依赖JAR (elasticsearch-spark 20_2.11-7.8.1.jar)建立的。我们现在已经转移到托管OpenSearch1.2集群(HTTPS是必需的,没有启用细粒度访问),我正在努力研究如何使用Glue连接到这个新集群。OS集群位于专用VPC中,胶水作业角色可以访问该VPC。我还为测试目的提供了对OS服务的完全访问。我试过:
'org.elasticsearch.spark.sql'
).mode(
'overwrite'
).option(
'es.nodes', 'full_https_endpoint'
).option(
'es.port', 443
).option(
'es.resource', '%s' % ('index_name'),
).option(
'es.nodes.wan.only', True
).save()但我得到的错误是“调用o328.save时发生了错误。无法检测ES版本--通常情况下,如果无法访问网络/Elasticsearch集群,或者在没有正确设置‘es.nodes.wan.only’的情况下针对广域网/云实例时,就会发生这种情况。”
ElasticsearchConnector7134forAWSGlue10and20_node1658268217103 = glueContext.write_dynamic_frame.from_options(
frame=dynamicFrame_fin,
connection_type="marketplace.spark",
connection_options={
"path": "index_name",
"es.nodes.wan.only": "true",
"es.nodes": "full_https_endpoint",
"es.port": "443",
"connectionName": "opensearch_dev",
},
transformation_ctx="ElasticsearchConnector7134forAWSGlue10and20_node1658268217103",
)但是,获得类似的错误“在调用o323.pyWriteDynamicFrame时发生了错误。无法检测ES版本--通常情况下,如果网络/Elasticsearch集群无法访问,或者在没有正确设置‘es.nodes.wan.only’的情况下针对广域网/云实例时,就会发生这种情况。”
问题:
发布于 2022-08-15 22:19:09
这也把我绊倒了好几天。创建OpenSearch集群时,是否检查了“启用兼容性模式”?
如果不启用此模式,如果您访问域端点以检索版本,您将得到1.2.0,这是您所连接的驱动程序所不期望的,它将在您发布的相同错误中失败。
当您启用兼容性模式时,它会将版本号报告给您的驱动程序可以理解。
打开具有兼容性的示例:
"version": {
"number": "7.10.2",
}你的其他设置看起来不错,所以希望这就是阻碍你的地方。
https://stackoverflow.com/questions/73366759
复制相似问题