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.解压

在安装包所在目录进行压缩

tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz

image-20221129221415888

3.创建用户

因为安全问题,Elasticsearch 不允许 root 用户直接运行,所以要创建新用户,在 root 用户中创建新用户

useradd es #新增 es 用户
passwd es #为 es 用户设置密码
#userdel -r es #如果错了,可以删除再加
chown -R es:es /usr/environment/elasticsearch/elasticsearch-7.8.0 #文件夹所有者

image-20221129221627602

4.修改配置文件

修改usr/environment/elasticsearch/elasticsearch-7.8.0/config/elasticsearch.yml

# 在文件尾部加入如下配置
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启动就会抛错

# 在文件末尾中增加下面内容
# 每个进程可以打开的文件数的限制
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])

修改普通用户可以创建的最大线程数

# 在文件末尾中增加下面内容
# 每个进程可以打开的文件数的限制
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]))

调大系统的虚拟内存

# 在文件中增加下面内容
# 一个进程可以拥有的 VMA(虚拟内存区域)的数量,默认值为 65536
vm.max_map_count=655360

重新加载

sysctl -p

5.启动

#前台启动
bin/elasticsearch
#后台启动
bin/elasticsearch -d

image-20221129224033090

注意:9300端口为Elasticsearch集群间组件的通信端口,9200端口为浏览器访问的 http协议 RESTful 端口。

6.测试

打开浏览器(推荐使用谷歌浏览器),输入地址:http://ip:9200,测试结果

image-20221129224858372

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.关闭

netstat -tunlp|grep 9200
kill -9 进程号

image-20240306095652940

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.解压安装包

tar -zxvf kibana-7.8.0-linux-x86_64.tar.gz

2.修改配置文件

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.启动

#授权
chown -R es:es /usr/environment/kibana/kibana-7.8.0-linux-x86_64
#启动
nohup ./kibana &

4.测试

访问http://ip:5601/app/kibana#/home出现一下界面说明搭建成功.

5.关闭

netstat -tunlp|grep 5601
kill -9 端口号

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.3 Linux下IK分词器安装

IK分词器下载地址

在es的安装目录下/plugins创建ik

mkdir ‐p ik 

将下载的ik分词器上传并解压到该目录

unzip elasticsearch-analysis-ik-7.6.1.zip

1.4 Linux下安装ES-Head插件

1.1 解压安装包

下载node-v8.1.0-linux-x64.tar.gz文件后解压

tar -zxvf node-v8.1.0-linux-x64.tar.gz 

1.2 创建软连接

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 修改环境变量

vi /etc/profile
export NODE_HOME=/usr/local/es/node-v8.1.0-linux-x64
export PATH=:$PATH:$NODE_HOME/bin

修改完环境变量使用source生效

source /etc/profile

1.4 验证安装成功

node -v
npm -2,v

1.5 修改Gruntfile.js

cd /usr/local/es/elasticsearch-head
vim Gruntfile.js

找到代码的93行:hostname改为自己的ip或者hostame

connect: {                       
 server: {                             
 options: {                                    
 hostname: '自己的hostame',                                    
 port: 9100,                                    
 base: '.',                                    
 keepalive: true                              
  }                       
 }               
 }

1.6 修改app.js

cd /usr/local/es/elasticsearch-head/_site
vim app.js
#在Vim中输入「:4354」,定位到第4354行,修
#改 http://localhost:9200为http://ip:9200

1.7 启动head服务

cd /usr/local/es/elasticsearch-head/node_modules/grunt/bin/

进程前台启动命令

./grunt server

进程后台启动名称

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网络

docker network create es-net

下载镜像

docker pull elasticsearch:7.6.1

运行容器

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

下载镜像:

docker pull kibana:7.6.1

运行容器:

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:端口映射配置

设置中文:

进入容器

docker exec -it kibana bash

修改配置文件

vim config/kibana.yml

在末尾添加i18n.locale: "zh-CN"后重启容器即可

1.6 Docker安装IK分词器

查看挂在ES插件目录

docker volume inspect es-plugin

image-20240223000746487

把下载的IK分词器压缩包上传到这个目录下创建ik目录并且进行解压即可

image-20240223000905423

1.7 Docker安装ES-Head插件

1.拉取镜像

docker pull  mobz/elasticsearch-head:5

2.运行容器

docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5

3.可能出现跨域问题,需要修改ES配置文件

在elasticsearch.yml配置文件末尾添加一下内容

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "*"

4.访问页面:

image-20240306095534570

外链图片转存中…(img-TGGJOH61-1709690221149)]

1.7 Docker安装ES-Head插件

1.拉取镜像

docker pull  mobz/elasticsearch-head:5

2.运行容器

docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5

3.可能出现跨域问题,需要修改ES配置文件

在elasticsearch.yml配置文件末尾添加一下内容

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "*"

🌟至此本篇就结束了,下一篇将介绍ES客户端kibana的使用以及常用的简单语法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/432615.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

材料物理 (HIT) 笔记-2

原内容请参考哈尔滨工业大学何飞教授:https://www.bilibili.com/video/BV18b4y1Y7wd/?p12&spm_id_frompageDriver&vd_source61654d4a6e8d7941436149dd99026962 或《材料物理性能及其在材料研究中的应用》(哈尔滨工业大学出版社) 三…

mysql如何开启远程访问?

MySQL是一种常见的关系型数据库管理系统,广泛应用于各行各业。默认情况下,MySQL仅允许本地访问,即只能在本地主机上进行数据库操作。有时候我们需要通过远程连接访问MySQL数据库,以便实现更灵活的管理和操作。本文将介绍如何在MyS…

Docker快速入门和部署项目

1,Docker是一个,快速构建、运行、管理应用的工具 。 2,前面我们了解过在Linux操作系统的常见的命令以及如何在Linux中部署一个人单体的项目。感受如何呢??? 命令太多了,记不住 软件安装包名字复…

java数据结构YZP专栏-----二叉树 平衡二叉树(AVL)

主文章(数据结构的索引目录—进不去就说明我还没写完)https://blog.csdn.net/grd_java/article/details/122377505 模拟数据结构的网站:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html 源码(码云):https://gi…

Python onnxruntime推理yolov5和yolov8(最简易版)

支持yolov5和yolov8双模型 其中ChtDeploy中代码如下: import onnxruntime import numpy as np import cv2class ChtDeploy():def __init__(self, img_path, onnx_path, iou_threshold0.45, conf_threshold0.3, detect_w640, detect_h 640):self.img cv2.imread(im…

【LeetCode每日一题】【BFS模版与例题】【二维数组】1293. 网格中的最短路径

BFS基本模版与案例可以参考: 【LeetCode每日一题】【BFS模版与例题】863.二叉树中所有距离为 K 的结点 【LeetCode每日一题】【BFS模版与例题】【二维数组】130被围绕的区域 && 994 腐烂的橘子 思路: 特殊情况: 最短的路径是向下再向…

多维时序 | Matlab实现GRNN广义回归神经网络多变量时间序列预测

文章目录 效果一览文章概述源码设计参考资料效果一览

SpringBoot(详细介绍)

目录 一、简介 1.1、什么是SpringBoot 1.2.、特性 1.3、四大核心 1.4、特点 二、快速入门 2.1、开发流程 2.1.1、创建项目 maven项目 2.1.2、导入场景 场景启动器 2.1.3、主程序 2.1.4、业务 三、Spring Initializr 创建向导 3.1、依赖管理机制 3.1.1、为什么导…

JRebel and XRebel 插件在IDEA中的安装、激活和使用

1、JRebel安装 1、打开idea->setting->plugins->Marketplace 2、搜索插件JRebel and XRebel,点击安装,然后重启idea 如果左侧出现JRebel & XRebel代表已安装 3.离线安装JRebel 根据自己安装的idea版本进行下载电影的jrebel https://plugi…

H5小游戏,象棋

H5小游戏源码、JS开发网页小游戏开源源码大合集。无需运行环境,解压后浏览器直接打开。有需要的,私信本人,发演示地址,可以后再订阅,发源码,含60+小游戏源码。如五子棋、象棋、植物大战僵尸、开心消消乐、扑鱼达人、飞机大战等等 <!DOCTYPE html PUBLIC "-//W3C/…

spring学习简单总结(尚硅谷视频

spring学习简单总结 spring-tx-事务注解添加用注解方式进行aop的配置基于注解配置类进行ioc和di的配置 spring-tx-事务注解添加 选择对应事务管理器实现加入到ioc容器 使用注解指定哪些方法需要添加事务 用注解指定方法 用注解方式进行aop的配置 写自己正常的核心业务代…

Python学习 day07(JSON、format()函数)

JSON 各种编程语言存储数据的容器不尽相同&#xff0c;在Python中有字典dict这样的数据类型&#xff0c;而其他语言可能没有对应的字典&#xff0c;为了让不同的语言都能够相互通用的传递数据&#xff0c;JSON就是一种非常良好的中转数据格式&#xff0c;如下&#xff1a; JSON…

前端工具网站合集(持续更新)

综合类网站 那些免费的砖 统计推荐免费工具网站 那些免费的砖 - 优雅地白嫖各种免费资源 (thosefree.com)https://www.thosefree.com/ CSS样式网站 毒蘑菇-配色 CSS 配色&#xff0c;阴影网站 一个好用的配色网站! 毒蘑菇 - 配色 (dumogu.top)https://color.dumogu.top/ …

navicat想把自己库中的表导出给别人的操作

navicat导出表和导入表 导出 右键需要导出的表&#xff0c;选择导出向导 选择csv&#xff0c;然后点击下一步 到这个页面&#xff0c;其实可以不用选择&#xff0c;会自己选择当时选中的表&#xff0c;如果有多张表导出&#xff0c;可以选择其他表。然后点击下一步 到这里是选…

【Django】执行查询——查询JSONField

JSONField 本篇的例子以下面这个模型为基础&#xff1a; from django.db import modelsclass Dog(models.Model):name models.CharField(max_length200)data models.JSONField(nullTrue)def __str__(self):return self.name保存和查询None值 在使用JSONField时&#xff0c…

springboot+jsp汽车配件管理系统idea maven 项目lw

springbootweb汽车配件销售业绩管理系统服务于汽车配件公司业务,实现了客户管理&#xff0c;主要负责对客户相关数据的增删改查方面、渠道管理&#xff0c;主要对渠道信息也就是设备的供应商渠道信息进行管理、项目管理&#xff0c;主要是一些项目信息的记录与整理、销售数据管…

【Photoshop2020版本】零基础笔记(一)

哈喽大家好~最近博客内容换方向了哈哈哈~换成“实用版”了。 今天给大家带来的是 PS 相关内容 其实我也是刚学PS&#xff0c;所以想着自己做笔记还不如发布出去&#xff0c;让大家都能看到&#xff0c;有兴趣的伙伴们&#xff0c;可以跟着我的笔记一块学习&#xff0c;这个专…

Python-Numpy-计算矩阵相乘

向量化矩阵计算公式&#xff1a; """ Title: matrix_calculating Time: 2024/3/6 Author: Michael Jie """import numpy as npw np.array([[1, 2]]) x np.array([[1, 1], [2, 3], [4, 5]]) b 1# w * x b print(w * x b) """…

Cookie属性HttpOnly引起的漏洞解决方案

问题描述&#xff1a; 项目扫描的时候出一个漏洞&#xff0c;Cookie未配置HttpOnly标志。那HttpOnly是什么呢&#xff1f;Httponly是微软对cookie做的扩展。这个主要是解决用户的cookie可能被盗用的问题。在web应用中、JSESSIONID (Cookie)没有设置Httponly属性可能会窃取或操…

越来越多的上市企业进行FTP替代,真相是什么?

FTP协议大家并不陌生&#xff0c;它是用于在网络上进行文件传输的一套标准协议&#xff0c;基于TCP传输&#xff0c;工作在OSI模型的第七层。FTP协议包括两个主要组成部分&#xff1a;FTP服务器和FTP客户端。FTP服务器用于存储文件&#xff0c;而用户则可以使用FTP客户端通过FT…