apache-spark - Elasticsearch如何利用集群?

标签 apache-spark elasticsearch logstash kibana

将单节点群集更改为多节点群集之后,您是否需要采取任何措施来利用群集?

例如,我们的应用程序服务器使用单个ip/port(我们的单节点的ip /端口)来搜索文档。
此外,logstash,kibana,spark都指向单个ip /端口。

我应该放置load balancer来利用多节点吗?还是我可以免费获得一些东西?

我遵循了以下docker文件(只是将网络模式更改为托管,并部署在多个主机上)

  es-log-00:
   build:
     context: .
     dockerfile: ./compose/elasticsearch/Dockerfile
     args:
       - VERSION=${VERSION}
       - ELASTICSEARCH_NETWORK_HOST=${ELASTICSEARCH_NETWORK_HOST}
       - ELASTICSEARCH_PORT=${ELASTICSEARCH_PORT}
       - MEM=${MEM}
       - ENV=${ENV}
   container_name: es-log-00
   network_mode: host
   environment:
       - node.name=node-master
       - discovery.seed_hosts=node1,node2
       - cluster.initial_master_nodes=node-master,node1,node2
       - bootstrap.memory_lock=true
       - cluster.name=littlehome-log
       - network.publish_host=192.168.1.105
   volumes:
    - /etc/localtime:/etc/localtime:ro
    - /var/lib/elasticsearch:/usr/share/elasticsearch/data
    - /var/lib/elasticsearch-backup:/var/lib/elasticsearch-backup
   ulimits:
     memlock:
       soft: -1
       hard: -1
     nofile:
       soft: 65536
       hard: 65536

   es-log-01:
   restart: always
   build:
     context: .
     dockerfile: ./compose/elasticsearch/Dockerfile
     args:
       - VERSION=${VERSION}
       - ELASTICSEARCH_NETWORK_HOST=${ELASTICSEARCH_NETWORK_HOST}
       - ELASTICSEARCH_PORT=${ELASTICSEARCH_PORT_SEARCH}
       - MEM=${MEM1}
       - ENV=${ENV}
   container_name: es-log-01
   network_mode: host
   environment:
       - node.name=node1
       - discovery.seed_hosts=node-master,node2
       - cluster.initial_master_nodes=node-master,node1,node2
       - bootstrap.memory_lock=true
       - cluster.name=littlehome-log
       - network.publish_host=192.168.1.123
   volumes:
    - /etc/localtime:/etc/localtime:ro
    - data-log1:/usr/share/elasticsearch/data
   ulimits:
     memlock:
       soft: -1
       hard: -1
     nofile:
       soft: 65536
       hard: 65536

最佳答案

您无需做任何特殊的事情即可利用Elasticsearch中的并行化优势。当您在集群中具有包含多个分片的索引时,Elasticsearch将尝试平衡集群中每个索引的主分片,并且当您进行查询时,它将把查询发送到保存每个分片的主副本的节点。然后,每个节点将对该分片执行查询,并将结果返回到协调节点,该节点执行任何排序或聚合并将结果集返回给客户端。

万一单个节点出现故障,使用负载平衡器是一个好主意,但是通常来说,除了每个索引具有多个分片之外,您无需执行任何操作。

关于apache-spark - Elasticsearch如何利用集群?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59583980/

相关文章:

python - Spark Python 错误 "FileNotFoundError: [WinError 2] The system cannot find the file specified"

apache-spark - 分区文本文件的 Spark 追加模式失败并显示 SaveMode.Append - IOException File already Exists

java - Spark 错误 : NoSuchMethodError: scala. Predef$.$conforms()Lscala/Predef$$less$colon$less

java - Elasticsearch:服务器状态503,Java IO异常

elasticsearch - 为什么 Elasticsearch 在浏览器中仅显示前50行(事件)?

python - 使用 PySpark UDF 时记录工作人员 ID

java - Elasticsearch 堆大小问题/内存不足问题

elasticsearch - Kubernetes 日志在 kibana 中拆分

elasticsearch - X-Pack和Logstash-没有输出到elasticsearch

elasticsearch - 如何从Elasticsearch中排除 “fingerprint”字段