Hi Pat,
After changing the indexName the problem for mistaking the models resolved
but I find out that after retraining one model the other one get below error
when sending queries to it.
And as you mentioned I checked engine.json for both apps and they have not any
similar setting
Stack Trace:
org.elasticsearch.indices.IndexMissingException: [abcIndexName] missing
at
org.elasticsearch.cluster.metadata.MetaData.convertFromWildcards(MetaData.java:884)
at
org.elasticsearch.cluster.metadata.MetaData.concreteIndices(MetaData.java:692)
at
org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.<init>(TransportSearchTypeAction.java:118)
at
org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction$AsyncAction.<init>(TransportSearchQueryThenFetchAction.java:71)
at
org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction$AsyncAction.<init>(TransportSearchQueryThenFetchAction.java:65)
at
org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction.doExecute(TransportSearchQueryThenFetchAction.java:62)
at
org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction.doExecute(TransportSearchQueryThenFetchAction.java:52)
at
org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:75)
at
org.elasticsearch.action.search.TransportSearchAction.doExecute(TransportSearchAction.java:100)
at
org.elasticsearch.action.search.TransportSearchAction.doExecute(TransportSearchAction.java:43)
at
org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:75)
at
org.elasticsearch.action.support.HandledTransportAction$TransportHandler.messageReceived(HandledTransportAction.java:63)
at
org.elasticsearch.action.support.HandledTransportAction$TransportHandler.messageReceived(HandledTransportAction.java:51)
at
org.elasticsearch.transport.netty.MessageChannelHandler.handleRequest(MessageChannelHandler.java:222)
at
org.elasticsearch.transport.netty.MessageChannelHandler.messageReceived(MessageChannelHandler.java:114)
at
org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at
org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:296)
at
org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)
at
org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443)
at
org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)
at
org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at
org.elasticsearch.common.netty.OpenChannelsHandler.handleUpstream(OpenChannelsHandler.java:74)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
at
org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at
org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at
org.elasticsearch.common.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
at
org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)
at
org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337)
at
org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
at
org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
at
org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at
org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10
From: Hossein Bahrami<mailto:[email protected]>
Sent: Monday, January 16, 2017 9:18 AM
To: Pat Ferrel<mailto:[email protected]>;
[email protected]<mailto:[email protected]>
Subject: RE: Multiple apps problem
Hi Pat,
Thanks for your help, problem fixed.
The issue was about using same indexNames, everything else was correct except
indexName.
Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10
From: Pat Ferrel<mailto:[email protected]>
Sent: Friday, January 13, 2017 7:40 PM
To:
[email protected]<mailto:[email protected]>
Subject: Re: Multiple apps problem
You have 2 copies of the UR directory and 2 engine.json files and 2 input event
sets? Make sure there are different "indexName" set for each model in the 2
engine.json files. Otherwise training of one engine will wipe out the other
since they point to the same indexName.
To have 2 completely separate applications with different data you need:
1) 2 different EventServer appNames with different appids, create with `pio app
new <your-app-name>`
2) 2 different indexNames for 2 models, set in the 2 engine.json files
3) each engine deployed on a separate port (you have this already)
On Jan 13, 2017, at 12:35 AM, Hossein Bahrami
<[email protected]<mailto:[email protected]>> wrote:
Hi Pat,
I have a Ubuntu machine which PredictionIo (0.9.7-aml) installed on it,
I have two application both based on Universal recommender template.
I trained both of the apps and deployed them on different ports .
Results of the apps were quite normal but the problem which I figured out later
is that one of the apps was predicting items with score zero so I retrained it
then scores become normal numbers but after this action (retraining) the other
app start returning empty results, so I retrained that one and then the first
one returned zero score items again .
This is like closed circle and retraining each of apps causes the other app
return empty results or abnormal zero scored results.
Regards
Hossein
From: Pat Ferrel<mailto:[email protected]>
Sent: Thursday, January 12, 2017 5:57 PM
To:
[email protected]<mailto:[email protected]>
Subject: Re: Multiple apps problem
This forum is to support Apache PIO, and the latest UR runs on it so I advise
you upgrade. Instructions are here on actionml.com<http://actionml.com/> or
here for Apache PIO: http://predictionio.incubator.apache.org/install/
I don't understand your explanation, there should be one train per
PredictionServer, you can't have one PS and two "engines" or configurations.
The 2 engines must be on 2 different ports if deployed separately.
Can you explain your setup and what you are trying to do?
On Jan 12, 2017, at 7:39 AM, Hossein Bahrami
<[email protected]<mailto:[email protected]>> wrote:
Hi everyone,
I have a very strange problem. I have two application running on one
predictionio engine, each time I train one of them the other one's predictions
returning zero score items for one of them and no items at all for the other.
I am using UR algorithm for both of apps
pio version : 0.9.7-aml
regards