离线安装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的部署信息文章来源:https://www.toymoban.com/news/detail-588861.html
3.cerebro
我没有配置端口,默认为9000,访问部署机器如192.168.50.210:9000能看到初始页面,他会自动找到集群信息,连接时输入其中的一个节点如http://192.168.50.210:9200就能看到整个3台机器的集群信息文章来源地址https://www.toymoban.com/news/detail-588861.html
到了这里,关于离线安装Elasticsearch7.15.1集群(使用内置jdk)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!