天天看点

elasticSearch 单机(mac)伪分布式集群搭建

由于用的是mac本, 所以索性逃课 用brew装了es。 (版本是6.8.*), 7还没有更新上来。 当然用docker会好一些。

1. 找到安装地址和配置文件路径

1.1 安装地址

brew默认安装目录是/usr/local/Cellar

也可以利用命令 查看具体应用的安装地址

brew list elasticsearch
           

结果:

elasticSearch 单机(mac)伪分布式集群搭建
1.2 配置文件地址查看:
brew info elasticsearch
           
elasticSearch 单机(mac)伪分布式集群搭建

该目录有如下几个文件(由于后缀不是常用的 所以都是 普通文件(-)类型

elasticSearch 单机(mac)伪分布式集群搭建
  • elasticsearch.keystore 是一个可执行文件, 主要用来搞一些安全类 认证类的配置。
  • jvm.options 主要是设置堆大小、gc类的配置, 毕竟底层的luence是java写的, 也可以在启动时候通过添加-Xmx -Xms参数配置, 后期还可以动态请求接口。 (ps: 官方推荐堆不要大于32g, 大于32g会使得jvm不在压缩指针, 从而引发一些问题。 并且 给es的内存不要超过该机器的一半(luence也需要内存的), 满足以上两个条件的情况下 越大越好。。 毕竟es的速度靠的是内存 内存过小的话 没准还不如直接查数据库来的快)
  • log4j2.properties 一看就知道是日志相关配置
  • elasticsearch.yml 重点项目, elastic自己的配置, 也是主要打叫道的文件

2. 配置文件

伪集群 那么理论上至少是3台(2台也行。。不过2台的容错率和3台是一样的。。 涉及到主从选举之类的知识)

配置文件只列出了基础的比较重要的项目 ( 还有其他配置 比如配置分片数量index.number_of_shards, 索引备份分片数量index.number_of_replicas等等。。)

node.name: {node-name} # 节点名称
 node.master: true # 只有为true 才能被选举为master
 node.data: true # 是否存储数据
 http.port: 9200 # 对外提供的端口
 transport.tcp.port: 9300 # 集群交流的端口 (类似于redis 端口号+1w的总线通信端口)
 # 扫描的地址(带端口, 默认是9200)
 discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
 # 组成的master数
 discovery.zen.minimum_master_nodes: 1
 # 集群名称 -- 主从务必要保证一致
 cluster.name: elasticsearch_icymoon
 # 本地最多启动的node数
 node.max_local_storage_nodes: 3
           

3.启动伪集群

  • 之前在查资料的时候 看到许多说 复制一个配置文件然后启动的时候加 -Epath.config=…的, 我个人这个版本是不支持的, 会报错(报unknown path.config之类的, 说明这个版本不支持path.config这个配置)。 导致踩了许多坑。 最后还是手动搞的参数命令。
  • 开启master node:
/usr/local/Cellar/elasticsearch/6.8.4/bin/elasticsearch
或者 -E 自定义参数配置
 /usr/local/Cellar/elasticsearch/6.8.4/bin/elasticsearch -E node.name=master -E cluster.name=elasticsearch_icymoon -E path.data=/usr/local/var/lib/elasticsearch/ -E path.logs=/usr/local/var/log/elasticsearch/ -E http.port=9200 -E transport.tcp.port=9300 -E node.master=true -E node.max_local_storage_nodes=3
           
  • 开启slave-node:
/usr/local/Cellar/elasticsearch/6.8.4/bin/elasticsearch -E node.name=slave-1 -E cluster.name=elasticsearch_icymoon -E path.data=/usr/local/var/lib/elasticsearch/ -E path.logs=/usr/local/var/log/elasticsearch/ -E http.port=9201 -E transport.tcp.port=9301 -E node.master=false -E discovery.zen.ping.unicast.hosts=127.0.0.1:9300,127.0.0.1:9301,127.0.0.1:9302
           

开启第二个salve。。省略

4. 查看集群状态

我自己的http.port的端口配置的9200(默认也是9200), 所以直接访问就好了.

输入地址

http://localhost:9200/_cluster/health?level=indices 
           

看到status : 为 green 说明就ok了。 可以愉快的进行玩耍了。

继续阅读