最近在做的项目中使用到了Elasticsearch,在公司有运维同事安装好了服务可供开发测试使用,但是我在家想要测试却发现没有服务可用,思来想去就自己搭建一个吧,拿出满是灰尘的笔记本,开始在windows系统下从下载安装到集群的搭建。
从 官网下载 windows版本,我选择的版本是7.17.12,点击右边的 Download 按钮
选择 WINDOWS 进行下载,文件大小大概是 298M
下载完成后将压缩包解压,我存放在D盘跟目录下
如果已经配置了jdk8以上可以忽略,如果没有配置,按照下面一步一步配置
打开设置,找到高级系统设置,点击环境设置
点击系统变量下面的新建按钮,添加变量名:ES_JAVA_HOME,变量值是es目录下的jdk目录(根据自己存放的es目录填写)
找到es根目录下的config目录,该目录是存放es配置的地方,进入jvm.options.d目录,创建一个文件jvm.options(文件名称随意,但是后缀必须是.options,不然无效),文件内容:
-Xms512m
-Xmx512m
我笔记本电脑的内存比较小,内存大小只有4G,想要搭建集群不设置小点是不可能搭建起来的
打开cmd,定位到我们的es根目录,执行启动命令
.\bin\elasticsearch.bat
关注cmd的控制台,如果启动成功会有这段日志打印出来:
[2023-08-07T21:12:28,966][INFO ][o.e.c.r.a.AllocationService] [DESKTOP-ITBV32J] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[.ds-.logs-deprecation.elasticsearch-default-2023.08.07-000001][0]]]).
打开浏览器,输入 http://localhost:9200/
回到我们的es目录下,发现多了 data 和 logs两个文件夹,一个是存放数据,另外一个是存放日志
windows下的关闭直接关闭cmd窗口或者crtl+c组合命令即可
(停止前面的单节点启动)
需求:创建一个集群c-1,包含三个节点,在es的根目录下按照顺序分别启动三个cmd窗口
执行
.\bin\elasticsearch.bat -E cluster.name=c-1 -E node.name=n1 -E path.data=.\tmp\c1\data1 -E path.logs=.\tmp\c1\log-1 -E http.port=9201 -E transport.tcp.port=9301 -E discovery.seed_hosts="127.0.0.1:9301,127.0.0.1:9302,127.0.0.1:9303" -E cluster.initial_master_nodes="n1,n2,n3"
.\bin\elasticsearch.bat -E cluster.name=c-1 -E node.name=n2 -E path.data=.\tmp\c1\data2 -E path.logs=.\tmp\c1\log-2 -E http.port=9202 -E transport.tcp.port=9302 -E discovery.seed_hosts="127.0.0.1:9301,127.0.0.1:9302,127.0.0.1:9303" -E cluster.initial_master_nodes="n1,n2,n3"
.\bin\elasticsearch.bat -E cluster.name=c-1 -E node.name=n3 -E path.data=.\tmp\c1\data3 -E path.logs=.\tmp\c1\log-3 -E http.port=9203 -E transport.tcp.port=9303 -E discovery.seed_hosts="127.0.0.1:9301,127.0.0.1:9302,127.0.0.1:9303" -E cluster.initial_master_nodes="n1,n2,n3"
命令解析:
_cat
命令是Elasticsearch提供的一组用于查看集群状态和信息的API端点。这些API端点返回以易读的表格形式表示的文本数据,所有的_cat命令可以通过浏览器访问localhost:9201/_cat 获取
下面对每个_cat命令的用途进行详细解释:
/_cat/allocation: 显示每个节点上分配的索引存储情况,包括节点名称、存储的索引数量、存储的数据量等。
/_cat/shards: 列出每个索引的分片详细信息,包括索引名称、分片编号、状态、节点、分片大小等。
/_cat/shards/{index}: 显示特定索引的分片详细信息,通过替换{index}为相应的索引名称来查看。
/_cat/master: 显示当前被选为主节点的节点信息。
/_cat/nodes: 列出集群中所有节点的信息,包括节点名称、IP地址、版本号等。
/_cat/tasks: 显示正在进行或排队中的任务的详细信息,如索引、操作类型、节点等。
/_cat/indices: 列出所有索引的基本信息,包括名称、文档数量、存储大小等。
/_cat/indices/{index}: 显示特定索引的详细信息,通过替换{index}为相应的索引名称来查看。
/_cat/segments: 显示每个索引分片的段(segment)信息,包括段ID、文档数量、存储大小等。
/_cat/segments/{index}: 显示特定索引的段信息,通过替换{index}为相应的索引名称来查看。
/_cat/count: 显示集群中所有索引的文档数量总和。
/_cat/count/{index}: 显示特定索引的文档数量,通过替换{index}为相应的索引名称来查看。
/_cat/recovery: 显示每个索引分片的恢复状态。
/_cat/recovery/{index}: 显示特定索引分片的恢复状态,通过替换{index}为相应的索引名称来查看。
/_cat/health: 显示集群的健康状态,包括主分片数量、副本分片数量、节点数量等。
/_cat/pending_tasks: 显示等待执行的任务信息。
/_cat/aliases: 列出集群中所有索引别名的信息。
/_cat/aliases/{alias}: 显示特定索引别名的信息,通过替换{alias}为相应的别名来查看。
/_cat/thread_pool: 显示集群中所有线程池的信息,包括线程池名称、活动线程数、排队任务数等。
/_cat/thread_pool/{thread_pools}: 显示特定线程池的信息,通过替换{thread_pools}为相应的线程池名称来查看。
/_cat/plugins: 显示已安装插件的信息。
/_cat/fielddata: 显示每个字段的缓存大小。
/_cat/fielddata/{fields}: 显示特定字段的缓存大小,通过替换{fields}为相应的字段名称来查看。
/_cat/nodeattrs: 显示节点的自定义属性信息。
/_cat/repositories: 显示注册的备份存储库。
/_cat/snapshots/{repository}: 显示特定备份存储库中的快照信息,通过替换{repository}为相应的存储库名称来查看。
/_cat/templates: 显示索引模板信息。
/_cat/ml/anomaly_detectors: 显示所有机器学习异常检测器的信息。
/_cat/ml/anomaly_detectors/{job_id}: 显示特定机器学习异常检测器的信息,通过替换{job_id}为相应的作业ID来查看。
/_cat/ml/trained_models: 显示所有训练模型的信息。
/_cat/ml/trained_models/{model_id}: 显示特定训练模型的信息,通过替换{model_id}为相应的模型ID来查看。
/_cat/ml/datafeeds: 显示所有数据源的信息。
/_cat/ml/datafeeds/{datafeed_id}: 显示特定数据源的信息,通过替换{datafeed_id}为相应的数据源ID来查看。
/_cat/ml/data_frame/analytics: 显示所有数据帧分析的信息。
/_cat/ml/data_frame/analytics/{id}: 显示特定数据帧分析的信息,通过替换{id}为相应的ID来查看。
/_cat/transforms: 显示所有转换任务的信息。
/_cat/transforms/{transform_id}: 显示特定转换任务的信息,通过替换{transform_id}为相应的任务ID来查看。
至此,我们详细介绍了在windows系统下Elasticsearch的下载、环境装备、单机配置和集群启动等关键步骤,并结合图文的介绍与校验,从而成功的启动了集群,并介绍了Elasticsearch的_cat命令,用于查看集群状态和信息。希望通过本文,可以帮你成功安装配置Elasticsearch集群。