离线安装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台机器的集群信息

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值