ElasticSearch单机多节点7.x版本

注:本文在Es7.x版本单节点能顺利启动并使用情况下进行。

Es7.x官方文档集群相关

准备

  • 创建目录elasticsearch-colony并赋予es用户及用户组权限

    mkdir /usr/local/elasticsearch-colony

    chown -R es:es /usr/local/elasticsearch-colony/

  • 切换到es用户

    su - es

  • 使用cp file1 file2 -a命令将Es解压版的文件夹复制三份至之前准备的目录中

    1.主节点

    cp /usr/local/elasticsearch-7.5.1 /usr/local/elasticsearch-colony/elasticsearch-7.5.1-master
    

    2.节点1

    cp /usr/local/elasticsearch-7.5.1 /usr/local/elasticsearch-colony/elasticsearch-7.5.1-node1
    

    3.节点2

    扫描二维码关注公众号,回复: 9635166 查看本文章
    cp /usr/local/elasticsearch-7.5.1 /usr/local/elasticsearch-colony/elasticsearch-7.5.1-node2
    
  • 切换到elasticsearch-colony下使用mkdir directory...创建master(主节点),node-1(节点1),node-2(节点2)三个目录并在三个目录下分别创建data和logs文件夹

    mkdir -p  master/data master/logs node-1/data node-1/logs node-2/data node-2/logs
    

    1.data:存放es中的数据

    2.logs:存放es的日志

    如果使用解压版(.zip)(.tar.gz)的es,解压之后data和logs会默认保存在$ES_HOME的子文件夹里,如果将这些重要文件保存在默认位置,在升级到新版本的es时,很有可能将其删除。所以在生产环境中使用时,要记得更改data和log的位置。

修改每个节点的配置文件

  • es主要有三个配置文件

    1.elasticsearch.yml 用于配置Elasticsearch

    2.jvm.options 用于配置Elasticsearch JVM设置

    3.log4j2.properties 用于配置Elasticsearch日志记录

  • 主要需要修改es的子目录中config目录下的elasticsearch.yml文件,分别修改三个节点的配置文件,下面是主节点的修改:

    vi /usr/local/elasticsearch-colony/elasticsearch-7.5.1-master/config/elasticsearch.yml
    

    相关配置如下:

    1.指定集群的名称,如果想让节点在同一集群上,这个值要设为一致

    cluster.name: Avengers

    Elasticsearch集群是一组具有相同cluster.name属性的节点,启动es实例时,就是在启动节点(node),当节点加入或离开群集时,群集会自动重新组织以在可用节点之间平均分配数据。

    2.指定节点的名称,保证节点的唯一性,这个值不能相同

    node.name: ironman

    3.指定节点为主节点,默认为true,默认集群中第一个节点为master,如果挂了会重新选举master

    node.master: true

    4.是否允许节点存储数据,默认为true

    node.data: true

    5.指定存放data和logs的目录

    path.data: /usr/local/elasticsearch-colony/master/data

    path.logs: /usr/local/elasticsearch-colony/master/logs

    6.指定网关地址,指向当前设备的ip

    network.host: 0.0.0.0

    7.指定http访问的端口,默认为9200端口

    http.port: 9200

    默认情况下es会自动选取9200到9299之间的端口,如果启动时9200被占用会自动使用9201以此类推,为了更好的管理还是手动配置一下。

    8.指定tcp访问端口,供es内部通信使用,默认为9300端口,默认时的机制与http.port相同

    transport.tcp.port: 9300

    9.手动指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算

    cluster.initial_master_nodes: ["ironman"]

  • 两个从节点的修改主要列举和主节点不同配置的地方:

    相关配置如下:

    1.是否为主节点

    node.master: false

    2.设置集群发现,应包含集群中所有master节点

    discovery.seed_hosts: ["127.0.0.1:9300"]

    3.无需设置cluster.initial_master_nodes

    4.http.port,transport.tcp.port不能重复

    5.path.datapath.logs分别指向各自的文件夹

    在查阅资料过程中发现很多地方都提到了这一个配置discovery.zen.ping.unicast.hosts通过查阅官方文档发现在7.x的版本中与集群相关的配置主要就是上面配置的cluster.initial_master_nodesdiscovery.seed_hosts。其中前者需要在所有可以成为主节点的节点配置中配置,并且同一集群中该配置中的列表必须相同,且列表中的节点名称必须与node.name配置的名称相同。后者则是为其他节点提供符合主节点资格的节点列表。

启动

  • 分别启动三个es实例,在三个节点文件夹的bin目录下

    1../elasticsearch -d后台启动

    2.启动完成可以通过ps -ef | grep elastic命令查看进程

    3.通过curl -X GET 127.0.0.1:9200/_cat/health?v命令查看Es节点的情况若status为green,则说明es集群启动成功。

发布了1 篇原创文章 · 获赞 3 · 访问量 43

猜你喜欢

转载自blog.csdn.net/qq_39210750/article/details/104693589