单机版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: "*"