zoukankan      html  css  js  c++  java
  • elasticsearch.bat闪退的解决方案

    使用Easticsearc时侯启动时,点击elasticsearch.bat发生闪退。
    原因:允许elasticsearch跨越访问时,在修改了elasticsearch的配置文件,并且以非UTF-8的格式修改的,结果就报错了。
    添加跨域访问:

    http.cors.enabled: true
    http.cors.allow‐origin: "*"

    日志:
    java.lang.IllegalArgumentException: unknown setting [http.cors.allow�origin] did you mean [http.cors.allow-origin]?
     问题:查看日志文件可以看出allowe-origin中的符号没有识别。
     解决:原因是在修改elasticsearch.yml时用的notepad++,默认的是ANSI 编码,重新修改配置文件,以UTF-8编码修改并保存。(注意:修改elasticsearch.yml最好只用utf-8编码)

    elasticsearch:6.2.1

    jdk:1.8.0.241  [ java -version]

     我的elasticsearch.yml 配置 ,如下:

    # ======================== Elasticsearch Configuration =========================
    #
    # NOTE: Elasticsearch comes with reasonable defaults for most settings.
    #       Before you set out to tweak and tune the configuration, make sure you
    #       understand what are you trying to accomplish and the consequences.
    #
    # The primary way of configuring a node is via this file. This template lists
    # the most important settings you may want to configure for a production cluster.
    #
    # Please consult the documentation for further information on configuration options:
    # https://www.elastic.co/guide/en/elasticsearch/reference/index.html
    #
    # ---------------------------------- Cluster -----------------------------------
    #
    # Use a descriptive name for your cluster:
    ##配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称。
    cluster.name: lxw-application
    #
    # ------------------------------------ Node ------------------------------------
    #
    # Use a descriptive name for the node:
    ##节点名,通常一台物理服务器就是一个节点,es会默认随机指定一个名字,建议指定一个有意义的名称,方便管理
    node.name: lxw-node-1
    #
    # Add custom attributes to the node:
    #
    #node.attr.rack: r1
    node.master: true  #主节点
    node.data: true  #数据节点
    #
    # ----------------------------------- Paths ------------------------------------
    #
    # Path to directory where to store the data (separate multiple locations by comma):
    #索引目录
    path.data: D:softworeelasticsearch-6.2.1data
    
    # Path to log files:
    #日志
    path.logs: D:softworeelasticsearch-6.2.1logs
    #
    # ----------------------------------- Memory -----------------------------------
    #
    # Lock the memory on startup:
    #
    #bootstrap.memory_lock: true
    #
    # Make sure that the heap size is set to about half the memory available
    # on the system and that the owner of the process is allowed to use this
    # limit.
    #
    # Elasticsearch performs poorly when the system is swapping the memory.
    #
    # ---------------------------------- Network -----------------------------------
    #
    # By default Elasticsearch is only accessible on localhost. Set a different
    # address here to expose this node on the network:
    ##绑定ip地址 我的问题是改的这里
    #network.host: 0.0.0.0
    network.host: 127.0.0.1
    
    #
    # By default Elasticsearch listens for HTTP traffic on the first free port it
    # finds starting at 9200. Set a specific HTTP port here:
    #暴露的http端口
    http.port: 9200
    
    #内部端口
    transport.tcp.port: 9300 
    
    #  跨域设置
    http.cors.enabled: true   
    http.cors.allow-origin: "*"
    
    #
    # For more information, consult the network module documentation.
    #
    # --------------------------------- Discovery ----------------------------------
    #
    # Pass an initial list of hosts to perform discovery when this node is started:
    # The default list of hosts is ["127.0.0.1", "[::1]"]
    #
    #discovery.seed_hosts: ["host1", "host2"]
    #
    # Bootstrap the cluster using an initial set of master-eligible nodes:
    #
    #cluster.initial_master_nodes: ["node-1", "node-2"]
    #
    # For more information, consult the discovery and cluster formation module documentation.
    #
    
    #设置集群中master节点的初始列表
    discovery.zen.ping.unicast.hosts: ["0.0.0.0:9300", "0.0.0.0:9301", "0.0.0.0:9302"] 
    
     #主结点数量的最少值 ,此值的公式为:(master_eligible_nodes / 2) + 1 ,比如:有3个符合要求的主结点,那么这里要设置为2。
    discovery.zen.minimum_master_nodes: 1 
    
    # ---------------------------------- Various -----------------------------------
    #
    # Require explicit names when deleting indices:
    #
    #action.destructive_requires_name: true
    

    报错如下: 

    D:softworeelasticsearch-6.2.1in>elasticsearch.bat
    [2021-08-16T14:56:26,659][INFO ][o.e.n.Node               ] [lxw-node-1] initializing ...
    [2021-08-16T14:56:26,753][INFO ][o.e.e.NodeEnvironment    ] [lxw-node-1] using [1] data paths, mounts [[(D:)]], net usable_space [380.2gb], net total_space [390.6gb], types [NTFS]
    [2021-08-16T14:56:26,754][INFO ][o.e.e.NodeEnvironment    ] [lxw-node-1] heap size [990.7mb], compressed ordinary object pointers [true]
    [2021-08-16T14:56:26,756][INFO ][o.e.n.Node               ] [lxw-node-1] node name [lxw-node-1], node ID [JdIIBJ5NRYSD52RuvkxTiQ]
    [2021-08-16T14:56:26,756][INFO ][o.e.n.Node               ] [lxw-node-1] version[6.2.1], pid[13648], build[7299dc3/2018-02-07T19:34:26.990113Z], OS[Windows 10/10.0/amd64], JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/1.8.0_241/25.241-b07]
    [2021-08-16T14:56:26,757][INFO ][o.e.n.Node               ] [lxw-node-1] JVM arguments [-Xms1g, -Xmx1g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.io.tmpdir=C:UsersLEJUAppDataLocalTempelasticsearch, -XX:+HeapDumpOnOutOfMemoryError, -XX:+PrintGCDetails, -XX:+PrintGCDateStamps, -XX:+PrintTenuringDistribution, -XX:+PrintGCApplicationStoppedTime, -Xloggc:logs/gc.log, -XX:+UseGCLogFileRotation, -XX:NumberOfGCLogFiles=32, -XX:GCLogFileSize=64m, -Delasticsearch, -Des.path.home=D:softworeelasticsearch-6.2.1, -Des.path.conf=D:softworeelasticsearch-6.2.1config]
    [2021-08-16T14:56:27,485][INFO ][o.e.p.PluginsService     ] [lxw-node-1] loaded module [aggs-matrix-stats]
    [2021-08-16T14:56:27,485][INFO ][o.e.p.PluginsService     ] [lxw-node-1] loaded module [analysis-common]
    [2021-08-16T14:56:27,493][INFO ][o.e.p.PluginsService     ] [lxw-node-1] loaded module [ingest-common]
    [2021-08-16T14:56:27,494][INFO ][o.e.p.PluginsService     ] [lxw-node-1] loaded module [lang-expression]
    [2021-08-16T14:56:27,494][INFO ][o.e.p.PluginsService     ] [lxw-node-1] loaded module [lang-mustache]
    [2021-08-16T14:56:27,496][INFO ][o.e.p.PluginsService     ] [lxw-node-1] loaded module [lang-painless]
    [2021-08-16T14:56:27,497][INFO ][o.e.p.PluginsService     ] [lxw-node-1] loaded module [mapper-extras]
    [2021-08-16T14:56:27,497][INFO ][o.e.p.PluginsService     ] [lxw-node-1] loaded module [parent-join]
    [2021-08-16T14:56:27,498][INFO ][o.e.p.PluginsService     ] [lxw-node-1] loaded module [percolator]
    [2021-08-16T14:56:27,498][INFO ][o.e.p.PluginsService     ] [lxw-node-1] loaded module [rank-eval]
    [2021-08-16T14:56:27,499][INFO ][o.e.p.PluginsService     ] [lxw-node-1] loaded module [reindex]
    [2021-08-16T14:56:27,499][INFO ][o.e.p.PluginsService     ] [lxw-node-1] loaded module [repository-url]
    [2021-08-16T14:56:27,500][INFO ][o.e.p.PluginsService     ] [lxw-node-1] loaded module [transport-netty4]
    [2021-08-16T14:56:27,500][INFO ][o.e.p.PluginsService     ] [lxw-node-1] loaded module [tribe]
    [2021-08-16T14:56:27,501][INFO ][o.e.p.PluginsService     ] [lxw-node-1] no plugins loaded
    [2021-08-16T14:56:28,679][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [lxw-node-1] uncaught exception in thread [main]
    org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: unknown setting [http.cors.allow鈥恛rigin] did you mean [http.cors.allow-origin]?
            at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.2.1.jar:6.2.1]
            at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.2.1.jar:6.2.1]
            at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.2.1.jar:6.2.1]
            at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.2.1.jar:6.2.1]
            at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.2.1.jar:6.2.1]
            at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.2.1.jar:6.2.1]
            at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.2.1.jar:6.2.1]
    Caused by: java.lang.IllegalArgumentException: unknown setting [http.cors.allow鈥恛rigin] did you mean [http.cors.allow-origin]?
            at org.elasticsearch.common.settings.AbstractScopedSettings.validate(AbstractScopedSettings.java:346) ~[elasticsearch-6.2.1.jar:6.2.1]
            at org.elasticsearch.common.settings.AbstractScopedSettings.validate(AbstractScopedSettings.java:310) ~[elasticsearch-6.2.1.jar:6.2.1]
            at org.elasticsearch.common.settings.AbstractScopedSettings.validate(AbstractScopedSettings.java:284) ~[elasticsearch-6.2.1.jar:6.2.1]
            at org.elasticsearch.common.settings.SettingsModule.<init>(SettingsModule.java:134) ~[elasticsearch-6.2.1.jar:6.2.1]
            at org.elasticsearch.node.Node.<init>(Node.java:331) ~[elasticsearch-6.2.1.jar:6.2.1]
            at org.elasticsearch.node.Node.<init>(Node.java:246) ~[elasticsearch-6.2.1.jar:6.2.1]
            at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:213) ~[elasticsearch-6.2.1.jar:6.2.1]
            at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:213) ~[elasticsearch-6.2.1.jar:6.2.1]
            at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:323) ~[elasticsearch-6.2.1.jar:6.2.1]
            at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-6.2.1.jar:6.2.1]

    解决方法:

    将原来的:注意版本问题,不同版本兼容性不一样

    补充:解决Elasticsearch(Windows)闪退问题

    进入Elasticsearch安装目录下的config目录,修改elasticsearch.yml文件.在文件的末尾加入以下代码

    http.cors.enabled: true 
    http.cors.allow-origin: "*"
    cluster.name: pengliang
    node.name: master
    node.master: true
    network.host: 127.0.0.1


     发现持续闪退。这时候我一开始只加入前两行的时候,发现可以正常运行。于是推理了一下,其实可以看日志,但是可能我比较懒,直接感觉加的ip绑定有问题,于是删除最后一行,重新保存启动,发现可以正常运行,好像是因为Elasticsearch是夸域的,具体可能是什么问题,没有细查
     

    参考:elasticsearch.bat闪退的解决方案

    赞赏码

    非学,无以致疑;非问,无以广识

  • 相关阅读:
    SpringCloud组件---Ribbon
    SpringCloud组件---Eureka
    tomcat及Jetty远程调试debug
    mysql 删除重复数据
    mysql执行SQL语句时报错:[Err] 3
    线程池原理剖析
    上限下限
    线程池Executors、Callable与Future的应用
    spring获取bean(自定义工具类)
    java.util.concurrent.Exchanger应用范例
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15452503.html
Copyright © 2011-2022 走看看