zoukankan      html  css  js  c++  java
  • Elasticsearch-2.3.x填坑之路

    使用版本说明:2.3.2

    强制不能使用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.Elasticsearch
    wrapper.app.parameter.2=start

    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的,若有需要可自行更改或添加。

    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,当然,缓存问题本人暂时没有进行相关的深究。

  • 相关阅读:
    warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    Windows10+CLion+OpenCV4.5.2开发环境搭建
    Android解决部分机型WebView播放视频全屏按钮灰色无法点击、点击全屏白屏无法播放等问题
    MediaCodec.configure Picture Width(1080) or Height(2163) invalid, should N*2
    tesseract
    Caer -- a friendly API wrapper for OpenCV
    Integrating OpenCV python tool into one SKlearn MNIST example for supporting prediction
    Integrating Hub with one sklearn mnist example
    What is WSGI (Web Server Gateway Interface)?
    Hub --- 机器学习燃料(数据)的仓库
  • 原文地址:https://www.cnblogs.com/skyblue/p/5504595.html
Copyright © 2011-2022 走看看