打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Elasticsearch
userphoto

2017.11.12

关注

Elasticsearch-2.x应用填坑之路

使用版本说明:2.1.1

  • 强制不能使用root用户启动

因为在2.x版本强调了安全性,防止attracker侵入root用户,所以建议使用者创建其他用户启动。当然,可以通过配置来实现root用户启动。
在bin目录修改elasticsearch.in.sh文件,填加如下配置项:

JAVA_OPTS="$JAVA_OPTS -Des.insecure.allow.root=true"

这样就可以用root用户启动elasticsearch了,当然还是建议大家创建其他用户使用。

  • 节点加入集群

在前面1.x版本中,只要我们配置了同一个网段的IP,然后启动Elasticsearch,那么,各个节点会通过广播的方式获取到所有节点,但是在2.x中,这种配置有点不太适用了,需要我们对集群各个节点的IP配置在统一的集合中,配置文件当然是conf文件夹下的elasticsearch.yml。首先,修改network.host,直接指定为与其他节点通信的IP,修改为:

#该IP自行根据实际情况修改network.host: 192.168.20.177

修改discovery.zen.ping.unicast.hosts配置项,若配置几个节点用端口不是一样的,记住加上端口配置:

#同样,IP和端口自行根据实际情况修改discovery.zen.ping.unicast.hosts: ["192.168.20.177", "192.168.20.178:9310"]
  • elasticsearch-servicewrapper插件的使用

在1.x版本中,我们只要将解压的service目录移动到bin目录下即可使用,但是在2.x版本中,该插件已经基本废弃,看了一下github上的更新时间,都基本过了n个月或n年。所以需要我们手动去修改一些内容,使其能为我们服务。修改service目录下的elasticsearch.conf文件:

1.原始的启动配置为:

wrapper.app.parameter.1=org.elasticsearch.bootstrap.ElasticsearchF

在2.x版本中,启动类做了修改,也不算做修改吧,就是原来的启动类有两个,一个是org.elasticsearch.bootstrap.ElasticsearchF,另一个是org.elasticsearch.bootstrap.Elasticsearch。一个可以将日志打在前台,一个不能而已。在2.x版本中,启动类只有一个,那就是org.elasticsearch.bootstrap.Elasticsearch,且需要我们传递参数启动,修改如下:

wrapper.app.parameter.1=org.elasticsearch.bootstrap.Elasticsearchwrapper.app.parameter.2=start

2.修改root权限启动,因为在用service的时候,其实我们启动就不使用bin目录下的elasticsearch.in.sh脚本了,所以需要我们在service里面添加root配置。在配置文件中追加修改即可:

# Java Additional Parameterswrapper.java.additional.1=-Delasticsearch-servicewrapper.java.additional.2=-Des.path.home=%ES_HOME%wrapper.java.additional.3=-Xss256kwrapper.java.additional.4=-XX:+UseParNewGCwrapper.java.additional.5=-XX:+UseConcMarkSweepGCwrapper.java.additional.6=-XX:CMSInitiatingOccupancyFraction=75wrapper.java.additional.7=-XX:+UseCMSInitiatingOccupancyOnlywrapper.java.additional.8=-XX:+HeapDumpOnOutOfMemoryErrorwrapper.java.additional.9=-Djava.awt.headless=true

追加一行:

wrapper.java.additional.10=-Des.insecure.allow.root=true

原来的那些参数的含义我就不说了,有些是配置常量的,有些是配置JVM的,若有需要可自行更改或添加。

3.设置security

修改ES的配置文件elasticsearch.yml,该配置项没有在配置中给出,我们直接添加即可:

security.manager.enabled: false

其实我们在设置完前两项之后基本上ES就可以启动了,但是我们执行elasticsearch start时会看到启动过程一直运行,如下表现形式:

#./elsaticsearch startStarting Elasticsearch...Waiting for Elasticsearch...............

如果我们不加该配置项,这个地方会一直waiting下去,所以我们需要添加改行配置。

  • FilterBuilder和QueryBuilder

在1.x版本中ES查询条件可以用两种形式进行封装,也就是FilterBuilder和QueryBuilder,根据官方给出的解释,在第二次查询中,FilterBuilder会比QueryBuilder查询速度快,因为存在缓存。在2.x版本中,官方删除了FilterBuilder的所有查询条件,所以若原采用FilterBuilder的项目需要完全改为QueryBuilder,当然,缓存问题本人暂时没有进行相关的深究。

仍在踩坑中,未完待续~~

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Elasticsearch在Centos 7上的安装与配置 |
Linux日志分析ELK环境搭建
elasticsearch基本操作之--使用QueryBuilders进行查询(转载)
ElasticSearch 6 安装、下载
Docker搭建ElasticSearch
使用Gradle构建Java项目
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服