我正在本地机器上通过docker运行elasticsearch,可以通过端口9200上的RESTAPI正常访问它。
Apache flink用于通过端口9300与elasticsearch通信。
Elasticsearch client is not connected to any Elasticsearch nodes!
运行容器的docker命令如下所示:
docker run --rm -d -p 9200:9200 -p 9300:9300 -p 5601:5601 --name es-kibana nshou/elasticsearch-kibana
我还尝试在“-p 0.0.0.0:9300:9300”上打开端口9300,或者使用官方docker容器进行elasticsearch。
List<InetSocketAddress> transports = new ArrayList<>();
transports.add(new InetSocketAddress(InetAddress.getByName("0.0.0.0"), 9300));
tweets.addSink(new ElasticsearchSink<Tuple2<String, Integer>>(
config,
transports,
new ESSink()));
索引ES的卷曲:
curl --request PUT --url http://localhost:9200/twitter-bd
映射ES的旋度:
curl --request PUT
--url http://localhost:9200/twitter-bd/_mapping/twitter-wordcount \
--header 'content-type: application/json' \
--data '{
"twitter-wordcount": {
"properties": {
"word": {"type": "string"},
"cnt": {"type": "integer"}
}
}
}'