Cluser:我正在使用elasticsearch 1.3.1,在不同的服务器中有6个节点,这些服务器都通过LAN连接.带宽很高,每个带有45 GB RAM.
配置我们为要运行的节点分配的堆大小为10g.除了唯一的discoverym,集群名称,节点名称和我们2区域之外,我们确实有elasticsearch默认配置.3节点属于一个区域,另一个属于另一个区域.
指数:15,指数总量为76GB.
现在,我正面临着SearchContextMissingExceptionDEBUG日志的异常.它闻起来像一些搜索查询花了很多时间来获取.但我检查了查询,没有查询产生大量的负载...我想知道为什么会发生这种情况.
问题:由于这个问题逐个所有节点开始收集GC.并导致OOM :(
这是我的例外.请帮我解释一下2件事.
SearchContextMissingException?为什么会这样?错误:
[YYYY-MM-DD HH:mm:ss,039][DEBUG][action.search.type ] [es_node_01] [5031530]
Failed to execute fetch phase
org.elasticsearch.transport.RemoteTransportException: [es_node_02][inet[/1x.x.xx.xx:9300]][search/phase/fetch/id]
Caused by: org.elasticsearch.search.SearchContextMissingException: No search context found for id [5031530]
at org.elasticsearch.search.SearchService.findContext(SearchService.java:480)
at org.elasticsearch.search.SearchService.executeFetchPhase(SearchService.java:450)
at org.elasticsearch.search.action.SearchServiceTransportAction$SearchFetchByIdTransportHandler.messageReceived(SearchServiceTransportAction.java:793)
at org.elasticsearch.search.action.SearchServiceTransportAction$SearchFetchByIdTransportHandler.messageReceived(SearchServiceTransportAction.java:782)
at org.elasticsearch.transport.netty.MessageChannelHandler$RequestHandler.run(MessageChannelHandler.java:275)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Run Code Online (Sandbox Code Playgroud) 我有一个名为 paramMap 的属性作为 Map 类型的 POJO。
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeInfo.As;
import com.fasterxml.jackson.annotation.JsonTypeInfo.Id;
import com.fasterxml.jackson.annotation.JsonUnwrapped;
@JsonTypeInfo(include=As.WRAPPER_OBJECT, use=Id.NAME)
public class Pojo {
@JsonUnwrapped
private Map<String, Object> paramMap = new HashMap<String, Object>();
public Map<String, Object> getParamMap() {
return paramMap;
}
public void setParamMap(Map<String, Object> paramMap) {
this.paramMap = paramMap;
}
Run Code Online (Sandbox Code Playgroud)
考虑我在地图中填充了一些值,现在我想序列化它并解开属性名称paramMap。
预期输出:
{
"Pojo": {
"name": "value1",
"age": 12,
"date": "12/02/2015"
}
}
Run Code Online (Sandbox Code Playgroud)
实际产量
{
"Pojo": {
"paramMap": {
"name": "value1",
"age": 12,
"date": "12/02/2015"
}
} …Run Code Online (Sandbox Code Playgroud)