离线安装Elasticsearch7.15.1集群(使用内置jdk)

离线安装Elasticsearch7.15.1集群(使用内置jdk)

背景:

以192.168.50.210、192.168.50.211、192.168.50.212这三台机器为例,进行相关的配置
而我本地的jdk是1.8的,已经不符合要求了。但项目中没有那么高版本的jdk,也只想用1.8版本的,只是es用自己内置的jdk而已。

ES安装

1.下载相应的包文件
https://www.elastic.co/cn/downloads/elasticsearch
2.解压后进入该文件夹,编辑config/elasticsearch.yml文件
这三台机器上配置不一样

# 210机器
cluster.name: my_app
node.name: my_node_1
path.data: ./data
path.logs: ./logs
http.port: 9200
transport.port: 9300
network.host: 0.0.0.0
discovery.seed_hosts: ["192.168.50.210", "192.168.50.211", "192.168.50.212"]
cluster.initial_master_nodes: ["my_node_1"]
ingest.geoip.downloader.enabled: false# 211机器
cluster.name: my_app
node.name: my_node_2
path.data: ./data
path.logs: ./logs
http.port: 9200
transport.port: 9300
network.host: 0.0.0.0
discovery.seed_hosts: ["192.168.50.210", "192.168.50.211", "192.168.50.212"]
cluster.initial_master_nodes: ["my_node_1"]
ingest.geoip.downloader.enabled: false# 212机器
cluster.name: my_app
node.name: my_node_3
path.data: ./data
path.logs: ./logs
http.port: 9200
transport.port: 9300
network.host: 0.0.0.0
discovery.seed_hosts: ["192.168.50.210", "192.168.50.211", "192.168.50.212"]
cluster.initial_master_nodes: ["my_node_1"]
ingest.geoip.downloader.enabled: false

上面有几点说明,my_app代表集群名叫“my_app”,my_node_1、2、3代表区分不同机器的节点名,path.data和path.logs代表保存的数据和日志目录http.port是客户端访问的端口,transport.port是集群间通信的端口,network.host这个生产环境不要设置0.0.0.0,这样谁都能访问,比较危险。discovery.seed_hosts代表集群的IP地址cluster.initial_master_nodes这个IP先启动,当成master。ingest.geoip.downloader.enabled设置为false,是因为我是内网,没有外网环境,不跟geoip通信,否则会启动报错

3.还有就是不要用root进行启动,然后修改/etc/sysctl.conf文件(用root用户,es用户还没该文件的写权限)
编辑如下:

vm.max_map_count=262144

保存后执行sysctl -p来使配置生效

4.配置用内置的jdk(如果想用linux上已有的高版本的jdk可以忽略此步骤)
如果linux中没有配置JAVA_HOME(使用 echo $JAVA_HOME看有无输出,如果重新source后需要关闭当前窗口重新打开才行)
如果没有配置JAVA_HOME,那就用内置的jdk了。问题是项目中不止需要安装es,像kibana或cerebro之类的也需要jdk环境,所以我是这样解决的:
是否用内置的jdk判断是在bin/elasticsearch-env的执行文件中配置的,打开这个文件进行修改
大概写着这个的位置:
“# now set the path to java
if [ ! -z “ES_JAVA_HOME”]; then 到这个包含的fi结束,大概有19行,意思大概是先看有无ES_JAVA_HOME变量,有这个用这个;没有这个看有无用JAVA_HOME环境变量,有这个用这个。实在没有就用自带的,判断自带的时候先看是否系统为Darwin,有就读这个(有点像macos的jdk路径),没有就是走最终的

我把上面整个19行,只保留2行,也就是只写着

# now set the path to java
JAVA="$ES_HOME/jdk/bin/java"
JAVA_TYPE="bundled JDK"

这样在启动时,就能看到只读内置jdk的信息了。(如果不是的话,kill掉es的那两个进程,重新调)

5.启动(不要用root)
./bin/elasticsearch -d
(先启动master那台)

kibana安装

别的没啥好说的,注意要和ES的版本保持一致
下载链接:https://artifacts.elastic.co/downloads/kibana/kibana-{es_version}-linux-x86_64.tar.gz
只部署其中一台就可以,修改配置文件config/kibana.yml,机器改成你自己的IP

server.host: "0.0.0.0"
server.port: 5601
elasticsearch.hosts: ["http://192.168.50.210:9200", "http://192.168.50.211:9200", "http://192.168.50.212:9200"]

启动kibana
nohup ./bin/kibana >> run.log 2>&1 &

cerebro安装

这是一个类似head插件的工具,只是这个不用装node,相对省事些。不装也一样,我就想看集群状态
下载地址:https://github.com/lmenezes/cerebro/releases/download/v0.9.4/cerebro-0.9.4.tgz
编辑配置文件 conf/application.conf
别的都用默认就行,最底下的hosts注释掉,或者修改成这3台机器的地址,机器改成自己的IP

hosts = [{host = "192.168.50.210:9200",name = "my_app"},{host = "192.168.50.211:9200",name = "my_app"},{host = "192.168.50.212:9200",name = "my_app"}
]

保存后启动:
nohup .bin/cerebro >> run.log 2>&1 &

安装ik分词器

可以参考:https://blog.csdn.net/wencan579/article/details/130163435
下载和es相对应的版本,直接就可以安装,安装后需要重启es

./bin/elasticsearch-plugin install file:///home/xxx/elasticsearch-analysis-ik-7.15.1.zip 

看效果

1.es:
因为我配置的是9200端口,所以在浏览器输入ip:9200如192.168.50.210:9200,如果能返回集群相应信息,代表启动成功

2.kibana:
因为我配置的是5601端口
所以在部署的那台机器上如192.168.50.210:5601,能看到kibana的部署信息

3.cerebro
我没有配置端口,默认为9000,访问部署机器如192.168.50.210:9000能看到初始页面,他会自动找到集群信息,连接时输入其中的一个节点如http://192.168.50.210:9200就能看到整个3台机器的集群信息

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Excel-公式VLOOKUP 使用方法-小记

个人愚见 表示 MongoDB列中的任意一条数据 在 MySQL列 精确查找 和MongoDB列 中一模一样的数据,有的话返回MongoDB列数据,没有话返回#N/A 官方解释

【Web安全】小白怎么快速挖到第一个漏洞,src漏洞挖掘经验分享,绝对干货!

src漏洞挖掘经验分享 – 掌控安全以恒 一、公益src 公益src是一个白帽子提交随机发现的漏洞的品台,我们可以把我们随机发现或者是主动寻找到的漏洞在漏洞盒子进行提交。 在挖掘src的时候不能越红线,一般情况下遇到SQL注入 只获取数据库名字以证明漏洞的…

myAgv的slam算法学习以及动态避障下篇

引言 在之前的一篇文章中有提到购入了一台myAGV,以树莓派4B为控制核心的移动机器人。上篇文章中向大家介绍了myAGV如何实现建图、导航以及静态避障,但我们深知,这只是机器人自主导航能力的基础。在实际应用场景中,机器人需要面对复…

Flask入门:flask run运行入口函数

背景: 这两天在看后端代码覆盖率平台代码的时候,发现启动服务只需要执行flask run命令即可。但是找了半天都没有看到工程中Flask app实例对象是在哪里创建的。工程中定义了一个create_app()函数,可是没有看到调用它的地方。带着疑惑&#xf…

2023牛客暑期多校训练营1

2023牛客暑期多校训练营1 D-Chocolate 题意 ​ 二人博弈,每局给出一个 n m nm nm的巧克力,每次操作可以选择一个点 ( x , y ) (x,y) (x,y)然后拿走所有 ( i ≤ x & & j ≤ y ) (i \leq x \&\&j\leq y) (i≤x&&j≤y)的巧克力…

创建 CephFS 文件系统 MDS 接口(短暂的分别是为了更好的再见)

文章目录 一、Ceph 简介二、Ceph 特点三、创建 CephFS 文件系统 MDS 接口四、 创建 Ceph 块存储系统 RBD 接口五、 创建 Ceph 对象存储系统 RGW 接口1、对象存储概念2、创建 RGW 接口3、将生成的证书合并为pem OSD 故障模拟与恢复1、模拟 OSD 故障2、将坏掉的 osd 踢出集群 一、…

【react】react18的学习(十一)– 底层原理(一)之 diff 算法

diff算法、fiber链表 步骤:(追求多复用,快渲染) 首次渲染,缓存虚拟dom或fiber链表(17及以后); 组件更新,将新生成的虚拟dom与已有的真实dom的fiber链表对比&#xff1b…

【C语言+sqlite3 API接口】实现水果超市

实验内容: 假如我家开了个水果超市,有以下水果,想实现自动化管理,扫描二维码就能知道当前的水果状态,进货几天了, 好久需要再次进货,那些水果畅销,那些水果不畅销,那些水…

selenium查找svg元素

目录 如何为SVG元素编写XPath 使用local-name()的语法 需要记住的一点 将“and”与SVG元素一起使用 如何定位嵌套的SVG元素? XPath是一种用于定位XML文档中的web元素的语言,包括构成网页的HTML文档。在Selenium中&#xff0…

学习day48

事件的基本使用: 1.使用v-on:xxx或xxx绑定事件,其中xxx是事件名 2.事件的回调需要配置在methods对象中,最终会在vm上 3.methods中配置的函数,不要用箭头函数!否则this就不是vm了 4.methods中配置的函数&…

【计算机视觉】DINOv2(视觉大模型)代码四个不同模型的对比,以 28 * 28 的图像为例(完整的源代码)

文章目录 一、ViT-S/14二、ViT-B/14三、ViT-L/14四、ViT-g/14 一、ViT-S/14 import torch import torchvision.transforms as T import matplotlib.pyplot as plt import numpy as np import matplotlib.image as mpimg from PIL import Image from sklearn.decomposition im…

golang之json注释处理

场景 json 作为现代比较常用的文本格式,本身是不支持注释的,因为它的设计初衷是作为一种轻量级数据交换格式,只需要包含数据本身,而不应该包含注释或者其他无关的信息。 但是有时json内字段较多,想写一些注释说明,这些都是编程工具或者编辑器特有的功能,常见的注释如下…

ES系列--es进阶

一、系统架构 一个运行中的 Elasticsearch 实例称为一个节点,而集群是由一个或者多个拥有相同 cluster.name 配置的节点组成, 它们共同承担数据和负载的压力。当有节点加入集群中或者 从集群中移除节点时,集群将会重新平均分布所有的数据。 …

准备WebUI自动化测试面试?这30个问题你必须掌握(一)

本文共有8600字,包含了前十五个问题,如需要后十五个问题,可查看文末链接~ 1. 什么是WebUI自动化测试? WebUI自动化测试是指使用自动化测试工具和技术来模拟用户在Web用户界面(UI)上执行操作,并…

动态内存管理(C语言)

动态内存管理 1. 为什么存在动态内存管理2. 动态内存函数的介绍2.1 malloc函数和free函数2.2 calloc函数2.3 realloc函数 3. 常见的动态内存错误3.1 对NULL指针的解引用操作3.2 对动态开辟空间的越界访问3.3 对非动态开辟内存使用free函数3.4 使用free释放动态开辟内存的一部分…

C#窗口程序添加最大最小化

要在C#开发的窗口程序中添加最大化和最小化按钮,可以按照以下步骤进行操作: 打开窗口的设计视图,在窗口的标题栏上找到一个名为"ControlBox"的属性,将其设置为"True"。这将显示窗口的控制按钮,包…

android studio开发app实例

以下是一个简单的Android Studio开发App的实例: 1. 打开Android Studio,并创建一个新项目。 2. 选择一个适当的应用程序名称和包名称,然后选择目标API级别和默认Activity的模板。 3. 在MainActivity.java文件中,添加以下代码以…

git创建本地分支并关联远程分支

创建本地分支 git branch 分支名 例如:git branch dev,这条命令是基于当前分支创建的本地分支,假设当前分支是master(远程分支),则是基于master分支创建的本地分支dev。 2. 切换到本地分支 git checkout 分支名 例如&#xff1a…

Python爬虫——urllib_ajax的get请求爬取豆瓣电影前十页

ajax: 就是一段js代码,通过这段代码,可以让页面发送异步的请求,或者向服务器发送一个东西,即和服务器进行交互 对于ajax: 一定会有 url,请求方法(get, post),可能有数据一般使用 j…

京东自动化功能之商品信息监控是否有库存

这里有两个参数,分别是area和skuids area是地区编码,我这里统计了全国各个区县的area编码,用户可以根据实际地址进行构造skuids是商品的信息ID填写好这两个商品之后,会显示两种状态,判断有货或者无货状态,详情如下图所示 简单编写下python代码,比如我们的地址是北京市…