《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署—— 3.4.1.1.安装Elasticsearch(本地及docker)(7) https://developer.aliyun.com/article/1231506
tar 和 rpm 包安装方式
登陆每个 ES 节点,并修改配置文件并和其他节点组成集群。
l tar 包安装的配置文件 vi /usr/local/elasticsearch/config/elasticsearch.yml
l rpm 包安装的配置文件 vi /etc/elasticsearch/elasticsearch.yml
这里的 network.host 也可以配置为 _site_方便在节点批量初始化时进行配置。
# IP: 192.168.10.221 cluster.name: es-cluster node.name: node-221 network.host: 192.168.10.221 http.port: 9200 discovery.seed_hosts: ["192.168.10.221", "192.168.10.222"] cluster.initial_master_nodes: ["192.168.10.221"] # IP: 192.168.10.221 cluster.name: es-cluster node.name: node-221 network.host: 192.168.10.221 http.port: 9200 discovery.seed_hosts: ["192.168.10.221", "192.168.10.222"] cluster.initial_master_nodes: ["192.168.10.221"]
节点启动
systemctl start elasticsearch
Docker 启动的配置方式
纯靠 docker run 命令方式启动 ES 集群会比较麻烦,建议通过 docker-compose 方式启动。
示例 docker-compose.yml 文件。
version: "2.2" networks: bigdata: driver: bridge volumes: es-data-01: driver: local es-data-02: driver: local services: es-node-01: image: elasticsearch:7.10.1 restart: always container_name: es-node-01 environment: - node.name=es-node-01 - cluster.name=docker-cluster - cluster.initial_master_nodes=es-node-01 - discovery.seed_hosts=es-node-01,es-node-02 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - es-data-01:/usr/share/elasticsearch/data ports: - 9200:9200 - 9300:9300 networks: - bigdata es-node-02: image: elasticsearch:7.10.1 restart: always container_name: es-node-02 environment: - node.name=es-node-02 - cluster.name=docker-cluster - cluster.initial_master_nodes=es-node-01 - discovery.seed_hosts=es-node-01,es-node-02 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - es-data-02:/usr/share/elasticsearch/data networks: - bigdata
或者也可以在宿主机维护每个节点自己的 elasticsearch.yml 文件,并通过 -v $PATH/to/elasticsearch.yml:/usr/local/elasticsearch/config/elasticsearch.yml 的方式把这些配置文件映射到 docker container 里面进行使用。
这里需要注意在一个宿主机上,可以开放监听同一个端口的 container 只能有一个,所以如果需要整个集群里所有的节点都能监听/支持访问的话,需要把他们的 9200/9300 端口映射成宿主机里不同的端口,或者在 docker 环境中启动一个类似 NGINX 的网关来代理所有的节点。
小结
本节对 ES 集群组建流程进行了简要描述,并列举了通过多种方式对 ES 进行集群化配置。
《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署—— 3.4.1.1.安装Elasticsearch(本地及docker)(9) https://developer.aliyun.com/article/1231504