Elasticsearch环境搭建

这篇具有很好参考价值的文章主要介绍了Elasticsearch环境搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文主要介绍在Linux 系统下搭建Elasticsearch运行环境相关内容. 受限于篇幅本次主要介绍elasticsearch 单集群单节点单实例、单集群单节点多实例、单集群多节点单实例 环境搭建。ES环境搭建概要参见脑图:

Elasticsearch环境搭建

内容说明:

本文内容同微信公众号【凡登】,关注不迷路,学习上高速,欢迎关注共同学习。

版本说明:

Linux CentOS 7.9 64 bitElasticsearch-7.13.4openjdk-16+36_linux-x64

目录

一、【单集群单节点单实例】

1、快速安装elasticsearch

2、elasticsearch配置

2.1、操作系统配置

2.2、elasticsearch配置

3、启动

二、【单集群单节点多实例】

1、快速安装elasticsearch

三、单集群多节点单实例

四、ES可视化环境搭建

1、Kibana环境搭建。

2、elasticsearch-head浏览器插件安装

五、可能出现问题:

1、jdk依赖问题

2、以root账户运行es异常

3、内存不足

4、数据锁定

4.1、删除data数据:

4.2、配置path.data、path.logs路径

六、参考文档


一、【单集群单节点单实例】

1、快速安装elasticsearch

1、下载:[root@VM-0-9-centos ~]# cd /apps[root@VM-0-9-centos apps]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.4-linux-x86_64.tar.gz
2、解压[root@VM-0-9-centos apps]# tar -zxvf elasticsearch-7.13.4-linux-x86_64.tar.gz # 目录结构如下:drwxr-xr-x  2 u_es root   4096 7月  15 2021 bindrwxr-xr-x  3 u_es root   4096 4月  11 13:31 configdrwxr-xr-x  9 u_es root   4096 7月  15 2021 jdkdrwxr-xr-x  3 u_es root   4096 7月  15 2021 lib-rw-r--r--  1 u_es root   3860 7月  15 2021 LICENSE.txtdrwxr-xr-x  2 u_es root   4096 4月  11 18:36 logsdrwxr-xr-x 59 u_es root   4096 7月  15 2021 modules-rw-r--r--  1 u_es root 594150 7月  15 2021 NOTICE.txtdrwxr-xr-x  2 u_es root   4096 7月  15 2021 plugins-rw-r--r--  1 u_es root   2710 7月  15 2021 README.asciidoc
3、启动#切换到u_es账户(详情参见下文创建es用户)[root@VM-0-9-centos apps]# su u_es# 非后台启动(ctrl + c 结束当前运行es实例)[u_es@VM-0-9-centos apps]$ /apps/elasticsearch-7.13.4/bin/elasticsearch
4、检查是否启动# 重启开启一个会话,验证[root@VM-0-9-centos ~]# curl -i http://localhost:9200#出现如下信息,即启动成功

Elasticsearch环境搭建

5、以后台方式启动[u_es@VM-0-9-centos apps]$ /apps/elasticsearch-7.13.4/bin/elasticsearch -d 
6、关闭后台运行的es实例# 查看es进程pid[u_es@VM-0-9-centos apps]$ ps -ef|grep elasticsearch # 干掉pid进程[u_es@VM-0-9-centos apps]$ kill -9 24044

上述快速安装是es默认安装,开箱即用,适用于初学简单的环境搭建,但距离实际生产环境存在一些差距,比如:集群、节点名称,ip、端口绑定,集群发现,文件描述符、内存交换等问题。解决方法参见下文。

2、elasticsearch配置

2.1、操作系统配置

a) 内存相关配置/etc/sysctl.conf

[root@VM-0-9-centos ~]# vim /etc/sysctl.conf # elasticsearch config start# 禁止内存与硬盘交换vm.swappiness=1
# 设置虚拟内存大小# Elasticsearch使用了 NioFs(非阻塞文件系统)和 MMapFs(内存映射文件系统)。# 配置最大映射数量,以便有足够的虚拟内存可用于mmapped文件vm.max_map_count=262144
# 执行sysctl -p 使配置生效[root@VM-0-9-centos /]# sysctl -p#响应如下:vm.swappiness = 1vm.max_map_count = 262144

b) 文件句柄数配置/etc/security/limits.conf

[root@VM-0-9-centos ~]# vim /etc/security/limits.conf # 文件句柄数 (限制打开文件数100001)* soft nofile 100001* hard nofile 100002
# 进程线程数* soft nproc 65535* hard nproc 65535
# 内存锁定交换* soft memlock unlimited* hard memlock unlimited

c) 查看配置是否生效

[root@VM-0-9-centos ~]# ulimit -a#部分响应如下:max memory size         (kbytes, -m) unlimitedopen files                      (-n) 100001virtual memory          (kbytes, -v) unlimitedfile locks                      (-x) unlimited# 查看硬限制[u_es@VM-0-9-centos /]$ ulimit -Hu65535# 查看软限制[u_es@VM-0-9-centos /]$ ulimit -Su65535

2.2、elasticsearch实例配置

a) 配置elasticsearch.yml

[root@VM-0-9-centos ~]# vim /apps/elasticsearch-7.13.4/config/elasticsearch.yml cluster.name: es_cluster_single_node_demonode.name: ${HOSTNAME}-nodepath.data: /es/node_9200/datapath.logs: /es/node_9200/logsnetwork.host: 172.21.0.9http.port: 9200transport.port: 9300discovery.seed_hosts: ["172.21.0.9:9300"]cluster.initial_master_nodes: ["172.21.0.9:9300"]

重要配置项说明:

cluster.name:集群名称,同一ES集群名称必须相同;

node.name:集群中当前节点名称。建议命名较高区分度,如:当前节点hostname,hostip等

path.data:ES实例存放数据目录;注:建议生产环境数据目录与应用程序隔离

path.logs:ES实例存放日志目录;注:建议生产环境数据目录与应用程序隔离

network.host:当前实例绑定的ip地址,注:如未绑定则无法通过ip地址访问

http.port:ES实例对外提供REST服务的端口,默认9200

transport.port:ES实例内部通信端口,默认9300

discovery.seed_hosts:数组形式存储ES集群节点信息,多个以逗号分隔

cluster.initial_master_nodes:ES集群启动时,引导默认的master节点,注:仅在集群第一次启动时候此配置有效。

b) 配置es堆内存大小  jvm.options

[root@VM-0-9-centos ~]# vim /apps/elasticsearch-7.13.4/config/jvm.options-Xms2g-Xmx2g

如何配置:

堆内存大小 =  Min(机器内存/2,  32GB) ;

即:取当前环境内存的一半和32GB内存中最小值。但最大配置尽量不等于32G,略小于32G;原理参考文末链接引用;

3、启动

[root@VM-0-9-centos /]# mkdir -p /es/node_9200/data[root@VM-0-9-centos /]# mkdir -p /es/node_9200/logs[root@VM-0-9-centos /]# chown -R u_es /es
[u_es@VM-0-9-centos /]$ curl -i "http://172.21.0.9:9200"#响应如下:{  "name" : "VM-0-9-centos-node", // 自定义 ${HOSRTNAME}-node  "cluster_name" : "es_cluster_single_node_demo", // 自定义集群名称  "cluster_uuid" : "JNrB5g6uQI2A-E8tWAO1Pw",  "version" : {    "number" : "7.13.4",    "build_flavor" : "default",    "build_type" : "tar",    "build_hash" : "c5f60e894ca0c61cdbae4f5a686d9f08bcefc942",    "build_date" : "2021-07-14T18:33:36.673943207Z",    "build_snapshot" : false,    "lucene_version" : "8.8.2",    "minimum_wire_compatibility_version" : "6.8.0",    "minimum_index_compatibility_version" : "6.0.0-beta1"  },  "tagline" : "You Know, for Search"}

二、【单集群单节点多实例】

1、快速安装elasticsearch

本小节演示运行3个es实例 ,步骤如下:

1、es实例启动默认需要4G内存,为了避免启动后出现内存不足异常,配置es实例2G内存。​​​​​​​

# 配置文件:/apps/elasticsearch-7.13.4/config/vim jvm.options## -Xms4g## -Xmx4g修改为:(根据实际系统内存。注:不要留空格)-Xms2g-Xmx2g

2、为当前3个实例分别创建数据和日志目录如:/es/node_1/data、/es/node_1/logs并授权。​​​​​​​

# 创建/es/node_1/data、/es/node_1/logs 等目录[root@VM-0-5-centos /]# mkdir -p /es/node_1/data [root@VM-0-5-centos /]# mkdir -p /es/node_1/logs # 其他node_2、node_3目录创建省略  # 目录授权[root@VM-0-5-centos /]# chown -R u_es /es[root@VM-0-5-centos /]# su u_es

3、运行实例​​​​​​​

# 运行实例
[u_es@VM-0-9-centos apps]$ /apps/elasticsearch-7.13.4/bin/elasticsearch -d -Ecluster.name=my_cluster -Enode.name=node_1 -Epath.data=/es/node_1/data -Epath.logs=/es/node_1/logs
[u_es@VM-0-9-centos apps]$ /apps/elasticsearch-7.13.4/bin/elasticsearch -d -Ecluster.name=my_cluster -Enode.name=node_2 -Epath.data=/es/node_2/data -Epath.logs=/es/node_2/logs
[u_es@VM-0-9-centos apps]$ /apps/elasticsearch-7.13.4/bin/elasticsearch -d -Ecluster.name=my_cluster -Enode.name=node_3 -Epath.data=/es/node_3/data -Epath.logs=/es/node_3/logs

4、验证集群:​​​​​​​

[u_es@VM-0-5-centos /]$ curl -i http://localhost:9200{  "name" : "node_1",  "cluster_name" : "my_cluster",  "cluster_uuid" : "4XNVx25tRne-PHZ5FduFWA",  "version" : {    "number" : "7.13.4",    // 省略  },  "tagline" : "You Know, for Search"}[u_es@VM-0-5-centos /]$ curl -i http://localhost:9201{  "name" : "node_2",  "cluster_name" : "my_cluster",  "cluster_uuid" : "4XNVx25tRne-PHZ5FduFWA",  "version" : {    "number" : "7.13.4",    // 省略  },  "tagline" : "You Know, for Search"}[u_es@VM-0-5-centos /]$ curl -i http://localhost:9202{  "name" : "node_3",  "cluster_name" : "my_cluster",  "cluster_uuid" : "4XNVx25tRne-PHZ5FduFWA",  "version" : {    "number" : "7.13.4",    // 省略  },  "tagline" : "You Know, for Search"}

注:单机运行实例的默认端口为9200,当端口占用后,实例端口依次为9201,9202……可通过-E参数动态添加,如:-Ehttp.port=9201 指定端口。

三、单集群多节点单实例

上述【单集群单节点多实例】是以动态参数演示运行ES实例,测试时很方便,时间久了便容易忘记配置参数,且启动参数过长不易维护,实际生产环境以配置文件形式搭建集群,具体参见我的另一篇文章:Elasticsearch单集群多节点单实例环境搭建

四、ES可视化环境搭建

1、Kibana环境搭建。

参见我的另一篇文章:《Kibana环境搭建》

2、elasticsearch-head浏览器插件安装

浏览器扩展程序搜索 elasticsearch-head 并安装。

Elasticsearch环境搭建

效果图:

Elasticsearch环境搭建

五、可能出现问题:

1、jdk依赖问题

Elasticsearch环境搭建

解决:当前版本elasticsearch7.13.4依赖jdk16,安装jdk即可。如何知道当前es的依赖呢?参见文末的参考文档:【es依赖】、【jdk下载】​​​​​​​

[root@VM-0-5-centos apps]# mkdir java[root@VM-0-5-centos java]# wget https://download.java.net/openjdk/jdk16/ri/openjdk-16+36_linux-x64_bin.tar.gz
[root@VM-0-5-centos java]# tar -zxvf openjdk-16+36_linux-x64_bin.tar.gz 
[root@VM-0-5-centos java]# vi /etc/profile
#配置内容如下:
ES_JAVA_HOME=/apps/java/jdk-16
PATH=$ES_JAVA_HOME/bin:$PATH
CLASSPATH=.:$ES_JAVA_HOME/lib/dt.jar:$ES_JAVA_HOME/lib/tools.jar
export ES_JAVA_HOME
export PATH
export CLASSPATH

[root@VM-0-5-centos java]# source /etc/profile
# 检查是否安装成功
[root@VM-0-5-centos java]# java -version
openjdk version "16" 2021-03-16
OpenJDK Runtime Environment (build 16+36-2231)
OpenJDK 64-Bit Server VM (build 16+36-2231, mixed mode, sharing)

# 检查是否安装成功[root@VM-0-5-centos java]# java -versionopenjdk version "16" 2021-03-16OpenJDK Runtime Environment (build 16+36-2231)OpenJDK 64-Bit Server VM (build 16+36-2231, mixed mode, sharing)

2、以root账户运行es异常

Elasticsearch环境搭建

说明:es出于安全考虑在高版本中不允许以root账户启动.

解决:创建一个u_es账户管理es实例。如下:

#出于安全考虑,在es高本版中已经不允许使用root账户启动,因此在启动es之前,创建一个单独的账户;# 为es创建账户1、创建用户[root@VM-0-9-centos apps]# adduser u_es
2、设置密码[root@VM-0-9-centos apps]# passwd u_es 更改用户 u_es 的密码 。新的 密码:es123456无效的密码:密码未通过字典检查 - 过于简单化/系统化重新输入新的 密码:es123456passwd:所有的身份验证令牌已经成功更新。
3、授权u_es[root@VM-0-9-centos apps]# chown -R u_es /apps/

3、内存不足

Elasticsearch环境搭建

调整es实例运行内存

# 配置文件:/apps/elasticsearch-7.13.4/config/vim jvm.options## -Xms4g## -Xmx4g修改为:(根据实际系统内存,注:前后不要留空格)-Xms2g-Xmx2g

4、数据锁定

Elasticsearch环境搭建

原因:多个es实例共用一个数据存储路径,导致冲突。es默认生成一些系统数据(索引、日志等),如果不指定es实例的数据存储路径,当启动后,默认使用 ${ES_HOME}/data存储数据;

解决:删除 elasticsearch目录下的data目录即可,指定es实例的数据的存储路径, 并以非root账户启动。

操作如下:

4.1、删除data数据:

[root@VM-0-9-centos apps]# rm -rf /apps/elasticsearch-7.13.4/data

4.2、配置path.data、path.logs路径

# 配置文件/apps/elasticsearch-7.13.4/config/elasticsearch.ymlpath.data: /es01/datapath.logs: /es01/logs

六、参考文档:

1.es安装概览文档:

https://www.elastic.co/guide/en/elasticsearch/reference/7.13/install-elasticsearch.html

2.linux环境下安装es文档:

https://www.elastic.co/guide/en/elasticsearch/reference/7.13/targz.html

3.elasticsearch依赖信息,如:jdk,lucene

https://www.elastic.co/guide/en/elasticsearch/reference/7.13/dependencies-versions.html

4、open-jdk下载文档:

http://jdk.java.net/java-se-ri/16

5、es堆内存设置原理

https://blog.csdn.net/laoyang360/article/details/79998974

6、引用李猛、铭毅天下两位大佬相关文章资料文章来源地址https://www.toymoban.com/news/detail-415207.html

到了这里,关于Elasticsearch环境搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++项目——集群聊天服务器项目(一)项目介绍、环境搭建、Boost库安装、Muduo库安装、Linux与vscode配置

    今天开始想更新一个C++项目,实现一个 支持跨服务器通信、支持负载均衡的集群聊天服务器项目 。项目会应用muduo网络库、CMake编译、MySQL数据库、JSon序列化与反序列化、Redis消息订阅模式以及Nginx负载均衡功能。 有兴趣的宝可以跟我一起实操起来,巩固自己的C++学习吧~ 本项

    2024年04月14日
    浏览(62)
  • Docker(二)安装指南:主要介绍在 Linux 、Windows 10 和 macOS 上的安装

    作者主页: 正函数的个人主页 文章收录专栏: Docker 欢迎大家点赞 👍 收藏 ⭐ 加关注哦! Docker 分为 stable test 和 nightly 三个更新频道。 官方网站上有各种环境下的 安装指南,这里主要介绍 Docker 在 Linux 、 Windows 10 和 macOS 上的安装。 警告:切勿在没有配置 Docker APT 源的情况

    2024年01月20日
    浏览(64)
  • 将GPU版本的torch和torchvision下载至本地进行安装,解决torch.cuda.is_available()为False的情况,本文主要解决CPU版本的torch问题。

    这是困扰我很久的问题,今天花了一点时间去研究一下为什么我的cuda和cudann安装完成了,却不能使用GPU,原因是我的torch和torchvision是cpu版本的,必须下载GPU版本的才能使torch.cuda.is_available()为True,本文使用将文件下载到文件夹后进行安装。 1、打开Anaconda Prompt(Anaconda3)  2、打开

    2024年02月10日
    浏览(63)
  • Elasticsearch环境搭建(Windows)

    布式、RESTful 风格的搜索和分析。 Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,并管理和监控堆栈。Elasticsearch 是索引、

    2024年02月06日
    浏览(81)
  • windows 搭建elasticsearch环境

    官方下载地址 下载并解压 双击binelasticsearch.bat 启动 启动成功之后就会在localhost:9200看到相应的数据信息 控制台中文乱码, 需要在config/jvm.options文件中添加 在启动过程中可能会出现一些问题, 这里有解决方法地址 安装插件之前需要安装node.js. 插件版本匹配信息 插件安装

    2023年04月09日
    浏览(41)
  • Elasticsearch环境搭建

    本文主要介绍在Linux 系统下搭建Elasticsearch运行环境相关内容. 受限于篇幅本次主要介绍elasticsearch 单集群单节点单实例、单集群单节点多实例、单集群多节点单实例 环境搭建。ES环境搭建概要参见脑图: 内容说明: 本文内容同微信公众号【凡登】,关注不迷路,学习上高速

    2023年04月16日
    浏览(42)
  • ElasticSearch:环境搭建步骤

    1、拉取镜像 2、创建容器 3、配置中文分词器ik 因为在创建elasticsearch容器的时候,映射了目录,所以可以在宿主机上进行配置ik中文分词器 在 去选择ik分词器的时候,需要与elasticsearch的版本好对应上 把准备好的ik分词器文件 elasticsearch-analysis-ik-7.4.0.zip 上传到服务器上,放到对

    2024年02月13日
    浏览(32)
  • Elasticsearch 系列(一)- 环境搭建

    本章将和大家分享在 Windows 系统上如何搭建 ELK 的开发环境。话不多说,下面我们直接进入主题。 Elasticsearch 其中最主要的开发语言就是 Java ,所以我们在安装 Elasticsearch 之前,首先需要安装的就是 Java 的 JDK,此处我选择安装的版本是 JDK 17 。 JDK官网下载地址 :https://www.o

    2024年02月08日
    浏览(37)
  • 【微服务】Elasticsearch概述&环境搭建(一)

    🚗Es学习·起始站~ 🚩本文已收录至专栏:微服务探索之旅 👍希望您能有所收获 elasticsearch是一款非常强大的开源 搜索引擎 ,具备非常多强大功能,可以帮助我们从 海量数据中快速 找到需要的内容 在GitHub搜索代码 在电商网站搜索商品 在百度搜索答案 在打车软件搜索附近

    2024年01月15日
    浏览(39)
  • CentOS系统环境搭建(十七)——elasticsearch设置密码

    centos系统环境搭建专栏🔗点击跳转 没有密码是很不安全的一件事😭 关于Elasticsearch的安装请看CentOS系统环境搭建(十二)——CentOS7安装Elasticsearch。这些只是让你关闭与重启es,关闭与重启es若你有自己的方法不必参考本文。 先关掉elasticsearch 编辑elasticsearch.yml 最下面写上 后

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包