文章目录

  • 安装elasticsearch
    • 下载elasticsearch-8.1.2-linux-x86_64.tar.gz
    • 使用Xshell将文件传入虚拟机
    • 解压
    • 启动elasticsearch
      • 创建新用户和授权
      • 修改系统限制
      • 关闭https选项
      • 修改防火墙配置
  • 安装elasticsearch-head
    • 安装Node.js
    • 安装git
    • 解压
    • 启动elasticsearch-head
  • 搭建elasticsearch集群
    • 修改配置
    • 启动Elasticsearch集群

安装elasticsearch

下载elasticsearch-8.1.2-linux-x86_64.tar.gz

链接:https://pan.baidu.com/s/1Ru85WpIq8uTfj0ucEftvJg
提取码:wxcd

下载得到elasticsearch-8.1.2-linux-x86_64.tar.gz,或者去官网下载
https://www.elastic.co/cn/downloads/elasticsearch
选择好平台

然后点击下载

使用Xshell将文件传入虚拟机

使用sftp协议,主机ip是在命令行输入ifconfig中ens33中的ip地址,第一次需要输入虚拟机登录账户root和密码。将elasticsearch-8.1.2-linux-x86_64.tar.gz传入虚拟机,直接将文件托进命令行就可以上传

解压

tar -xzvf elasticsearch-8.1.2-linux-x86_64.tar.gz
mv elasticsearch-8.1.2 /opt/elasticsearch

启动elasticsearch

启动前需要修改配置文件

vi /opt/elasticsearch/config/elasticsearch.yml

将下面内容在配置中解除注释

cluster.name: my-application #集群名
node.name: node-1 #结点名
network.host: 0.0.0.0 #默认只允许本地访问elasticsearch,修改为0.0.0.0可以任意IP访问本机的elasticsearch
http.port: 9200 #elasticsearch服务开启的端口
/opt/elasticsearch/bin/elasticsearch

出现了如下问题,这是由于因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户

创建新用户和授权

useradd user  #创建用户user
passwd  user  #为用户user设置密码
chown -R user:user /opt/elasticsearch #授权
su user #登录为user用户
/opt/elasticsearch/bin/elasticsearch

出现了如下问题,是可创建的文件数大小太小和最大虚拟内存太小

修改系统限制

su #切换到root用户
vi /etc/security/limits.conf

修改/etc/security/limits.conf 配置文件,在末尾添加如下内容,修改可创建的文件数大小

user soft nofile 65536 #user是新创建的用户名字
user hard nofile 65536 #user是新创建的用户名字
vi /etc/security/limits.d/20-nproc.conf

修改 /etc/security/limits.d/20-nproc.conf 配置文件,在末尾添加如下内容,修改可创建的文件数大小

user       soft    nofile    65536
user       hard    nofile    65536
vim /etc/sysctl.conf

修改 /etc/sysctl.conf 配置文件,在末尾添加如下内容,修改最大虚拟内存大小

vm.max_map_count=655360

运行如下命令重新加载配置,并启动elasticsearch

sysctl -p  #重新加载配置
su user #切换用户
/opt/elasticsearch/bin/elasticsearch #启动elasticsearch

出现如下情况,即启动成功,在低版本elasticsearch我们可以直接访问http://192.168.15.141:9200/就可以看到结果,但是在高版本默认是使用https协议,所以得访问https://192.168.15.141:9200/,但是博主使用浏览器访问时,由于elasticsearch的证书不被信用,无法访问

关闭https选项

可以选择关闭https选项,修改配置

vi /opt/elasticsearch/config/elasticsearch.yml

将如下配置原先的true改为false,将path

xpack.security.enabled: falsexpack.security.enrollment.enabled: false# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:enabled: false
#  keystore.path: certs/http.p12# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:enabled: false
#  verification_mode: certificate
#  keystore.path: certs/http.p12
#  truststore.path: certs/http.p12

重新启动elasticsearch

su user #切换用户
/opt/elasticsearch/bin/elasticsearch #启动elasticsearch

访问http://192.168.15.141:9200/就可以看到结果,每个人的ip都可能不一样,使用ifconfig命令,查看ens33中的ip地址,改成自己的ip即可

修改防火墙配置

如果需要从宿主机访问虚拟机,还需要关闭防火墙或者开启特定端口

firewall-cmd --zone=public --add-port=9200/tcp --permanent #--permanent为永久打开
firewall-cmd --reload #重新载入配置
firewall-cmd --zone=public --list-ports #查看所有打开的端口

或者关闭防火墙

systemctl stop firewalld
systemctl status firewalld

然后在宿主机访问http://192.168.15.141:9200/即可

安装elasticsearch-head

elasticsearch-head用于监控elasticsearch状态,还可以充当elasticsearch的客户端

安装Node.js

elasticsearch-head是一个基于Node.js运行的一个前端项目,使用elasticsearch-head必须安装Node.js

wget https://npmmirror.com/mirrors/node/v16.14.2/node-v16.14.2-linux-x64.tar.xz
tar -xvf node-v16.14.2-linux-x64.tar.xz
mv node-v16.14.2-linux-x64 /opt/nodejs

配置环境遍历

vi /etc/profile

在最后的PATH处后面加一个冒号而不是直接替换成下面的内容因为还有其他软件的环境变量,然后写上解压好的nodejs的bin可运行二进制文件目录

export PATH=$PATH:/opt/nodejs/bin

运行如下命令使配置文件生效

source /etc/profile

判断有无安装成功

node -v
npm -v

出现如下情况则安装成功

安装git

elasticsearch-head托管在github上的项目,可以安装git后git clone下来,也可以直接去github下载

yum install git -y
git clone https://github.com/mobz/elasticsearch-head.git

如果网速太慢也可以从百度云下载下来,再通过XShell传入虚拟机
链接:https://pan.baidu.com/s/1Ik4Y0eXip0FJCWfi_APa8Q
提取码:pdki
最好使用百度云下载下来,是带npm依赖包的,不然还需要安装grunt依赖包

解压

一般通过XShell上传的路径都在 ~,即用户目录,如果是XShell登录的是root用户则是 / 根目录,通过git clone下来的则在当前目录

cd ~
unzip elasticsearch-head-master.zip
mv  elasticsearch-head-master /opt/elasticsearch-head-master

启动elasticsearch-head

启动之前需要安装grunt

npm install -g grunt-cli #全局安装
cd /opt/elasticsearch-head-master
npm run start

如果不是使用百度云下载的则执行如下命令,然后运行npm run start会报错,根据报错的缺少的包,再npm install 包名 --save-dev,把缺少的包都安装好即可

npm install -g grunt-cli #全局安装
cd /opt/elasticsearch-head-master
npm install grunt --save-dev #局部安装
npm run start

启动后,修改防火墙配置或关闭防火墙,然后在宿主机访问http://192.168.15.141:9100/即可,连接集群地址是http://192.168.15.141:9200/,一开始是无法连接成功的,因为elasticsearch禁止跨域访问,跨域即协议、主机名、端口号有一个不同,则无法访问elasticseach,所以需要修改配置

修改配置

vi /opt/elasticsearch/config/elasticsearch.yml

在文件末尾,添加如下配置

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

重新启动elasticseach即可

su user #切换用户
/opt/elasticsearch/bin/elasticsearch #启动elasticsearch

然后再点击连接,就可以看到连接成功

搭建elasticsearch集群

搭建三个elasticsearch服务器组成的集群,先复制两次

su #登录root用户,不然没有权限
cp -a /opt/elasticsearch /opt/elasticsearch1
cp -a /opt/elasticsearch /opt/elasticsearch2

修改配置

/opt/elasticsearch/config/elasticsearch.yml

vi /opt/elasticsearch/config/elasticsearch.yml

修改配置为如下,有些配置需要修改,有些需要添加,cluster.initial_master_nodes本来就有,如果再加则重复配置会无法启动服务器。transport.port的老版本是transport.tcp.port,我使用的版本需要使用transport.port

cluster.name: my-application #集群名称
node.name: node-1 #节点名称
network.host: 0.0.0.0 #设置为能被任意ip访问
http.port: 9200 #服务开启的端口
transport.port: 7777 #内部节点之间通信端口
discovery.seed_hosts: ["localhost:7777","localhost:8888","localhost:9999"]
cluster.initial_master_nodes: ["node-1", "node-2","node-3"]

/opt/elasticsearch1/config/elasticsearch.yml

vi /opt/elasticsearch1/config/elasticsearch.yml
cluster.name: my-application #集群名称
node.name: node-2 #节点名称
node.max_local_storage_nodes: 3  #默认为1,表示集群最多只有一个结点
network.host: 0.0.0.0 #设置为能被任意ip访问
http.port: 9300 #服务开启的端口
transport.port: 8888 #内部节点之间通信端口
discovery.seed_hosts: ["localhost:7777","localhost:8888","localhost:9999"]
cluster.initial_master_nodes: ["node-1", "node-2","node-3"]

/opt/elasticsearch2/config/elasticsearch.yml

vi /opt/elasticsearch2/config/elasticsearch.yml
cluster.name: my-application #集群名称
node.name: node-3 #节点名称
network.host: 0.0.0.0 #设置为能被任意ip访问
http.port: 9400 #服务开启的端口
transport.port: 9999 #内部节点之间通信端口
discovery.seed_hosts: ["localhost:7777","localhost:8888","localhost:9999"]
cluster.initial_master_nodes: ["node-1", "node-2","node-3"]

启动Elasticsearch集群

启动之前必须配置启动的内存大小,否则内存会不足,无法启动3个服务器

vi /opt/elasticsearch/config/jvm.options
vi /opt/elasticsearch1/config/jvm.options
vi /opt/elasticsearch2/config/jvm.options

在上面三个配置文件中添加如下配置,-Xms512m设置堆内存最小值为512MB,-Xmx512m设置堆内存最大值为512MB

-Xms512m
-Xmx512m

开启三个终端,进入user用户,然后启动三个Elasticsearch服务器,启动之前必须把每个elasticsearch文件夹下中的data文件夹删掉,才能连入集群,否则结点无法连入集群,即只有data文件夹不存在启动的结点才能连入一个已经存在的集群

su user
/opt/elasticsearch/bin/elasticsearch
/opt/elasticsearch1/bin/elasticsearch
/opt/elasticsearch2/bin/elasticsearch

出现如下情况表示集群启动成功

从零开始搭建Elasticsearch集群遇到的问题相关推荐

  1. 【Elasticsearch】从零开始搭建ES8集群并且集成到Springboot,更好的服务电商类等需要全文索引的项目(二)

    从零开始搭建Elasticsearch集群(二) 从零开始搭建Elasticsearch集群(二) 为什么使用IK分词器 安装IK分词器到ES的插件库中 安装kibana可视化平台 1.下载 2.配置 ...

  2. 容器编排技术 -- Kubernetes从零开始搭建自定义集群

    容器编排技术 -- Kubernetes从零开始搭建自定义集群 1 设计和准备 1.1 学习 1.2 Cloud Provider 1.3 节点 1.4 网络 1.4.1 网络连接 1.4.2 网络策 ...

  3. 使用Docker搭建Elasticsearch集群环境

    本篇文章首发于头条号单机如何搭建Elasticsearch集群?使用容器技术快速构建集群环境,欢迎关注头条号和微信公众号"大数据技术和人工智能"(微信搜索bigdata_ai_te ...

  4. 用Docker搭建Elasticsearch集群

    用Docker搭建Elasticsearch集群 对于用Docker搭建分布式Elasticsearhc集群的一个介绍,以及一些实施中遇到问题的总结 搜索服务简述 结合业务的场景,在目前的商品体系需要 ...

  5. docker 添加端口映射_苟且偷生的程序猿没法摸鱼了,从docker搭建elasticsearch集群开始学习...

    最近刚换了公司,然后公司刚好使用的docker.而本人作为一个石锤的搬砖员,之前只知道搬砖们,对于这些东西确实没学过.今天在本地使用docker搭建elasticsearch集群,记录下过程,而且el ...

  6. 如何基于Docker快速搭建Elasticsearch集群?

    如何基于Docker快速搭建Elasticsearch集群? Elasticsearch  作为一个搜索引擎,我们对它的基本要求就是存储海量数据并且可以在非常短的时间内查询到我们想要的信息.所以第一步 ...

  7. 基于 Win10 平台 搭建 Elasticsearch 集群

    基于 Win10 平台搭建 Elasticsearch 集群 1. 基本概念 1.1 单机和集群 1.2 节点 2. 部署集群 3. 启动集群 4. 测试集群 1. 基本概念 1.1 单机和集群 ✨单 ...

  8. Docker搭建ElasticSearch集群

    Docker搭建ElasticSearch集群 一.环境准备 Linux Verison(7.9) VMware(16) Docker(20.10.16) ElasticSearch(7.17.1) ...

  9. 从零开始搭建hadoop集群01

    从零开始搭建Hadoop集群,因为我实在走过太多坑了,所以想写出来自己的搭建过程,让大家少走点弯路. 我用的是vm15.5和centos8(以下所有教程都是我用centos8做的,不一样的系统可能有极 ...

  10. 六,搭建elasticsearch集群搭建

    @Author : By Runsen @Date : 2020/6/12 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘 ...

最新文章

  1. 从 Java 档案(JAR) 中读取文件
  2. 用 Redis 实现分布式锁(分析)
  3. unity3d UGUI Scroll View的使用
  4. Win7 一键获得管理所有权限(最高权限)注册表
  5. 【微信小程序】组件只读
  6. apache开源项目--Apache Commons Imaging
  7. 机器人水库涵洞检测_【展商秀】广州市江达潜水疏浚工程有限公司将携水下清淤机器人重磅亮相2020城市管网展览会...
  8. 【旅行】1月17日镇江自驾游
  9. python 列表和字段的相关函数
  10. 杭电acm阶段之理工大版
  11. php代码,IP地址归属地批量查询功能
  12. 小甲鱼c语言 23课指针 数组和数组指针
  13. python程序设计基础答案第七章_Python语言程序设计基础(第2版) 课后题 第七章...
  14. java 多线程 银行排队_3.采用多线程模拟银行排队叫号
  15. 惠普打印机USB安装成功,但断开USB重新连接时显示脱机无法打印问题(上一版本的驱动程序还在内存中,因此无法加载驱动程序)
  16. 编译imx6 android,SAIL-IMX6Q ANDROID开发环境搭建与系统编译
  17. uboot中ftd命令
  18. 从计算机应用的角度进行分类,计算机考试文档
  19. ENVI计算NDVI
  20. yolov5使用教程

热门文章

  1. codeforces Dima and Trap Graph
  2. 3.Go语言中常量,变量, 及其命名规则以及代码风格
  3. docker部署eureka时无法启动容器(问题解决)
  4. 开关电源模块并联供电系统_电磁兼容(EMC)-开关电源中X电容与Y电容的作用
  5. 深度学习第一次作业 - 波士顿房价预测
  6. mysql创建数据库表bank_数据库创建表fk
  7. EuroLLVM’19 developers’ meeting program
  8. 遇到了一个date控件显示的问题
  9. 吴恩达深度学习系列笔记
  10. Improving and Simplifying Pattern Exploiting Training