我正在参加「掘金·启航计划」
ES入门 - 环境安装
Windows上安装ES
下载软件
本文档使用的是 Elasticsearch7.8.0 版本
安装软件
Windows 版的 Elasticsearch 的安装很简单,解压即安装完毕,解压后的 Elasticsearch 的目录结构如下
目录 | 含义 |
---|---|
bin | 可执行脚本目录 |
config | 配置目录 |
jdk | 内置JDK目录 |
lib | 类库 |
logs | 日志目录 |
moudules | 模块目录 |
plugins | 插件目录 |
解压后,进入 bin 文件目录,点击 elasticsearch.bat 文件启动 ES 服务
注意:9300 端口为 Elasticsearch 集群间组件的通信端口,9200 端口为浏览器访问的 http协议 RESTful 端口。
打开浏览器(推荐使用谷歌浏览器),输入地址:http://localhost:9200,测试结果
遇到问题
-
Elasticsearch 是使用 java 开发的,且 7.8 版本的 ES 需要 JDK 版本 1.8 以上,默认安装包带有 jdk 环境,如果系统配置 JAVA_HOME,那么使用系统默认的 JDK,如果没有配置使用自带的 JDK,一般建议使用系统配置的 JDK。
-
双击启动窗口闪退,通过路径访问追踪错误,如果是“空间不足”,请修改config/jvm.options 配置文件
# 设置 JVM 初始内存为 1G。此值可以设置与-Xmx 相同,以避免每次垃圾回收完成后 JVM 重新分配内存
# Xms represents the initial size of total heap space
# 设置 JVM 最大可用内存为 1G
# Xmx represents the maximum size of total heap space
-Xms1g
-Xmx1g
Windows上安装Kibana
Kibana 是一个免费且开放的用户界面,能够让你对 Elasticsearch 数据进行可视化,并 让你在 Elastic Stack 中进行导航。你可以进行各种操作,从跟踪查询负载,到理解请求如 何流经你的整个应用,都能轻松完成。
下载时尽量下载与 ElasicSearch 一致的版本。
下载软件
下载后进行解压,目录如图:
注意:启动 Kibana 之前要启动 Elasticsearch
修改配置
进入根目录下的 config 目录,打开 kibana.yml
文件
修改以下配置文件
# 默认端口
server.port: 5601
# ES 服务器的地址
elasticsearch.hosts: ["http://localhost:9200"]
# 索引名
kibana.index: ".kibana"
# 支持中文
i18n.locale: "zh-CN"
进入 bin 目录,双击 kibana.bat
启动服务
打开浏览器(推荐使用谷歌浏览器),输入地址:http://localhost:5601/,测试结果
可以连接Elasticsearch索引,或者进入控制台进行操作
Linux上安装ES
请先确保 Linux 里已经安装了 jdk 1.8 以上版本。
输入以下命令查看java版本信息,如显示以下信息,则需要安装java环境。
Linux上安装java
1、下载java安装包
2、上传安装java环境
- 创建jdk文件夹、并解压jdk包
# 进入安装目录、创建文件夹
cd /usr/local
mkdir java
cd java
# 上传文件命令:rz
rz
# 解压 tar -zxvf 上传的jdk压缩包名
tar -zxvf jdk-8u351-linux-x64.tar.gz
- 配置环境变量、并生效配置
# 打开配置文件
vim /etc/profile
# 在文件末尾追加【jdk文件名:是当前解压文件夹名,如我这里的jdk1.8.0_351】
JAVA_HOME=/usr/local/java/jdk文件名
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
# esc退出编辑模式,按shift+:输入wq保存并退出
# 查看配置文件
cat /etc/profile
# 生效配置
source /etc/profile
- 检查java是否安装成功
java -version
Linux上安装es
1、下载es安装包
2、上传安装es环境
- 创建jdk文件夹、并解压jdk包
# 进入安装目录、创建文件夹
cd /usr/local/
mkdir elastic-stack
cd elastic-stack
# 上传文件命令:rz
rz
# 解压 tar -zxvf 上传的jdk压缩包名
tar -zxvf elasticsearch-7.8.1-linux-x86_64.tar.gz
# 重命名
mv elasticsearch-7.8.0 es
-
创建es用户、修改es配置文件
-
修改elasticsearch.yml
vim /usr/local/elastic-stack/es/config/elasticsearch.yml
# 修改内容如下
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /data/es
#
# Path to log files:
#
path.logs: /var/log/es
# 文件末尾中增加下面内容
# 集群名
cluster.name: elasticsearch
# 节点名
node.name: node-1
# 允许外界访问的 ip
network.host: 0.0.0.0
# http 访问端口
http.port: 9200
# 集群节点的 master
cluster.initial_master_nodes: ["node-1"]
- 修改系统中允许应用最多创建多少文件等的限制权限。Linux 默认来说,一般限制应用最多创建的文件是 65535 个。但是 ES 至少需要 65536 的文件创建权限。
- 修改系统中允许用户启动的进程开启多少个线程。默认的 Linux 限制 root 用户开启的进程可以开启任意数量的线程,其他用户开启的进程可以开启 1024个线程。必须修改限制数为 4096+。因为ES至少需要 4096 的线程池预备。ES在 5.x 版本之后,强制要求在 Linux 中不能使用 root 用户启动 ES 进程。所以必须使用其他用户启动 ES 进程才可以。
- Linux 低版本内核为线程分配的内存是 128K。4.x 版本的内核分配的内存更大。如果虚拟机的内存是 1G,最多只能开启 3000+ 个线程数。至少为虚拟机分配 1.5G 以上的内存。
ES 可以对每个进程的文件数进行限制等,如果服务器内存或空间不足,可以通过修改配置文件
- 修改其他配置文件
- 修改/etc/security/limits.conf,在文件末尾中增加下面内容:
# 每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536
# 操作系统级别对每个用户创建的进程数的限制
* hard nproc 4096
# 注:* 带表 Linux 所有用户名称
- 修改 /etc/sysctl.conf,在文件末尾中增加下面内容
# 一个进程可以拥有的 VMA (虚拟内存区域)的数量,默认值为 65536
vm.max_map_count=655360
- 配置文件后,记得重新加载
sysctl -p
- 新增 elasticSearch 用户并配置权限
useradd es
passwd es
# 设置的密码
# 配置权限
# ElasticSearch 安装目录
chown -R es /usr/local/elastic-stack/es
# 日志文件权限
chown -R es 日志文件安装目录
- 启动服务
# 切换用户
su es
# 先进入安装目录、启动服务
cd /usr/local/elastic-stack/es
./bin/elasticsearch -d
# 测试访问
curl 127.0.0.1:9200
{
"name" : "node-1",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "US9tbegDT_SfcewzyQCD3w",
"version" : {
"number" : "7.8.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "b5ca9c58fb664ca8bf9e4057fc229b3396bf3a89",
"build_date" : "2020-07-21T16:40:44.668009Z",
"build_snapshot" : false,
"lucene_version" : "8.5.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
3、es服务自启动设置
- 查看es进程、并关闭
# 查看es进程
ps -ef | grep elastic
# 关闭进程
kill -9 进程号
- 创建elasticsearch的系统启动服务文件,进入到 cd /etc/init.d 目录
#进入到目录,创建elasticsearch系统启动服务文件
cd /etc/init.d
vi elasticsearch
#文件内容如下
#!/bin/bash
#chkconfig: 345 63 37
#description: elasticsearch
#processname: elasticsearch-7.10.2
# 这个目录是你Es所在文件夹的目录
export ES_HOME=/usr/local/elasticsearch-7.10.2
case $1 in
start)
su es<<!
cd $ES_HOME
./bin/elasticsearch -d -p pid
exit
!
echo "elasticsearch is started"
;;
stop)
pid=`cat $ES_HOME/pid`
kill -9 $pid
echo "elasticsearch is stopped"
;;
restart)
pid=`cat $ES_HOME/pid`
kill -9 $pid
echo "elasticsearch is stopped"
sleep 1
su es<<!
cd $ES_HOME
./bin/elasticsearch -d -p pid
exit
!
echo "elasticsearch is started"
;;
*)
echo "start|stop|restart"
;;
esac
exit 0
- 修改文件权限
chmod 777 elasticsearch
- 添加和删除服务并设置启动方式
# 添加系统服务
chkconfig --add elasticsearch
# 删除系统服务
chkconfig --del elasticsearch
- 关闭和启动服务
# 启动服务
service elasticsearch start
# 停止服务
service elasticsearch stop
# 重启服务
service elasticsearch restart
- 查看当前的开机启动服务命令
chkconfig --list
- 检验服务是否运行正常
curl http://127.0.0.1:9200