单机版Elasticsearch,NodeJS,elasticsearch-head服务安装

本文详细介绍了如何在Linux上安装单机版Elasticsearch,包括解决JDK版本冲突、配置ES核心参数、创建专用用户以避免root启动,以及调整系统参数。同时,还涵盖了安装和配置Node.js环境,以及安装和使用elasticsearch-head插件作为Elasticsearch的可视化工具,包括解决跨域访问问题和处理启动异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单机版Elasticsearch服务安装

1.安装elasticsearch

1.官网下载地址:

https://www.elastic.co/cn/downloads/elasticsearch

选择合适的版本下载,然后上传到Linux中

在这里插入图片描述

选择合适的版本下载,然后上传到Linux中
在这里插入图片描述

解压压缩包

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

2.2 解决es强依赖jdk问题

由于es和jdk是一个强依赖的关系,所以当我们在新版本的ElasticSearch压缩包中包含有自带的jdk,但是当我们的Linux中已经安装了jdk之后,就会发现启动es的时候优先去找的是Linux中已经装好的jdk,此时如果jdk的版本不一致,就会造成jdk不能正常运行,报错如下:

注:如果Linux服务本来没有配置jdk,则会直接使用es目录下默认的jdk,反而不会报错
在这里插入图片描述

解决办法:

  • 进入bin目录
    cd /usr/local/elasticsearch-8.2.3/bin
  • 修改elasticsearch配置
    vim ./elasticsearch
############## 添加配置解决jdk版本问题 ##############
# 将jdk修改为es中自带jdk的配置目录
export JAVA_HOME=/usr/local/elasticsearch-8.2.3/jdk
export PATH=$JAVA_HOME/bin:$PATH

if [ -x "$JAVA_HOME/bin/java" ]; then
        JAVA="/usr/local/elasticsearch-7.13.2/jdk/bin/java"
else
        JAVA=`which java`
fi

2.5 修改ES核心配置信息

  • 执行命令修改elasticsearch.yml文件内容
    vim /usr/local/elasticsearch-8.2.3/config/elasticsearch.yml
#集群名称
cluster.name: my-elasticsearch
##节点名称
node.name: node-1
##确保目录存在
path.data: /home/es/elasticsearch/data
path.logs: /home/es/elasticsearch/logs
##放开访问
#默认只允许本机访问,修改为0.0.0.0后则可以远程访问
# 绑定到0.0.0.0,允许任何ip来访问
network.host: 0.0.0.0
http.port: 9200
##es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-1"]
##允许跨域
http.cors.enabled: true
http.cors.allow-origin: "*"

重点:root不可以启动elasticsearch

使用root启动会报错
在这里插入图片描述

2.4 创建专用用户启动ES

root用户不能直接启动Elasticsearch,所以需要创建一个专用用户,来启动ES

  • 创建用户
    useradd es

  • 创建所属组:
    chown es:es -R /usr/local/elasticsearch-8.2.3

  • 切换到es用户
    su es

  • 进入bin目录
    cd /usr/local/elasticsearch-8.2.3/bin

  • 启动elasticsearch
    ./elasticsearch

  • 后端启动:
    ./elasticsearch -d

如果出现如下错误信息(最大文件数太小、线程太小、内存太低):

2.6 因为es较耗内存,所以要调节内存大小

vm.max_map_count [65530] is too low问题

上面几个步骤依然没启动成功,继续解决问题:

在这里插入图片描述

elasticsearch用户拥有的内存权限太小,至少需要262144,解决办法:
/etc/sysctl.conf 文件最后添加如下内容,即可永久修改

  • 切换到root用户
    执行命令:su root

  • 执行命令
    vim /etc/sysctl.conf

  • 添加如下内容
    vm.max_map_count=262144

  • 保存退出,刷新配置文件
    sysctl -p

  • 切换es用户,继续启动
    su es

  • 启动es服务
    /usr/local/elasticsearch-8.2.3/bin/elasticsearch

启动成功后,可以通过http://localhost:9200/访问,如果出现以下内容,说明ES安装成功:
在这里插入图片描述

Elasticsearch报错: received plaintext http traffic on an https channel, closing connection …

Elasticsearch报错:received plaintext http traffic on an https channel, closing connection Netty4HttpChannel。

现象,当启动Elasticsearch后,在浏览器输入地址 http://localhost:9200/后,报错

在这里插入图片描述

解决方案:

找到config/目录下面的elasticsearch.yml配置文件,把安全认证开关从原先的true都改成false,实现免密登录访问即可,修改这两处都为false后:
在这里插入图片描述

即可解决问题,再次打开http://localhost:9200/

就正常显示内容了

2.linux安装node.js

1 前言

npm是Nodejs下的包管理器,可以用来管理js,这里记录下Linux下node环境的搭建过程。

2 安装node环境

下载地址: https://npm.taobao.org/mirrors/
可以下载想要的最新node版本

Nodejs最新版本: https://npm.taobao.org/mirrors/node/latest/

2.1 下载node安装包

在这里插入图片描述

把安装包放到/usr/local中

在这里插入图片描述

2.2 解压node

执行命令解压
tar -zxvf node-v17.3.0-linux-x64.tar.gz

2.3 修改目录名称

mv node-v17.3.0-linux-x64/ node-v17.3.0

2.4 配置nodejs

  • 执行以下命令
    vim /etc/profile

  • 在文件末尾加入

export NODE_HOME=/usr/local/node-v17.3.0
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
  • 刷新配置
    source /etc/profile

2.5 验证node是否安装成功

执行node -v或者npm -v,出现以下版本号,说明安装成功
在这里插入图片描述

3 安装elasticsearch-head插件

ealsticsearch只是后端提供各种resulful api,那么怎么直观的看它的信息呢?

elasticsearch-head是一款专门针对于elasticsearch的客户端工具,用来展示数据。

elasticsearch-head是基于JavaScript语言编写的,可以使用npm部署

npm是Nodejs下的包管理器。

3.1 安装node环境

如果Linux服务已经安装过node环境,这个步骤可以跳过,没有node环境的,开始安装

npm环境准备好了之后,开始安装elasticsearch-head

3.2 安装elasticsearch-head

3.2.1 下载elasticsearch-head安装包

下载地址: https://github.com/mobz/elasticsearch-head
在这里插入图片描述

在这里插入图片描述

上传到/usr/local 文件夹下

在这里插入图片描述

解压文件夹

tar -zxvf elasticsearch-head-5.0.0.tar.gz

3.2.3 npm install

  • 进入安装目录
    cd /usr/local/elasticsearch-head-5.0.0
  • 执行命令安装
    npm install -g

注:如果执行失败,可以cnpm install,使用cnpm之前需要安装cnpm,通过
npm install -g cnpm --registry=https://registry.npm.taobao.org 该命令安装

  • 显示所有使用帮助信息
    npm -l

每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)

npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。

3.2.4 启动elasticsearch-head服务

  • 启动服务
    npm run start 或者 npm run-script start

  • 可以后台启动
    nohup npm run-script start &

推荐使用 - 后台运行

grunt server &

出现下图,说明启动elasticsearch-head服务成功:
在这里插入图片描述

发现一个小问题,只要Xshell关闭,elasticsearch-head服务就退出

elasticsearch-head 关闭窗口服务停止解决方案
后台启动es-head命令 grunt server &

执行命令后,不使用ctrl+c退出,使用exit退出shell即可

缺少grunt报错

在这里插入图片描述

安装grunt

npm install -g grunt-cli

grunt -version
在这里插入图片描述

安装完grunt-cli报错

grunt
在这里插入图片描述

看文件意思是缺少Gruntfile或者项目里没有安装grunt,结果我上网搜不到准确结果。

下载到本地

>npm install grunt

>grunt
在这里插入图片描述

这些是Gruntfile.js中引用的,分别下载。ok
npm install grunt-contrib-copy
npm install grunt-contrib-concat
npm install grunt-contrib-uglify
npm install grunt-css

下载过程有版本号问题,需要单独下载 npm install name@version

3.2.5 访问elasticsearch-head服务

然后访问:http://localhost:9100/

elasticsearch-head服务访问成功:
在这里插入图片描述

3.2.6 使用Head插件访问elasticsearch

访问失败,要允许跨域,需要修改elasticsearch.yml文件,添加如下内容:

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值