数码资讯
elasticsearch坑爹二三事之——程序启动时的配置文件位置 篇
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
因为要实现安装自动化,所以在安装某个大型系统的elasticsearch 组件的时候用到了如下安装脚本:
但是安装完成之后无论怎么查询,cluster.name都是奇怪的:
讲道理我已经用sed命令将配置文件中的cluster.name字段替换了,但是为什么程序起来之后还是会使用XXX_ES_CLUSTER_NAME这个默认名称呢?
后来才发现,问题出在了倒数第二句 /usr/local/elasticsearch/bin/elasticsearch -d这句话,这句话在执行的时候,当前的路径下是存在了一个elasticsearch.yml的,所以es不再使用位于/usr/local/elasticsearch/config下面的配置文件,而是使用了当前目录下的配置文件,所以启动之后cluster.name一直显示不对。
解决方法就是启动之前,将当前目录下的配置文件删掉就好了:
修改后的安装脚本是:
#!/bin/sh echo "begin start elasticsearch ..." cur_dir=$(pwd) # unzip unzip $cur_dir/elasticsearch-1.4.4.zip # copy yml from current dir to config echo "y"|cp -f elasticsearch.yml $cur_dir/elasticsearch-1.4.4/config # reset cluster name to config file sed -i "s/XXX_ES_CLUSTER_NAME/es$RANDOM$RANDOM/g" $cur_dir/elasticsearch-1.4.4/config/elasticsearch.yml # move to usr /local mv $cur_dir/elasticsearch-1.4.4 /usr/local/elasticsearch cat /usr/local/elasticsearch/config/elasticsearch.yml sleep 10s # delete the yml file in current dir rm -f elasticsearch.yml /usr/local/elasticsearch/bin/elasticsearch -d echo "elasticsearch start success!"
其中的XXX_ES_CLUSTER_NAME是为了替换占位用的,替换成了类似于随机字符的东西,防止多台局域网内的ES形成集群(有特殊需求)。
关键词:
elasticsearch随机指定cluster.name
elasticsearch局域网内防止形成集群
elasticsearch执行备份时提示文件无法共享
elasticsearch配置文件设置无效
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。