Adding, the following fixed it. Thanks for the heads up.

  "org.apache.predictionio" % "apache-predictionio-data-elasticsearch1_2.10" % 
"0.11.0-incubating",
  "org.apache.predictionio" % "apache-predictionio-data-localfs_2.10" % 
"0.11.0-incubating",
  "org.apache.predictionio" % "apache-predictionio-data-hbase_2.10" % 
"0.11.0-incubating",


Further for “Intellij sbt refresh, is another problem altogether”:



 I instead added the project SBT dependencies to “pio-runtime-jars” and added 
pio-runtime-jars as the class path. This does not result in dependencies 
missing every time SBT refreshes.

From: Pat Ferrel [mailto:[email protected]]
Sent: Thursday, July 20, 2017 8:30 PM
To: [email protected]
Subject: Re: Intellij Pio Train

org.apache.predictionio.data.storage.elasticsearch.StorageClient is what I said 
might need to be hand added. Find the right one for ES 1.7.5 and add it to the 
project as “provided”.  It is not in the main jar, the client for the correct 
version of ES is put on the classpath and loaded with PIO’s CLI and call to 
spark-submit. So when using a debugger it may have no way to find its classes 
since the debugger bypasses the CLI. Mind that the client is the PIO client 
that talks to ES 1.7.5, nothing in the ES namespace.

This is just a guess but the above is true IIRC.


On Jul 20, 2017, at 8:54 AM, [email protected]<mailto:[email protected]> 
wrote:

Thanks Pat,

I’m on ES 1.7.5.


  1.  Adding Elasticsearch client jar will not help
  2.  Intellij is not to be blamed for this instance
  3.  Intellij sbt refresh, is another problem altogether

class. “org.apache.predictionio.data.storage.elasticsearch.StorageClient”. does 
not get merged on running ./make-distribution.sh

in fact ./make-distribution.sh fails to merge the classes 
https://github.com/apache/incubator-predictionio/tree/release/0.11.0/storage to 
PredictionIO-0.11.0-incubating.Jar<https://github.com/apache/incubator-predictionio/tree/release/0.11.0/storage%20to%20PredictionIO-0.11.0-incubating.Jar>


From: Pat Ferrel [mailto:[email protected]]
Sent: Thursday, July 20, 2017 5:27 PM
To: 
[email protected]<mailto:[email protected]>
Cc: 
[email protected]<mailto:[email protected]>
Subject: Re: Intellij Pio Train

+1 This has been a constant problem with PIO due to several non-standard build 
and execution paths in the code. In this case the version of Elasticsearch you 
use determines which version of PIO client classes are used. I have given up on 
using a debugger with PIO after having contributed a fair bit to that how-to. 
You may find that adding the Elasticsearch client jar you are using to the 
IntelliJ project by hand will help. I don’t know for sure.

If you do find a way to get it working please consider updating that how-to. I 
have found IntelliJ to be part of the problem, forgetting some hand config when 
sbt refreshes for instance, but that may have been fixed. Longer term I think 
the idea is to make this easier by smoothing out some things that give 
debuggers problems.


On Jul 20, 2017, at 5:13 AM, [email protected]<mailto:[email protected]> 
wrote:

Hi

Im have  a template that works fine with command line pio train.

however, when I try to debug with Intellij (based on 
https://predictionio.incubator.apache.org/resources/intellij/)

I get an error “Error initializing storage client for source ELASTICSEARCH”.

On in depth inspection I find that it throws an error as it not able to find 
the class. “org.apache.predictionio.data.storage.elasticsearch.StorageClient”.

I looked up my pio-assembly-0.11.0-incubating. Jar the above class is not 
present.

Any help regarding this would be appreciated.

https://drive.google.com/open?id=0ByikS_JzUnoiR2VQS0pqVFhfUW8

above link has the .jar file got after running make-distribution.sh


Med venlig hilsen/Best regards
Hari Charan
Solution Developer

E    [email protected]<mailto:[email protected]%20>
M  +45 50 38 65 83

[cid:[email protected]]
Aldersrogade 8, 2100 Copenhagen, Denmark  | T +45 88 81 80 00 | 
www.scalepoint.com<http://www.scalepoint.com/>

Reply via email to