Ibm mobilefirst IBM Worklight 6.2分析群集拓扑

Ibm mobilefirst IBM Worklight 6.2分析群集拓扑,ibm-mobilefirst,worklight-server,worklight-analytics,Ibm Mobilefirst,Worklight Server,Worklight Analytics,环境详情: 工作灯:6.2 应用服务器:Liberty 8.5.5.0 操作系统:Windows Server 2008 r2 我试图在Worklight 6.2中实现操作分析的群集拓扑。以下是步骤 创建了两个liberty server实例analytics1和analytics2 已将analytics.war文件复制到两台服务器的apps文件夹中 在analytis1服务器的server.xml中,我已配置为主节点 jndiEntry jndiName=分析/节点类型值=主节点 jndiE

环境详情: 工作灯:6.2

应用服务器:Liberty 8.5.5.0

操作系统:Windows Server 2008 r2

我试图在Worklight 6.2中实现操作分析的群集拓扑。以下是步骤

创建了两个liberty server实例analytics1和analytics2

已将analytics.war文件复制到两台服务器的apps文件夹中

在analytis1服务器的server.xml中,我已配置为主节点

jndiEntry jndiName=分析/节点类型值=主节点 jndiEntry jndiName=分析/碎片值=2 jndiEntry jndiName=分析/副本/碎片值=2

在analytics2服务器的server.xml 0中,我已配置为数据节点

jndiEntry jndiName=分析/节点类型值=数据 jndiEntry jndiName=分析/主节点 值=XX.XX.XX.XX:9600

此拓扑中未填充数据

如果将其作为单个节点进行尝试,即不将nodetype设置为master或data,则会显示分析结果

以下是我的日志跟踪

    [10/11/14 23:23:30:351 GST] 00000021 com.ibm.ws.webcontainer.servlet                              I SRVE0242I: [analytics] [/analytics] [data]: Initialization successful.
[10/11/14 23:24:11:920 GST] 00000021 org.apache.wink.server.internal.RequestProcessor             E An unhandled exception occurred which will be propagated to the container.
[10/11/14 23:24:11:955 GST] 00000021 com.ibm.ws.webcontainer.util.ApplicationErrorUtils           E SRVE0777E: Exception thrown by application class 'org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.onFirstPhaseResult:276'
org.elasticsearch.action.search.SearchPhaseExecutionException: Failed to execute phase [query], all shards failed
    at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.onFirstPhaseResult(TransportSearchTypeAction.java:276)
    at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.start(TransportSearchTypeAction.java:147)
    at org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction.doExecute(TransportSearchQueryThenFetchAction.java:59)
    at org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction.doExecute(TransportSearchQueryThenFetchAction.java:49)
    at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:63)
    at org.elasticsearch.action.search.TransportSearchAction.doExecute(TransportSearchAction.java:108)
    at org.elasticsearch.action.search.TransportSearchAction.doExecute(TransportSearchAction.java:43)
    at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:63)
    at org.elasticsearch.client.node.NodeClient.execute(NodeClient.java:92)
    at org.elasticsearch.client.support.AbstractClient.search(AbstractClient.java:212)
    at org.elasticsearch.action.search.SearchRequestBuilder.doExecute(SearchRequestBuilder.java:1043)
    at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:85)
    at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:59)
    at com.ibm.elasticsearch.util.ESUtility.genericFacet(ESUtility.java:155)
    at com.ibm.elasticsearch.util.ESUtility.genericFacet(ESUtility.java:139)
    at com.ibm.elasticsearch.util.ESUtility.genericFacet(ESUtility.java:210)
    at com.ibm.elasticsearch.rest.Common.getGadgets(Common.java:51)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)

问题在于,如果没有数据节点,主节点无法显示数据,并且如果没有首先连接到主节点,数据节点将无法运行。我认为这不起作用,因为您的两个节点一开始就没有通信

Karikalan的评论是正确的,为什么数据节点上的masternodes JNDI属性设置为localhost?这意味着,当数据节点启动时,它将尝试在localhost:9600上查找主节点,该节点将无法工作,因为它只是将其指向自身。尝试将localhost:9600更改为具有主节点的服务器的IP地址

此外,如果您只计划使用两个节点,那么我不建议使用单独的主节点和数据节点。如果有多个其他节点需要由多个(我是说5+个)节点管理,那么主节点会有所帮助。由于只有两个节点,一个作为主节点,一个作为数据节点将浪费资源。您应该将两个节点都设置为充当主节点和数据节点,这可以通过不设置analytics/nodetype JNDI属性来实现。然后在每台服务器上设置masternodes JNDI属性以指向另一台服务器

编辑:

你能试一下吗

停止两台服务器 删除与server.xml位于同一文件夹中的每台服务器的analyticsData文件夹 为了安全起见,暂时将“每个碎片的副本数”值设置为1 首先启动主节点,然后访问主节点的控制台 启动数据节点并访问数据节点的控制台 尝试将数据发送到分析群集
你能试着用IP替换本地主机吗?如果你发现对这个问题有用,也可以用日志更新你的问题。嗨,谢谢你宝贵的回答。因为我将两台服务器都放在同一台机器上,所以它被称为localhost。现在一台服务器被移动到另一台机器上,我使用了ip。即使这样,我也无法实现集群。我还用日志记录更新了我的问题。