elasticSearch 安装及使用采坑
1、下载地址:https://www.elastic.co/cn/downloads/elasticsearch
本文中为:LINUX X86_64 的7.9.3
2、解压
tar -zxf elasticsearch-7.9.3.tar.gz cd elasticsearch-7.9.3/bin ./elasticsearch
注意:不要用root账号启动,会报错,报错信息明确提示不能用root账号启,
加新的账号别忘了权限啊
如果想es作为后台守护进程,那么启动的命令后面 加 -d
3、执行命令:
curl http://localhost:9200/
如果返回的下面这样,说明安装成功:
{ "name" : "localhost.localdomain", "cluster_name" : "elasticsearch", "cluster_uuid" : "g9uoXKQhRSCeMBAurwZOhw", "version" : { "number" : "7.9.3", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868", "build_date" : "2020-10-16T10:36:16.141335Z", "build_snapshot" : false, "lucene_version" : "8.6.2", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
重点几个关注下即可:
- name : 默认启动的时候指定了 ES 实例名称,name 为 localhost.localdomain
- cluster_name : 默认名为 elasticsearch
- version :版本信息
查看集群健康状态:
命令:curl -X GET "localhost:9200/_cat/health?v"
返回:
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1604908400 07:53:20 elasticsearch green 1 1 0 0 0 0 0 0 - 100.0%
我们可以看到,我们命名为“elasticsearch”的集群现在是green状态。
无论何时我们请求集群健康时,我们会得到green, yellow, 或者 red 这三种状态。
- Green : everything is good(一切都很好)(所有功能正常)
- Yellow : 所有数据都是可用的,但有些副本还没有分配(所有功能正常)
- Red : 有些数据不可用(部分功能正常)
从上面的响应中我们可以看到,集群"elasticsearch"总共有1个节点,0个分片因为还没有数据。
下面看一下集群的节点列表:
同样通过命令 curl http://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 63 85 1 0.01 0.05 0.10 dilmrt * localhost.localdomain
可以看到集群中只有一个节点
那就捯饬几个出来
单机多个 ES 实例,形成一个 ES 单机伪集群,启动脚本如下:
bin/elasticsearch -E node.name=node01 -E cluster.name=bysocket_es_cluster -E path.data=node01_data -d bin/elasticsearch -E node.name=node02 -E cluster.name=bysocket_es_cluster -E path.data=node02_data -d bin/elasticsearch -E node.name=node03 -E cluster.name=bysocket_es_cluster -E path.data=node03_data -d
命令简单解释如下:
- node.name : ES 节点名称,即实例名
- cluster.name : ES 集群名称
- path.data : 指定了存储文档数据目录
命令 curl http://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 8 77 98 4.76 2.06 2.43 dilmrt * node01 127.0.0.1 22 77 93 4.76 2.06 2.43 dilmrt - node03 127.0.0.1 17 77 96 4.76 2.06 2.43 dilmrt - node02
可以看到启动情况:node01 为当前 master 节点
如何关闭集群中的 ES 实例,可以使用简单的命令实现:
ps | grep elasticsearch
kill -9 pid
就是一个个kill 掉 es的进程
关于es的插件
插件是用来增强 Elasticsearch 功能的方法,分为 核心插件(官方) & 社区插件。
安装 analysis-icu ICU 分析插件,命令如下:
sudo bin/elasticsearch-plugin install analysis-icu
查看已安装的插件,命令如下:
bin/elasticsearch-plugin list
删除已安装的插件,命令如下:
sudo bin/elasticsearch-plugin remove analysis-icu
第一次安装
analysis-icu 插件失败了,报错:
ERROR: SHA-512 mismatch, expected 86872513926e。。。。 but got 34af8defd。。。。
然后专门去搜了一下 插件,,,发现一个博客上写了 :
注意:es的插件安装需要使用root权限,因为会涉及到一些文件写入的权限操作。
换到root安装,先提示要卸载,因为刚才报错的操作,其实下载了或者安装了部分(具体不清楚),
根据提示 用root,先卸载,再安装 就成功了,
有点不理解,es启动不能用root,装插件必须用 root,不知道后面使用会不会有权限问题,,
参考:https://www.cnblogs.com/Alandre/p/11386178.html、https://www.cnblogs.com/cjsblog/p/9439331.html