Elasticsearch从入门到精通-02环境搭建

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.测试

访问http://ip:5601/app/kibana#/home出现一下界面说明搭建成功.![](https://file.jishuzhan.net/article/1765587999686397953/cff58a76956bfdac7df92e06b20aa4c5.webp)

5.关闭

bash 复制代码
netstat -tunlp|grep 5601
kill -9 端口号

1.3 Linux下IK分词器安装

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的使用以及常用的简单语法

相关推荐
alfiy1 小时前
Elasticsearch学习笔记(六)使用集群令牌将新加点加入集群
笔记·学习·elasticsearch
帅气的人1231 小时前
使用 docker-compose 启动 es 集群 + kibana
elasticsearch·docker
漫无目的行走的月亮2 小时前
比较Elasticsearch和Hadoop
hadoop·elasticsearch
奔跑吧邓邓子8 小时前
大数据利器Hadoop:从基础到实战,一篇文章掌握大数据处理精髓!
大数据·hadoop·分布式
说私域9 小时前
基于定制开发与2+1链动模式的商城小程序搭建策略
大数据·小程序
hengzhepa10 小时前
ElasticSearch备考 -- Async search
大数据·学习·elasticsearch·搜索引擎·es
mklpo14710 小时前
为Floorp浏览器添加搜索引擎及搜索栏相关设置. 2024-10-05
搜索引擎·firefox
GZ_TOGOGO11 小时前
【2024最新】华为HCIE认证考试流程
大数据·人工智能·网络协议·网络安全·华为
狼头长啸李树身13 小时前
眼儿媚·秋雨绵绵窗暗暗
大数据·网络·服务发现·媒体
Json_1817901448014 小时前
商品详情接口使用方法和对接流程如下
大数据·json