面试题答案
一键面试1. ElasticSearch集群节点间通信故障
假设集群中有节点A、B、C,节点A与节点B通信故障。
- 启用堆栈跟踪API:通过调用
/_nodes/stats?filter_path=nodes.*.transport
等相关堆栈跟踪API来获取节点间传输层相关的统计信息和可能的堆栈跟踪数据。 - 定位问题:例如,如果堆栈跟踪信息显示节点A在尝试连接节点B时出现
ConnectException
,堆栈信息会指出具体的连接错误位置,如java.net.ConnectException: Connection refused
,进一步查看端口配置、网络防火墙等问题,判断是节点B的监听端口未正确开放,还是网络层面存在阻止连接的规则。
2. 索引创建失败
当尝试创建索引 my_index
失败时。
- 启用堆栈跟踪API:可以调用
/_cluster/health?level=indices
等相关API,这些API会返回索引相关的状态信息。同时,如果有详细的错误日志,其中也会包含堆栈跟踪信息。 - 定位问题:比如堆栈跟踪信息显示
MapperParsingException
,提示字段映射解析错误,如Caused by: org.elasticsearch.index.mapper.MapperParsingException: failed to parse field [my_field] of type [text]
,从堆栈信息可以看出是在创建索引过程中对my_field
字段的映射解析出错,可能是映射语法错误,进一步检查索引创建请求中的字段映射定义部分,修正错误语法。