Elasticsearch 的安装与启动
1.1 下载 Elasticsearch 7.6.0
下载地址:https://www.elastic.co/cn/downloads/elasticsearch
下载对应需要的 ES 。我这边是 Linux 的系统。另外 ES 支持 Docker 方式启动。另外,ES 7.x 不需要本地 JDK 环境支持:
- ES 5,安装需要 JDK 8 以上
- ES 6.5,安装需要 JDK 11 以上
- ES 7.2.1,内置了 JDK 12
1.2 启动 Elasticsearch 7.6.0
[root@localhost ~]# su elsearch # 切换用户 [elsearch@localhost ~]# cd elasticsearch-7.6.0/ [elsearch@localhost ~]# bin/elasticsearch # 正常启动命令 [elsearch@localhost ~]# bin/elasticsearch -d # 守护进程启动
1.3 验证 Elasticsearch 7.6.0 是否启动成功
验证方式1:打开浏览器,输入 http://localhost:9200/ 地址,然后可以得到下面的信息:
验证方式2:命令行输入:curl 127.0.0.1:9200。或者输入:curl localhost:9200
{ "name" : "VM_0_9_centos", # 默认启动的时候指定了 ES 实例名称. "cluster_name" : "elasticsearch", # 默认名为 elasticsearch "cluster_uuid" : "noTo0yvOQBeMtZXh9D0frQ", "version" : { # 版本信息 "number" : "7.6.0", ...... }, "tagline" : "You Know, for Search" }
打开浏览器,通过 http://localhost:9200/_cat/nodes?v 地址,可以看到当前节点信息,如下:
命令行输入:curl 127.0.0.1:9200/_cat/nodes?v。或者输入:curl localhost:9200/_cat/nodes?v。
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name 127.0.0.1 45 83 1 0.00 0.01 0.08 dilm * VM_0_9_centos
1.4 设置 Elasticsearch 7.6.0 可以外网访问
1. elasticsearch默认端口9200,需要开启服务器端口才可以外网访问。
2. 修改elasticsearch.yml配置文件,将ip改为0.0.0.0,如果需要特定ip可以访问,可以设定为固定的ip。
network.host: 0.0.0.0
3.启动elasticsearch,发现无法启动会出现报错信息。
ERROR: [2] bootstrap checks failed [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] [2]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
错误1解决:修改 /etc/sysctl.conf 配置文件,添加一行配置:vm.max_map_count=360000
错误2解决:修改elasticsearch.yml配置文件,放开注释即可:cluster.initial_master_nodes: ["node-1", "node-2"]
Elasticsearch 的配置
1. 配置文件位于 /elasticsearch-7.6.0/config 目录下面
- elasticsearch.yml es的相关配置
- jvm.options jvm的相关参数(内存大小等)
- log4j2.properties 日志相关配置
2. elasticsearch.yml关键配置说明
# ---------------------------------- Cluster ----------------------------------- cluster.name: my-application ES集群名称,以此作为是否同一集群的判断条件 # ----------------------------------- Node ------------------------------------- node.name: node-1 ES节点名称,以此作为集群中不同节点的区分条件,即实例名。 # ----------------------------------- Paths ------------------------------------ path.data: /path/to/data 数据存储地址,指定了存储文档数据目录 path.logs: /path/to/logs 日志存储地址 # ---------------------------------- Network ----------------------------------- network.host: 127.0.0.1 网络地址和端口,用于 http 和 transport 服务使用 http.port: 9200
3. elasticsearch的两种模式:Development 与 Production 模式说明:
- 以 transport 的地址是否绑定在 localhost 为标准判断 network.host。
- Development 模式下在启动时会以warning的方式提示配置检查异常。
- Production 模式下在启动时会以error的方式提示配置检查异常并退出。
4. 参数修改的第二种方式
[elsearch@localhost ~]# bin/elasticsearch -Ehttp.port=19200
Elasticsearch 本地启动集群的方式:即单机集群多个 ES 实例
1. 单机多个 ES 实例,形成一个 ES 单机伪集群,启动脚本如下:
[elsearch@localhost ~]# bin/elasticsearch [elsearch@localhost ~]# bin/elasticsearch -E http.port=7200 -E path.data=node2 [elsearch@localhost ~]# bin/elasticsearch -E http.port=8200 -E path.data=node3 # [elsearch@localhost ~]# bin/elasticsearch -E node.name=node01 -E cluster.name=bysocket_es_cluster -E path.data=node01_data -d # [elsearch@localhost ~]# bin/elasticsearch -E node.name=node02 -E cluster.name=bysocket_es_cluster -E path.data=node02_data -d
2. 查看多个 ES 实例启动情况
打开浏览器,输入 http://localhost:9200/_cat/nodes?v 地址,可以看到启动情况:master的值为*,则为当前 master 节点。
相关查看地址:http://IP:3120/_cat/nodes, http://IP:3120/_cat/nodes?v, http://IP:3120/_cluster/stats。
3. 关闭集群中的 ES 实例,可以使用简单的命令实现
[root@localhost ~]# ps -ef | grep elasticsearch # 找到elasticsearch线程 [root@localhost ~]# kill -9 pid # 杀死elasticsearch线程