Elasticsearch从入门到精通-02环境搭建
👏作者简介:大家好,我是程序员行走的鱼
🍂博主从本篇正式开始ES学习,希望小伙伴可以一起探讨
📖 本篇主要介绍和大家一块学习一下ES环境搭建,主要包括Elasticsearch、Kibina、IK分词器、ES-Head插件安装
链接:https://pan.baidu.com/s/1MciUlOeLP1q3o2Jt9zKYDA
提取码:YYDS
ES相关软件都在上边连接中
1.1 Linux下搭建Elasticsearch
1.安装包下载
本次安装版本:7.8.0 安装包自行去官网下载
2.解压
在安装包所在目录进行压缩
bash
tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz
3.创建用户
因为安全问题,Elasticsearch 不允许 root 用户直接运行,所以要创建新用户,在 root 用户中创建新用户
bash
useradd es #新增 es 用户
passwd es #为 es 用户设置密码
#userdel -r es #如果错了,可以删除再加
chown -R es:es /usr/environment/elasticsearch/elasticsearch-7.8.0 #文件夹所有者
4.修改配置文件
修改usr/environment/elasticsearch/elasticsearch-7.8.0/config/elasticsearch.yml
bash
# 在文件尾部加入如下配置
cluster.name: elasticsearch
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
修改/etc/security/limits.conf
(可以解决出现max file descriptors [4096] for elasticsearch process likely too low,increase to at least [65536])
ES因为需要大量的创建索引文件,需要大量的打开系统的文件,所以我们需要解除linux系统当中打开文件最大数目的限制,不然ES启动就会抛错
bash
# 在文件末尾中增加下面内容
# 每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536
修改/etc/security/limits.d/20-nproc.conf
(可以解决出现max number of threads [1024] for user [es] likely too low, increase to atleast [4096])
修改普通用户可以创建的最大线程数
bash
# 在文件末尾中增加下面内容
# 每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536
# 操作系统级别对每个用户创建的进程数的限制
* hard nproc 4096
# 注:* 带表 Linux 所有用户名称
修改/etc/sysctl.conf
(可以解决max virtual memory areas vm.max_map_count [65530] likely too low,increase to at least [262144]))
调大系统的虚拟内存
bash
# 在文件中增加下面内容
# 一个进程可以拥有的 VMA(虚拟内存区域)的数量,默认值为 65536
vm.max_map_count=655360
重新加载
bash
sysctl -p
5.启动
bash
#前台启动
bin/elasticsearch
#后台启动
bin/elasticsearch -d
注意:9300端口为Elasticsearch集群间组件的通信端口,9200端口为浏览器访问的 http协议 RESTful 端口。
6.测试
打开浏览器(推荐使用谷歌浏览器),输入地址:http://ip:9200,测试结果
Elasticsearch 是使用 java 开发的,且 7.8 版本的 ES 需要 JDK 版本 1.8 以上,默认安装包带有 jdk 环境,如果系统配置 JAVA_HOME,那么使用系统默认的 JDK,如果没有配置使用自带的 JDK,一般建议使用系统配置的 JDK。
双击启动窗口闪退,通过路径访问追踪错误,如果是"空间不足",请修改config/jvm.options 配置文件
#设置 JVM 初始内存为 1G。此值可以设置与-Xmx 相同,以避免每次垃圾回收完成后 JVM 重新分配内存
#设置 JVM 最大可用内存为 1G
-Xms1g
-Xmx1g
7.关闭
bash
netstat -tunlp|grep 9200
kill -9 进程号
1.2 Linux下搭建Kibina
Kibana 是一个免费且开放的用户界面,能够让你对 Elasticsearch 数据进行可视化,并让你在 Elastic Stack 中进行导航。你可以进行各种操作,从跟踪查询负载,到理解请求如何流经你的整个应用,都能轻松完成。下载地址:https://artifacts.elastic.co/downloads/kibana/kibana-7.8.0-linux-x86_64.tar.gz
安装步骤:
还是需要用非root用户去操作!
1.解压安装包
bash
tar -zxvf kibana-7.8.0-linux-x86_64.tar.gz
2.修改配置文件
bash
vim config/kibana.yml
# 默认端口
server.port: 5601
server.host: '0.0.0.0'
# # ES 服务器的地址
elasticsearch.hosts: ["http://192.168.0.135:9200"]
# # 索引名
kibana.index: ".kibana"
# # 支持中文
i18n.locale: "zh-CN"
3.启动
bash
#授权
chown -R es:es /usr/environment/kibana/kibana-7.8.0-linux-x86_64
#启动
nohup ./kibana &
4.测试
5.关闭
bash
netstat -tunlp|grep 5601
kill -9 端口号
1.3 Linux下IK分词器安装
在es的安装目录下/plugins创建ik
bash
mkdir ‐p ik
将下载的ik分词器上传并解压到该目录
bash
unzip elasticsearch-analysis-ik-7.6.1.zip
1.4 Linux下安装ES-Head插件
1.1 解压安装包
下载node-v8.1.0-linux-x64.tar.gz文件后解压
bash
tar -zxvf node-v8.1.0-linux-x64.tar.gz
1.2 创建软连接
bash
sudo ln -s /usr/local/es/node-v8.1.0-linux-x64/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
sudo ln -s /usr/local/es/node-v8.1.0-linux-x64/bin/node /usr/local/bin/node
1.3 修改环境变量
bash
vi /etc/profile
export NODE_HOME=/usr/local/es/node-v8.1.0-linux-x64
export PATH=:$PATH:$NODE_HOME/bin
修改完环境变量使用source生效
bash
source /etc/profile
1.4 验证安装成功
bash
node -v
npm -2,v
1.5 修改Gruntfile.js
bash
cd /usr/local/es/elasticsearch-head
vim Gruntfile.js
找到代码的93行:hostname改为自己的ip或者hostame
json
connect: {
server: {
options: {
hostname: '自己的hostame',
port: 9100,
base: '.',
keepalive: true
}
}
}
1.6 修改app.js
bash
cd /usr/local/es/elasticsearch-head/_site
vim app.js
#在Vim中输入「:4354」,定位到第4354行,修
#改 http://localhost:9200为http://ip:9200
1.7 启动head服务
bash
cd /usr/local/es/elasticsearch-head/node_modules/grunt/bin/
进程前台启动命令
bash
./grunt server
进程后台启动名称
bash
nohup ./grunt server >/dev/null 2>&1 &
Running "connect:server" (connect) taskWaiting forever...Started connect web server on http://192.168.52.100:9100
#如何停止:elasticsearch-head进程
#执行以下命令找到elasticsearch-head的插件进程,然后使用kill -9 杀死进程即可
netstat -nltp | grep 9100
kill -9 8328
2.6 访问elasticsearch-head界面
打开Google Chrome访问 http://ip:9100/
1.4 Docker下安装Elasticsearch
创建网络
在docker环境下,我们还需要使用kibina和Elasticsearch联通,所以需要先创建一个es网络
java
docker network create es-net
下载镜像
bash
docker pull elasticsearch:7.6.1
运行容器
java
docker run -d \
--name es \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-v /usr/environment/docker/es/data:/usr/share/elasticsearch/data \
-v /usr/environment/docker/es/plugins:/usr/share/elasticsearch/plugins \
-v /usr/environment/docker/es/config/:/usr/share/elasticsearch/config \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.6.1
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \ #设置ES java内存
-e "discovery.type=single-node" \ #设置ES集群模式
-v es-data:/usr/environment/docker/es/data \ #数据目录映射
-v es-plugins:/usr/environment/docker/es/plugins \ #插件目录映射
-v es-config:/usr/environment/docker/es/config \ # 配置文件映射
--privileged
--network es-net
-p 9200:9200
-p 9300:9300 \
1.5 Docker下安装kibina
下载镜像:
bash
docker pull kibana:7.6.1
运行容器:
java
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--restart=always \
-v kibana-config:/usr/environment/docker/kibana/config \
-v kibana-data:/usr/environment/docker/kibana/data \
--network=es-net \
-p 5601:5601 \
kibana:7.6.1
--network es-net :与elasticsearch在同一个网络中
-e ELASTICSEARCH_HOSTS=http://es:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch
-p 5601:5601:端口映射配置
设置中文:
进入容器
bash
docker exec -it kibana bash
修改配置文件
java
vim config/kibana.yml
在末尾添加i18n.locale: "zh-CN"后重启容器即可
1.6 Docker安装IK分词器
查看挂在ES插件目录
BASH
docker volume inspect es-plugin
把下载的IK分词器压缩包上传到这个目录下创建ik目录并且进行解压即可
1.7 Docker安装ES-Head插件
1.拉取镜像
bash
docker pull mobz/elasticsearch-head:5
2.运行容器
java
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5
3.可能出现跨域问题,需要修改ES配置文件
在elasticsearch.yml配置文件末尾添加一下内容
bash
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "*"
4.访问页面:
外链图片转存中...(img-TGGJOH61-1709690221149)]
1.7 Docker安装ES-Head插件
1.拉取镜像
bash
docker pull mobz/elasticsearch-head:5
2.运行容器
java
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5
3.可能出现跨域问题,需要修改ES配置文件
在elasticsearch.yml配置文件末尾添加一下内容
bash
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "*"
🌟至此本篇就结束了,下一篇将介绍ES客户端kibana的使用以及常用的简单语法