elasticsearch.bat闪退的解决方案

2022-02-20 09:29:31 浏览数 (1)

大家好,又见面了,我是全栈君。

使用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 配置 ,如下:

代码语言:javascript复制
# ======================== 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

报错如下:

代码语言:javascript复制
D:softworeelasticsearch-6.2.1bin>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文件.在文件的末尾加入以下代码

代码语言:javascript复制
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闪退的解决方案

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/111477.html原文链接:https://javaforall.cn

0 人点赞