ES(elasticsearch)给集群创建用户失败解决方法

在尝试为Elasticsearch集群创建用户时遇到错误,执行`./elasticsearch-keystore create`失败。问题源于配置文件elasticsearch.yml中配置项缺少前导空格。修正方法是确保每个配置项行首添加一个空格,此问题已解决。

目录

问题现象:

问题分析:

总结:


问题现象:

        今日在测试机安装elasticsearch至创建用户这一步骤时,执行./elasticsearch-keystore create失败具体报错信息如下:

Exception in thread "main" SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: MarkedYAMLException[while parsing a block mapping
 in 'reader', line 2, column 1:
    cluster.name: myapplication
    ^
expected <block end>, but found BlockMappingStart
 in 'reader', line 4, column 2:
     node.name: localhost
     ^

 at [Source: sun.nio.ch.ChannelInputStream@7d9e8ef7; line: 2, column: 28]]; nested: ParserException[while parsing a block mapping
 in 'reader', line 2, column 1:
    cluster.name: myapplication
    ^
expected <block end>, but found BlockMappingStart
 in 'reader', line 4, column 2:
     node.name: localhost
     ^
];
	at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:1097)
	at org.elasticsearch.common.settings.Settings$Builder.loadFromPath(Settings.java:1070)
	at org.elasticsearch.node.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:83)
	at org.elasticsearch.cli.EnvironmentAwareCommand.createEnv(EnvironmentAwareCommand.java:100)
	at org.elasticsearch.cli.EnvironmentAwareCommand.createEnv(EnvironmentAwareCommand.java:91)
	at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
	at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:125)
	at org.elasticsearch.cli.MultiCommand.execute(MultiCommand.java:91)
	at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:125)
	at org.elasticsearch.cli.Command.main(Command.java:90)
	at org.elasticsearch.common.settings.KeyStoreCli.main(KeyStoreCli.java:41)
Caused by: com.fasterxml.jackson.dataformat.yaml.snakeyaml.error.MarkedYAMLException: while parsing a block mapping
 in 'reader', line 2, column 1:
    cluster.name: myapplication
    ^
expected <block end>, but found BlockMappingStart
 in 'reader', line 4, column 2:
     node.name: localhost
     ^

 at [Source: sun.nio.ch.ChannelInputStream@7d9e8ef7; line: 2, column: 28]
	at com.fasterxml.jackson.dataformat.yaml.snakeyaml.error.MarkedYAMLException.from(MarkedYAMLException.java:27)
	at com.fasterxml.jackson.dataformat.yaml.YAMLParser.nextToken(YAMLParser.java:343)
	at org.elasticsearch.common.xcontent.json.JsonXContentParser.nextToken(JsonXContentParser.java:52)
	at org.elasticsearch.common.settings.Settings.fromXContent(Settings.java:645)
	at org.elasticsearch.common.settings.Settings.fromXContent(Settings.java:620)
	at org.elasticsearch.common.settings.Settings.access$400(Settings.java:82)
	at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:1093)
	... 10 more
Caused by: while parsing a block mapping
 in 'reader', line 2, column 1:
    cluster.name: myapplication
    ^
expected <block end>, but found BlockMappingStart
 in 'reader', line 4, column 2:
     node.name: localhost
     ^

	at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:569)
	at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:157)
	at org.yaml.snakeyaml.parser.ParserImpl.getEvent(ParserImpl.java:167)
	at com.fasterxml.jackson.dataformat.yaml.YAMLParser.nextToken(YAMLParser.java:340)
	... 15 more

问题分析:

       在编辑配置文件elasticsearch.yml时,配置项所在行开头没有空格,导致./elasticsearch-keystore create执行失败

 解决方法:

        在编辑配置文件elasticsearch.yml时,每个配置项所在行开头都添加一个空格,问题解决!!

总结:

         这是elasticsearch的一个bug,也是很多人容易犯的错误,注意空格的使用,每个配合项冒号后面也要有一个空格。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

判官Sir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值