使用版本说明:2.3.2java
强制不能使用root用户启动?
由于在2.x版本强调了安全性,防止attracker侵入root用户,因此建议使用者建立其余用户启动。固然,能够经过配置来实现root用户启动。
在bin目录修改elasticsearch.in.sh文件,填加以下配置项:
JAVA_OPTS="$JAVA_OPTS -Des.insecure.allow.root=true"
这样就能够用root用户启动elasticsearch了,固然仍是建议你们建立其余用户使用。git
节点加入集群?
在前面1.x版本中,只要咱们配置了同一个网段的IP,而后启动Elasticsearch,那么,各个节点会经过广播的方式获取到全部节点,可是在2.x中,这种配置有点不太适用了,须要咱们对集群各个节点的IP配置在统一的集合中,配置文件固然是conf文件夹下的elasticsearch.yml。github
首先,修改network.host,直接指定为与其余节点通讯的IP,修改成:
#该IP自行根据实际状况修改bootstrap
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文件:app
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,且须要咱们传递参数启动,修改以下:less
wrapper.app.parameter.1=org.elasticsearch.bootstrap.Elasticsearch
wrapper.app.parameter.2=startelasticsearch
2.修改root权限启动,由于在用service的时候,其实咱们启动就不使用bin目录下的elasticsearch.in.sh脚本了,因此须要咱们在service里面添加root配置。在配置文件中追加修改便可:
# Java Additional Parameters
wrapper.java.additional.1=-Delasticsearch-service
wrapper.java.additional.2=-Des.path.home=%ES_HOME%
wrapper.java.additional.3=-Xss256k
wrapper.java.additional.4=-XX:+UseParNewGC
wrapper.java.additional.5=-XX:+UseConcMarkSweepGC
wrapper.java.additional.6=-XX:CMSInitiatingOccupancyFraction=75
wrapper.java.additional.7=-XX:+UseCMSInitiatingOccupancyOnly
wrapper.java.additional.8=-XX:+HeapDumpOnOutOfMemoryError
wrapper.java.additional.9=-Djava.awt.headless=true
追加一行:
wrapper.java.additional.10=-Des.insecure.allow.root=true
原来的那些参数的含义我就不说了,些是配置常量的,些是配置JVM的,如有须要可自行更改或添加。ui
3.设置security
修改ES的配置文件elasticsearch.yml,该配置项没有在配置中给出,咱们直接添加便可:
security.manager.enabled: false
其实咱们在设置完前两项以后基本上ES就能够启动了,可是咱们执行elasticsearch start时会看到启动过程一直运行,以下表现形式:
#./elsaticsearch start
Starting Elasticsearch...
Waiting for Elasticsearch...............
若是咱们不加该配置项,这个地方会一直waiting下去,因此咱们须要添加改行配置。
FilterBuilder和QueryBuilder?在1.x版本中ES查询条件能够用两种形式进行封装,也就是FilterBuilder和QueryBuilder,根据官方给出的解释,在第二次查询中,FilterBuilder会比QueryBuilder查询速度快,由于存在缓存。在2.x版本中,官方删除了FilterBuilder的全部查询条件,因此若原采用FilterBuilder的项目须要彻底改成QueryBuilder,固然,缓存问题本人暂时没有进行相关的深究。