- 简介
- 方式一 rpm方式
- 1.下载Elasticsearch
- 2.安装
- 3.修改配置文件
- 4.启动服务
- 5.查看启动状态
- 问题
- 方式二 tar.gz包方式
- 1.下载Elasticsearch
- 2.解压
- 3.新建一个用户,Elasticsearch不运行root用户运行
- 4.修改配置文件
- 5.启动
- 相关扩展
- 前言
- 文件描述符
- 虚拟内存
- 线程数
- 配置
- 允许外网访问
- 目录介绍
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文检索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
最新版本下载地址:https://www.elastic.co/cn/downloads/elasticsearch
历史版本下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch-no-jdk
方式一 rpm方式 1.下载Elasticsearch注意尽量选择不包含JDK的版本,包含JDK的版本包太大了200多M
在服务器执行如下命令:
# 这个版本jdk需要11 所以用这个 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-x86_64.rpm # 不带jdk wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-no-jdk-x86_64.rpm
2.安装这个版本依赖的jdk版本为11,自行判断是否要下载待jdk的版本,我是常用JDK8,所以这里直接选用带JDK的版本
蠢一点就直接在浏览器点击下载,然后复制到服务器
rpm -ivh elasticsearch-7.3.0-no-jdk-x86_64.rpm
安装完成后,所有配置目录和工作目录如下
- 配置目录:/etc/elasticsearch
- 工作目录:/usr/share/elasticsearch
安装完毕之后,编辑vim /etc/elasticsearch/elasticsearch.yml
4.启动服务修改配置后,执行如下命令,启动服务并设置为自动启动:
systemctl daemon-reload systemctl enable elasticsearch.service systemctl restart elasticsearch.service5.查看启动状态
systemctl status elasticsearch.service
验证:curl http://localhost:9200
{
"name" : "xxxx-all",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "06_AFOMMQV-E_6L_uBqBgQ",
"version" : {
"number" : "7.3.0",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "de777fa",
"build_date" : "2019-07-24T18:30:11.767338Z",
"build_snapshot" : false,
"lucene_version" : "8.1.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
问题
问题:没有找到JAVA_HOME
解决
其实已经安装过java环境了,但是不在其指定的目录,查看java安装位置
在/etc/sysconfig/elasticsearch的这个文件里面设置JAVA_HOME环境变量:
复制代码 ################################ # Elasticsearch ################################ # Elasticsearch home directory #ES_HOME=/usr/share/elasticsearch # Elasticsearch Java path JAVA_HOME=/usr/java/jdk1.8.0_121 # Elasticsearch configuration directory ES_PATH_CONF=/etc/elasticsearch方式二 tar.gz包方式 1.下载Elasticsearch
在服务器执行如下命令:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-no-jdk-linux-x86_64.tar.gz
2.解压这个版本依赖的jdk版本为11,自行判断是否要下载待jdk的版本
蠢一点就直接在浏览器点击下载,然后复制到服务器
# 解压 tar -zxvf elasticsearch-7.3.0-no-jdk-linux-x86_64.tar.gz # 移动目录 mv elasticsearch-7.3.0-no-jdk-linux-x86_64 /usr/local/3.新建一个用户,Elasticsearch不运行root用户运行
# 添加用户es useradd es # 为es用户设定登录密码 passwd es # 用root用户执行 给文件夹赋权 chown -R es elasticsearch-7.3.0-no-jdk-linux-x86_644.修改配置文件
编辑文件
vim config/elasticsearch.yml
修改配置
#修改为自己的ip network.host: x.x.x.x #把这个注释先放开 cluster.initial_master_nodes: ["node-1", "node-2"]5.启动
# -d 后台启动 ./elasticsearch -d相关扩展 前言
使用 RPM 或 Debian 软件包时,可以在系统配置文件中指定系统设置和环境变量,该文件位于:
/etc/sysconfig/elasticsearch文件描述符
Elasticsearch 使用了很多文件描述符或文件句柄。耗尽文件描述符可能是灾难性的,并且很可能会导致数据丢失。确保将运行 Elasticsearch 的用户的打开文件描述符数量限制增加到 65,536 或更高。
对于.zip和.tar.gz包,ulimit -n 65535在启动 Elasticsearch 之前设置为 root,或者设置nofile为65535in /etc/security/limits.conf。
在 Linux 系统上,可以通过编辑/etc/security/limits.conf文件为特定用户设置永久限制。要将用户的最大打开文件数设置elasticsearch为 65,535,请将以下行添加到limits.conf文件中:
elasticsearch - nofile 65535
RPM 和 Debian 软件包已将文件描述符的最大数量默认为 65535,不需要进一步配置。
检查每个节点的配置
curl -X GET "localhost:9200/_nodes/stats/process?filter_path=**.max_file_descriptors&pretty"虚拟内存
Elasticsearchmmapfs默认使用一个目录来存储它的索引。操作系统对 mmap 计数的默认限制可能太低,这可能会导致内存不足异常。
在 Linux 上,您可以通过运行以下命令来增加限制 root:
sysctl -w vm.max_map_count=262144
要永久设置此值,请更新 /etc/sysctl.conf 中的vm.max_map_count设置。要在重新启动后进行验证,请运行sysctl vm.max_map_count.
RPM 和 Debian 软件包将自动配置此设置。无需进一步配置。
线程数Elasticsearch 使用多个线程池来进行不同类型的操作。重要的是它能够在需要时创建新线程。确保 Elasticsearch 用户可以创建的线程数至少为 4096。
这可以通过ulimit -u 4096在启动 Elasticsearch 之前设置为 root来完成,或者设置nproc为4096in /etc/security/limits.conf。
作为服务运行时的包分发systemd将自动配置 Elasticsearch 进程的线程数。不需要额外的配置。
配置配置文件位置**/etc/elasticsearch**
1、max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
修改/etc/security/limits.conf,增加配置,用户退出后重新登录生效
* soft nofile 655350 * hard nofile 655350
2、max number of threads [3818] for user [es] is too low, increase to at least [4096]
修改/etc/security/limits.conf,增加配置,用户退出后重新登录生效
* hard nproc 4096 * soft nproc 4096
3、max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
修改/etc/sysctl.conf,增加如下配置
fs.file-max=655350
保存后执行sysctl -p 生效
4、max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改/etc/sysctl.conf,增加如下配置
vm.max_map_count=262144
保存后执行sysctl -p 生效
允许外网访问vi conf/elasticsearch.yml
1.修改 network.host 为 0.0.0.0
network.host: 0.0.0.0
2.配置cluster.initial_master_nodes为当前node,默认为注释,放开注释就行了
cluster.initial_master_nodes: ["node-1", "node-2"]目录介绍
bin 目录下面存放是一系列可执行程序
- elasticsearch,Elasticsearch 的启动进程,Elasticsearch 程序的主入口。
- elasticsearch-env,用于环境变量的配置,可以在这里修改相关的环境配置,大部分情况不建议直接修改此配置文件,可以通过在外部通过变量名来进行设置。
- elasticsearch-translog,主要用于对 Translog 进行清理操作。
- elasticsearch-keystore,主要用于管理 Elasticsearch 的密钥。
- elasticsearch-plugin,插件安装工具。
- elasticsearch-service* 开头的几个程序是为 Windows 平台提供的服务管理工具。
config 目录,主要是存放一下配置文件信息:
- elasticsearch.yml,Elasticsearch 的配置文件,使用 Yaml 文件格式作为标准。
- jvm.options,Java 虚拟机运行环境的相关参数配置。
- log4j2.properties,日志文件相关的配置。
lib 目录是 Elasticsearch 依赖的 Jar 包和自己的 Java 本身程序所在的地方。
data 目录,数据默认存放的位置。
logs 目录,日志默认存放的位置。
modules 目录,存放 Elasticsearch 的内部功能模块。
plugins 目录,存放 Elasticsearch 的外部扩展插件。



