关于ElasticSearch搭建集群的闪退问题以及Exception in thread “main” ... 问题

关于ElasticSearch搭建集群的闪退问题以及Exception in thread “main” … 问题

在初次学习使用ElasticSearch搭建集群服务时,免不了会出现一些问题,下面是我一个新人小白的处理过程的分享

这里我使用的ElasticSearch、ik分词器、Kibana可视化界面都是6.8.1的windows版本,必须要保证三者的版本一致。目前官网的最新版本是7.10.2,
我们使用稳定的版本即可。同时,由于ElasticSearch是使用java开发的,且本版本要求的JDK版本要为1.8及以上,所以在启动ElasticSearch之前要确
保JDK1.8+安装配置完毕,并配置好相应的环境变量,否则会出现启动ES失败的相关问题,这里我们不做详细描述。下面贴上Elastic的官方地址以及下载地
址。

Elastic官方地址:https://www.elastic.co/cn/
Elastic下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
ES需要的安装包

首先我们提一下单节点启动ES的闪退问题

	通过在ES的bin目录下运行elasticsearch.bat命令发现“空间不足”
解决方案:
	在解压好的ES目录中找到config/jvm.options文件,将22行、23行的数值改为512m。设置ES启动时占用512M的内存,根据个人电脑的性能配置而设
	置。

修改jvm.options

接下来是在搭建集群时出现的问题

Exception in thread "main" 2021-01-18 08:50:19,700 main ERROR No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to configure Log4j 2
SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: YAMLException[java.io.CharConversionException: Invalid UTF-8 middle byte 0xcf (at char #787, byte #-1)]; nested: CharConversionException[Invalid UTF-8 middle byte 0xcf (at char #787, byte #-1)];
        at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:1139)
        at org.elasticsearch.common.settings.Settings$Builder.loadFromPath(Settings.java:1112)
        at org.elasticsearch.node.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:100)
        at org.elasticsearch.cli.EnvironmentAwareCommand.createEnv(EnvironmentAwareCommand.java:95)
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124)
        at org.elasticsearch.cli.Command.main(Command.java:90)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:116)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93)
Caused by: org.yaml.snakeyaml.error.YAMLException: java.io.CharConversionException: Invalid UTF-8 middle byte 0xcf (at char #787, byte #-1)
        at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:200)
        at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:60)
        at com.fasterxml.jackson.dataformat.yaml.YAMLParser.<init>(YAMLParser.java:152)
        at com.fasterxml.jackson.dataformat.yaml.YAMLFactory._createParser(YAMLFactory.java:420)
        at com.fasterxml.jackson.dataformat.yaml.YAMLFactory.createParser(YAMLFactory.java:321)
        at org.elasticsearch.common.xcontent.yaml.YamlXContent.createParser(YamlXContent.java:85)
        at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:1129)
        ... 8 more
Caused by: java.io.CharConversionException: Invalid UTF-8 middle byte 0xcf (at char #787, byte #-1)
        at com.fasterxml.jackson.dataformat.yaml.UTF8Reader.reportInvalidOther(UTF8Reader.java:394)
        at com.fasterxml.jackson.dataformat.yaml.UTF8Reader.read(UTF8Reader.java:253)
        at com.fasterxml.jackson.dataformat.yaml.UTF8Reader.read(UTF8Reader.java:148)
        at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:184)
        ... 14 more

个人也找了很多百度上的办法解决,如当前root用户的权限、在搭建集群时修改配置配置文件时json格式的数据冒号之后没有加空格等。由于我是在windows
上安装,所以不存在权限的问题,且经过确定了配置文件中没有错误。最终通过报错信息,我们可以看出,是UTF-8编码的格式导致了ES的启动失败。

在这里插入图片描述

在我打开ES配置文件elasticsearch.yml时使用的Notepad++的编码方式并不是UTF-8,且由于我加了中文注释的缘故(虽然已经注释掉),还是会导致编
码发生问题。
解决:
		1、将中文注释全部删掉
		2、修改你所使用的编辑文件工具的编码方式为UTF-8即可

以上就是我在搭建集群闪退时遇到一些小问题的记录处理过程

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值