天天看点

(第一弹)Elasticsearch-----ElasticSearch集群的安装7.X

    本文以及后面的系列均已ElasticSearch7.X的版本讲解,欢迎支持!

    环境说明: 

            centos7   、  elasticsearch7.2.0 、 同一个机子安装3个节点 、 7.x版本自带JDK

一、下载并解压

         下载地址:https://www.elastic.co/cn/downloads/elasticsearch

二、配置

    vim config/elasticsearch.yml

# 集群名称
cluster.name: geektime
# 是否锁住内存
bootstrap.memory_lock: false
# 连接地址
network.host: 192.168.2.101
# 候选主节点列表
discovery.seed_hosts: ["192.168.2.101:9301","192.168.2.101:9302","192.168.2.101:9303"]
# 初始化集群主节点列表
cluster.initial_master_nodes: ["node1","node2","node3"]
# 开启跨域访问支持,默认为false
http.cors.enabled: true
# # 跨域访问允许的域名地址,(允许所有域名)以上使用正则
http.cors.allow-origin: "*"
           

   jvm配置

# 默认都是1g
-Xms2g
-Xmx2g
           

三、启动集群

# 需要用非root用户启动

#创建数据目录和日志目录
cd data; mkdir data1 data2 data3
cd logs; mkdir logs1 logs2 logs3

# 启动(同一台机子)
bin/elasticsearch -E node.name=node1 -E cluster.name=geektime -E path.data=data/data1 -E path.logs=logs/logs1 -E http.port=9201 -E transport.tcp.port=9301 -E node.master=true -E node.data=true -d
bin/elasticsearch -E node.name=node2 -E cluster.name=geektime -E path.data=data/data2 -E path.logs=logs/logs2 -E http.port=9202 -E transport.tcp.port=9302 -E node.master=true -E node.data=false -d
bin/elasticsearch -E node.name=node3 -E cluster.name=geektime -E path.data=data/data3 -E path.logs=logs/logs3 -E http.port=9203 -E transport.tcp.port=9303 -E node.master=true -E node.data=false -d
           

四、访问

    http://192.168.2.101:9201/_cat/nodes?v

(第一弹)Elasticsearch-----ElasticSearch集群的安装7.X

    http://192.168.2.101:9201/_cluster/health?pretty

(第一弹)Elasticsearch-----ElasticSearch集群的安装7.X

配置详解:

      1.network.host

              network.host 兼有publish_host和bind_host两者的功能。

              network.publish_host:是elasticsearch与其他集群机器通信的地址

              network.bind_host:是设置控制Elasticsearch侦听的网络接口的地址。

注意:network.host设置为0.0.0.0 , 即将绑定到所有网络接口, 内外网都可以访问
     network.host设置为内网ip, 即只能内网访问
     network.host设置为外网ip, 即只能外网访问 
     network.host设置为内网127.0.0.1, 即只能本机访问(集群通信也只能本机)         
           
publish_host和bind_host应用场景:
   场景:
      我在数据中心有一个本地网络,我运行由不同节点组成的elasticsearch集群。每个机器都有两个IP地址,一个用于从外部计算机到达,另一个用于本地连接到同一网络中的其他计算机。
   解释:
      内部ip(eth1)用于让不同的elasticsearch节点相互通信,发现等
      外部ip地址(eth0)是​​我的web应用程序(在另一个网络中)发出请求的地址
      这样,我的Web应用程序位于另一个网络中,可以从bind_host地址访问ES群集,而elasticsearch使用publish_host与集群其他节点通信,相当于内外网都可以正常访问了。
   注意(踩坑):
      如果采用云主机,因云主机并非真实的两张物理网卡绑定的IP,当配置成内网IP时,外网也可以访问,因为访问外网IP,会自动跳转到内网IP,固其实也是访问内网IP
           

       2.discovery.seed_hosts

      elasticsearch 7.x新名称: discovery.seed_hosts

      elasticsearch 5.x 6.x  :      discovery.zen.ping.unicast.hosts

      二者含义作用一模一样,只是名字改变

      作用: 候选主节点列表 

      注意:

          1、在集群启动前应该配置好,配置为主节点的机子,并非数据节点/协调节点。

                若只启动了一个节点(即是主节点也是数据节点),但是该列表配置了3个节点,会报错,无法选主。

          2、设置为主节点的节点(即node.master=true)才有机会成为主节点,才能配置在该列表中

          3、因选举原因,主节点应配置为奇数个,才能自动选主

       3.cluster.initial_master_nodes

       elasticsearch 7.x新名称: cluster.initial_master_nodes

      elasticsearch 5.x 6.x  :       cluster.min_master_count

      作用:

         当第一次启动全新的Elasticsearch集群时,会出现一个集群引导步骤,该步骤确定在第一次选举中计票的主要合格节点集。此配置的注意点跟discovery.seed_hosts一致。

       4.允许跨域支持

      # 开启跨域访问支持,默认为false

      http.cors.enabled: true

      # # 跨域访问允许的域名地址,(允许所有域名)以上使用正则

      http.cors.allow-origin: "*"

       5. -E 参数

    在集群启动时,加 -E 参数,会覆盖 elasticsearch.yml中的配置。在同一机子启动多节点时方便。

      6. 节点类型查看

(第一弹)Elasticsearch-----ElasticSearch集群的安装7.X

       node.role :   m代表候选主节点 , d代表数据节点 , i代表协调节点

       master:    带 * 部分为真正的主节点

继续阅读