Spark3.0 使用域名连接ElasticSearch
-
需求如下:
有一个 https的 ElasticSearch的测试数据集群地址给我,内容形式是HTTPS的. 类似于
https://abc.def.dasd:443
, 网站地址是域名,类似www.sohu.com这种。希望我把数据写进这个地址 -
然后使用spark3 进行连接,后面发现连接不上,报错如下
HadoopIllegalArgumentEXception:No data nodex with HTTP-enabled available -
但是我用自己的临时的es服务器,HTTP协议的,
http://xxx:9200
没有问题,XXX是IP地址,127.0.0.1。 -
后面发现配置了这个参数,就可以进行连接了,
.set("es.nodes.wan.only","true")
配置说明
默认为 false,设置为 true 之后,会关闭节点的自动 discovery,只使用es.nodes声明的节点进行数据读写操作;如果你需要通过域名进行数据访问,则设置该选项为 true,否则请务必设置为 false,可能对性能有影响
- 这边再把Spark连接ES必要的一些参数再分享一下
conf=new Sparkconf().setAppName("XXX").setMaster("local[*]")
conf.set("ex.index.auto.create","true")
conf.set("es.nodes.wan.only","true")
.set("es.nodes","https//www.sohu.com")
.set("es.port","443")
参考文献
- 链接:https://www.jianshu.com/p/930337f5902e