You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@predictionio.apache.org by Hamza Faraji <fa...@gmail.com> on 2018/04/30 10:11:56 UTC

PredictionIO Intellij Setup problem

Hi, this is my first time posting so i'm not sure if this is the right
place !
I have been trying to setup Intellij IDEA CE in order to start customizing
the recommendation template engine, I followed all the steps here
<https://predictionio.apache.org/resources/intellij/> but I keep getting
the same error :

log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: /pio.log (Permission denied)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:133)
at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)
at
org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)
at
org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)
at
org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)
at
org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)
at
org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648)
at
org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514)
at
org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:580)
at
org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526)
at org.apache.log4j.LogManager.<clinit>(LogManager.java:127)
at
org.apache.predictionio.workflow.WorkflowUtils$.modifyLogging(WorkflowUtils.scala:275)
at
org.apache.predictionio.workflow.CreateWorkflow$.main(CreateWorkflow.scala:146)
at
org.apache.predictionio.workflow.CreateWorkflow.main(CreateWorkflow.scala)
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in
[jar:file:/Users/Hamza07/.ivy2/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.7.18.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in
[jar:file:/Users/Hamza07/PredictionIO/PredictionIO-0.12.1/lib/pio-assembly-0.12.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in
[jar:file:/Users/Hamza07/PredictionIO/PredictionIO-0.12.1/vendors/spark-2.1.1-bin-hadoop2.6/jars/slf4j-log4j12-1.7.16.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
[INFO] [Engine] Extracting datasource params...
[INFO] [WorkflowUtils$] No 'name' is found. Default empty String will be
used.
[INFO] [Engine] Datasource params: (,DataSourceParams(MyApp,None))
[INFO] [Engine] Extracting preparator params...
[INFO] [Engine] Preparator params: (,Empty)
[INFO] [Engine] Extracting serving params...
[INFO] [Engine] Serving params: (,Empty)
Exception in thread "main"
org.apache.predictionio.data.storage.StorageClientException: Data source
ELASTICSEARCH was not properly initialized.
at
org.apache.predictionio.data.storage.Storage$$anonfun$10.apply(Storage.scala:316)
at
org.apache.predictionio.data.storage.Storage$$anonfun$10.apply(Storage.scala:316)
at scala.Option.getOrElse(Option.scala:121)
at
org.apache.predictionio.data.storage.Storage$.getDataObject(Storage.scala:315)
at
org.apache.predictionio.data.storage.Storage$.getDataObjectFromRepo(Storage.scala:300)
at
org.apache.predictionio.data.storage.Storage$.getMetaDataEngineInstances(Storage.scala:402)
at
org.apache.predictionio.workflow.CreateWorkflow$.main(CreateWorkflow.scala:248)
at
org.apache.predictionio.workflow.CreateWorkflow.main(CreateWorkflow.scala)
[ERROR] [Storage$] Error initializing storage client for source
ELASTICSEARCH.
java.lang.ClassNotFoundException: elasticsearch.StorageClient
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at
org.apache.predictionio.data.storage.Storage$.getClient(Storage.scala:257)
at
org.apache.predictionio.data.storage.Storage$.org$apache$predictionio$data$storage$Storage$$updateS2CM(Storage.scala:283)
at
org.apache.predictionio.data.storage.Storage$$anonfun$sourcesToClientMeta$1.apply(Storage.scala:244)
at
org.apache.predictionio.data.storage.Storage$$anonfun$sourcesToClientMeta$1.apply(Storage.scala:244)
at scala.collection.mutable.MapLike$class.getOrElseUpdate(MapLike.scala:194)
at scala.collection.mutable.AbstractMap.getOrElseUpdate(Map.scala:80)
at
org.apache.predictionio.data.storage.Storage$.sourcesToClientMeta(Storage.scala:244)
at
org.apache.predictionio.data.storage.Storage$.getDataObject(Storage.scala:315)
at
org.apache.predictionio.data.storage.Storage$.getDataObjectFromRepo(Storage.scala:300)
at
org.apache.predictionio.data.storage.Storage$.getMetaDataEngineInstances(Storage.scala:402)
at
org.apache.predictionio.workflow.CreateWorkflow$.main(CreateWorkflow.scala:248)
at
org.apache.predictionio.workflow.CreateWorkflow.main(CreateWorkflow.scala)




Process finished with exit code 1

NOTE : pio build, train and all other commands are working on the command
line, and I copied the same environment variables but it doesn't seem to
work !

Thanks in advance

Re: PredictionIO Intellij Setup problem

Posted by Hamza Faraji <fa...@gmail.com>.
Hi Selvaraju Sellamuthu,
May be i haven't mentioned it before, but PredictionIO works just fine in
the command line, using the same environment variables that are shown in
Intellij's interface.
PS : I've just launched elasticsearch form the bin path without a problem
using curl :

    curl -XGET 'http://localhost:9200/_count?pretty' -d '
   {
       "query": {
           "match_all": {}
       }
   }
  '

I could get the following output :

  {
     "count" : 18,
     "_shards" : {
        "total" : 5,
        "successful" : 5,
        "failed" : 0
     }
  }

so everything seems to be working fine.

Regards,
Hamza

On Tue, May 1, 2018 at 11:37 PM, Selvaraju Sellamuthu <
selvaraju.june21.usa@gmail.com> wrote:

> Spin up your elastic search cluster from elasticsearch bin path and try to
> check cluster status, add documents ... if everything is fine with elastic
> search, then you can figure out PIO configuration for elasticsearch.
>
> If any errors post it here...
>
> On Tue, May 1, 2018 at 1:57 PM Hamza Faraji <fa...@gmail.com>
> wrote:
>
>> Sorry for my late reply, here is my Intellij config :
>>
>> ​
>> Main class: org.apache.predictionio.workflow.CreateWorkflow
>> VM options: -Dspark.master=local -Dlog4j.configuration=file:/
>> Users/Hamza07/PredictionIO/PredictionIO-0.12.1/conf/log4j.properties
>> -Dpio.log.dir=/Users/Hamza07/Desktop
>>
>> Program arguments: --engine-variant file:/Users/Hamza07/Desktop/
>> intern_project/MyRecommendation/engine.json --engine-id
>> org.example.recommendation.RecommendationEngine --engine-version default
>> --debug --json-extractor Both --verbosity 0
>>
>> Working directory: /Users/Hamza07/Desktop/intern_project/MyRecommendation
>> Environment variables: (shown in the screenshot)
>> Use classpath of module: myrecommendation
>>
>> As for the environment variables :
>>
>>
>> ​
>> PS : The permission error was because the -Dpio.log.dir parameter was
>> not specified, the remaining problem now concerns elasticsearch
>> initialization
>> Thanks again !
>>
>>
>> On Tue, May 1, 2018 at 4:28 PM, Donald Szeto <do...@apache.org> wrote:
>>
>>> Hi,
>>>
>>> This is definitely the right place. Could you provide a screenshot of
>>> your run configuration in IntelliJ please? Showing what you have in your
>>> env vars would be helpful.
>>>
>>> Regards,
>>> Donald
>>>
>>> On Mon, Apr 30, 2018 at 3:12 AM Hamza Faraji <fa...@gmail.com>
>>> wrote:
>>>
>>>> Hi, this is my first time posting so i'm not sure if this is the right
>>>> place !
>>>> I have been trying to setup Intellij IDEA CE in order to start
>>>> customizing the recommendation template engine, I followed all the steps
>>>> here <https://predictionio.apache.org/resources/intellij/> but I keep
>>>> getting the same error :
>>>>
>>>> log4j:ERROR setFile(null,true) call failed.
>>>> java.io.FileNotFoundException: /pio.log (Permission denied)
>>>> at java.io.FileOutputStream.open0(Native Method)
>>>> at java.io.FileOutputStream.open(FileOutputStream.java:270)
>>>> at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
>>>> at java.io.FileOutputStream.<init>(FileOutputStream.java:133)
>>>> at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
>>>> at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
>>>> at org.apache.log4j.config.PropertySetter.activate(
>>>> PropertySetter.java:307)
>>>> at org.apache.log4j.config.PropertySetter.setProperties(
>>>> PropertySetter.java:172)
>>>> at org.apache.log4j.config.PropertySetter.setProperties(
>>>> PropertySetter.java:104)
>>>> at org.apache.log4j.PropertyConfigurator.parseAppender(
>>>> PropertyConfigurator.java:842)
>>>> at org.apache.log4j.PropertyConfigurator.parseCategory(
>>>> PropertyConfigurator.java:768)
>>>> at org.apache.log4j.PropertyConfigurator.configureRootCategory(
>>>> PropertyConfigurator.java:648)
>>>> at org.apache.log4j.PropertyConfigurator.doConfigure(
>>>> PropertyConfigurator.java:514)
>>>> at org.apache.log4j.PropertyConfigurator.doConfigure(
>>>> PropertyConfigurator.java:580)
>>>> at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(
>>>> OptionConverter.java:526)
>>>> at org.apache.log4j.LogManager.<clinit>(LogManager.java:127)
>>>> at org.apache.predictionio.workflow.WorkflowUtils$.
>>>> modifyLogging(WorkflowUtils.scala:275)
>>>> at org.apache.predictionio.workflow.CreateWorkflow$.main(
>>>> CreateWorkflow.scala:146)
>>>> at org.apache.predictionio.workflow.CreateWorkflow.main(
>>>> CreateWorkflow.scala)
>>>> SLF4J: Class path contains multiple SLF4J bindings.
>>>> SLF4J: Found binding in [jar:file:/Users/Hamza07/.
>>>> ivy2/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.
>>>> 7.18.jar!/org/slf4j/impl/StaticLoggerBinder.class]
>>>> SLF4J: Found binding in [jar:file:/Users/Hamza07/
>>>> PredictionIO/PredictionIO-0.12.1/lib/pio-assembly-0.12.1.
>>>> jar!/org/slf4j/impl/StaticLoggerBinder.class]
>>>> SLF4J: Found binding in [jar:file:/Users/Hamza07/
>>>> PredictionIO/PredictionIO-0.12.1/vendors/spark-2.1.1-bin-
>>>> hadoop2.6/jars/slf4j-log4j12-1.7.16.jar!/org/slf4j/impl/
>>>> StaticLoggerBinder.class]
>>>> SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
>>>> explanation.
>>>> SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
>>>> [INFO] [Engine] Extracting datasource params...
>>>> [INFO] [WorkflowUtils$] No 'name' is found. Default empty String will
>>>> be used.
>>>> [INFO] [Engine] Datasource params: (,DataSourceParams(MyApp,None))
>>>> [INFO] [Engine] Extracting preparator params...
>>>> [INFO] [Engine] Preparator params: (,Empty)
>>>> [INFO] [Engine] Extracting serving params...
>>>> [INFO] [Engine] Serving params: (,Empty)
>>>> Exception in thread "main" org.apache.predictionio.data.storage.StorageClientException:
>>>> Data source ELASTICSEARCH was not properly initialized.
>>>> at org.apache.predictionio.data.storage.Storage$$anonfun$10.
>>>> apply(Storage.scala:316)
>>>> at org.apache.predictionio.data.storage.Storage$$anonfun$10.
>>>> apply(Storage.scala:316)
>>>> at scala.Option.getOrElse(Option.scala:121)
>>>> at org.apache.predictionio.data.storage.Storage$.
>>>> getDataObject(Storage.scala:315)
>>>> at org.apache.predictionio.data.storage.Storage$.
>>>> getDataObjectFromRepo(Storage.scala:300)
>>>> at org.apache.predictionio.data.storage.Storage$.
>>>> getMetaDataEngineInstances(Storage.scala:402)
>>>> at org.apache.predictionio.workflow.CreateWorkflow$.main(
>>>> CreateWorkflow.scala:248)
>>>> at org.apache.predictionio.workflow.CreateWorkflow.main(
>>>> CreateWorkflow.scala)
>>>> [ERROR] [Storage$] Error initializing storage client for source
>>>> ELASTICSEARCH.
>>>> java.lang.ClassNotFoundException: elasticsearch.StorageClient
>>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>>>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>>>> at java.lang.Class.forName0(Native Method)
>>>> at java.lang.Class.forName(Class.java:264)
>>>> at org.apache.predictionio.data.storage.Storage$.getClient(
>>>> Storage.scala:257)
>>>> at org.apache.predictionio.data.storage.Storage$.org$apache$
>>>> predictionio$data$storage$Storage$$updateS2CM(Storage.scala:283)
>>>> at org.apache.predictionio.data.storage.Storage$$anonfun$
>>>> sourcesToClientMeta$1.apply(Storage.scala:244)
>>>> at org.apache.predictionio.data.storage.Storage$$anonfun$
>>>> sourcesToClientMeta$1.apply(Storage.scala:244)
>>>> at scala.collection.mutable.MapLike$class.getOrElseUpdate(
>>>> MapLike.scala:194)
>>>> at scala.collection.mutable.AbstractMap.getOrElseUpdate(Map.scala:80)
>>>> at org.apache.predictionio.data.storage.Storage$.
>>>> sourcesToClientMeta(Storage.scala:244)
>>>> at org.apache.predictionio.data.storage.Storage$.
>>>> getDataObject(Storage.scala:315)
>>>> at org.apache.predictionio.data.storage.Storage$.
>>>> getDataObjectFromRepo(Storage.scala:300)
>>>> at org.apache.predictionio.data.storage.Storage$.
>>>> getMetaDataEngineInstances(Storage.scala:402)
>>>> at org.apache.predictionio.workflow.CreateWorkflow$.main(
>>>> CreateWorkflow.scala:248)
>>>> at org.apache.predictionio.workflow.CreateWorkflow.main(
>>>> CreateWorkflow.scala)
>>>>
>>>>
>>>>
>>>>
>>>> Process finished with exit code 1
>>>>
>>>> NOTE : pio build, train and all other commands are working on the
>>>> command line, and I copied the same environment variables but it doesn't
>>>> seem to work !
>>>>
>>>> Thanks in advance
>>>>
>>>>
>>

Re: PredictionIO Intellij Setup problem

Posted by Selvaraju Sellamuthu <se...@gmail.com>.
Spin up your elastic search cluster from elasticsearch bin path and try to
check cluster status, add documents ... if everything is fine with elastic
search, then you can figure out PIO configuration for elasticsearch.

If any errors post it here...

On Tue, May 1, 2018 at 1:57 PM Hamza Faraji <fa...@gmail.com> wrote:

> Sorry for my late reply, here is my Intellij config :
>
> ​
> Main class: org.apache.predictionio.workflow.CreateWorkflow
> VM options: -Dspark.master=local
> -Dlog4j.configuration=file:/Users/Hamza07/PredictionIO/PredictionIO-0.12.1/conf/log4j.properties
> -Dpio.log.dir=/Users/Hamza07/Desktop
>
> Program arguments: --engine-variant
> file:/Users/Hamza07/Desktop/intern_project/MyRecommendation/engine.json
> --engine-id org.example.recommendation.RecommendationEngine
> --engine-version default --debug --json-extractor Both --verbosity 0
>
> Working directory: /Users/Hamza07/Desktop/intern_project/MyRecommendation
> Environment variables: (shown in the screenshot)
> Use classpath of module: myrecommendation
>
> As for the environment variables :
>
>
> ​
> PS : The permission error was because the -Dpio.log.dir parameter was not
> specified, the remaining problem now concerns elasticsearch initialization
> Thanks again !
>
>
> On Tue, May 1, 2018 at 4:28 PM, Donald Szeto <do...@apache.org> wrote:
>
>> Hi,
>>
>> This is definitely the right place. Could you provide a screenshot of
>> your run configuration in IntelliJ please? Showing what you have in your
>> env vars would be helpful.
>>
>> Regards,
>> Donald
>>
>> On Mon, Apr 30, 2018 at 3:12 AM Hamza Faraji <fa...@gmail.com>
>> wrote:
>>
>>> Hi, this is my first time posting so i'm not sure if this is the right
>>> place !
>>> I have been trying to setup Intellij IDEA CE in order to start
>>> customizing the recommendation template engine, I followed all the steps
>>> here <https://predictionio.apache.org/resources/intellij/> but I keep
>>> getting the same error :
>>>
>>> log4j:ERROR setFile(null,true) call failed.
>>> java.io.FileNotFoundException: /pio.log (Permission denied)
>>> at java.io.FileOutputStream.open0(Native Method)
>>> at java.io.FileOutputStream.open(FileOutputStream.java:270)
>>> at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
>>> at java.io.FileOutputStream.<init>(FileOutputStream.java:133)
>>> at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
>>> at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
>>> at
>>> org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)
>>> at
>>> org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)
>>> at
>>> org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)
>>> at
>>> org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)
>>> at
>>> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)
>>> at
>>> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648)
>>> at
>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514)
>>> at
>>> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:580)
>>> at
>>> org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526)
>>> at org.apache.log4j.LogManager.<clinit>(LogManager.java:127)
>>> at
>>> org.apache.predictionio.workflow.WorkflowUtils$.modifyLogging(WorkflowUtils.scala:275)
>>> at
>>> org.apache.predictionio.workflow.CreateWorkflow$.main(CreateWorkflow.scala:146)
>>> at
>>> org.apache.predictionio.workflow.CreateWorkflow.main(CreateWorkflow.scala)
>>> SLF4J: Class path contains multiple SLF4J bindings.
>>> SLF4J: Found binding in
>>> [jar:file:/Users/Hamza07/.ivy2/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.7.18.jar!/org/slf4j/impl/StaticLoggerBinder.class]
>>> SLF4J: Found binding in
>>> [jar:file:/Users/Hamza07/PredictionIO/PredictionIO-0.12.1/lib/pio-assembly-0.12.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
>>> SLF4J: Found binding in
>>> [jar:file:/Users/Hamza07/PredictionIO/PredictionIO-0.12.1/vendors/spark-2.1.1-bin-hadoop2.6/jars/slf4j-log4j12-1.7.16.jar!/org/slf4j/impl/StaticLoggerBinder.class]
>>> SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
>>> explanation.
>>> SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
>>> [INFO] [Engine] Extracting datasource params...
>>> [INFO] [WorkflowUtils$] No 'name' is found. Default empty String will be
>>> used.
>>> [INFO] [Engine] Datasource params: (,DataSourceParams(MyApp,None))
>>> [INFO] [Engine] Extracting preparator params...
>>> [INFO] [Engine] Preparator params: (,Empty)
>>> [INFO] [Engine] Extracting serving params...
>>> [INFO] [Engine] Serving params: (,Empty)
>>> Exception in thread "main"
>>> org.apache.predictionio.data.storage.StorageClientException: Data source
>>> ELASTICSEARCH was not properly initialized.
>>> at
>>> org.apache.predictionio.data.storage.Storage$$anonfun$10.apply(Storage.scala:316)
>>> at
>>> org.apache.predictionio.data.storage.Storage$$anonfun$10.apply(Storage.scala:316)
>>> at scala.Option.getOrElse(Option.scala:121)
>>> at
>>> org.apache.predictionio.data.storage.Storage$.getDataObject(Storage.scala:315)
>>> at
>>> org.apache.predictionio.data.storage.Storage$.getDataObjectFromRepo(Storage.scala:300)
>>> at
>>> org.apache.predictionio.data.storage.Storage$.getMetaDataEngineInstances(Storage.scala:402)
>>> at
>>> org.apache.predictionio.workflow.CreateWorkflow$.main(CreateWorkflow.scala:248)
>>> at
>>> org.apache.predictionio.workflow.CreateWorkflow.main(CreateWorkflow.scala)
>>> [ERROR] [Storage$] Error initializing storage client for source
>>> ELASTICSEARCH.
>>> java.lang.ClassNotFoundException: elasticsearch.StorageClient
>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>>> at java.lang.Class.forName0(Native Method)
>>> at java.lang.Class.forName(Class.java:264)
>>> at
>>> org.apache.predictionio.data.storage.Storage$.getClient(Storage.scala:257)
>>> at
>>> org.apache.predictionio.data.storage.Storage$.org$apache$predictionio$data$storage$Storage$$updateS2CM(Storage.scala:283)
>>> at
>>> org.apache.predictionio.data.storage.Storage$$anonfun$sourcesToClientMeta$1.apply(Storage.scala:244)
>>> at
>>> org.apache.predictionio.data.storage.Storage$$anonfun$sourcesToClientMeta$1.apply(Storage.scala:244)
>>> at
>>> scala.collection.mutable.MapLike$class.getOrElseUpdate(MapLike.scala:194)
>>> at scala.collection.mutable.AbstractMap.getOrElseUpdate(Map.scala:80)
>>> at
>>> org.apache.predictionio.data.storage.Storage$.sourcesToClientMeta(Storage.scala:244)
>>> at
>>> org.apache.predictionio.data.storage.Storage$.getDataObject(Storage.scala:315)
>>> at
>>> org.apache.predictionio.data.storage.Storage$.getDataObjectFromRepo(Storage.scala:300)
>>> at
>>> org.apache.predictionio.data.storage.Storage$.getMetaDataEngineInstances(Storage.scala:402)
>>> at
>>> org.apache.predictionio.workflow.CreateWorkflow$.main(CreateWorkflow.scala:248)
>>> at
>>> org.apache.predictionio.workflow.CreateWorkflow.main(CreateWorkflow.scala)
>>>
>>>
>>>
>>>
>>> Process finished with exit code 1
>>>
>>> NOTE : pio build, train and all other commands are working on the
>>> command line, and I copied the same environment variables but it doesn't
>>> seem to work !
>>>
>>> Thanks in advance
>>>
>>>
>

Re: PredictionIO Intellij Setup problem

Posted by Hamza Faraji <fa...@gmail.com>.
Sorry for my late reply, here is my Intellij config :

​
Main class: org.apache.predictionio.workflow.CreateWorkflow
VM options: -Dspark.master=local
-Dlog4j.configuration=file:/Users/Hamza07/PredictionIO/PredictionIO-0.12.1/conf/log4j.properties
-Dpio.log.dir=/Users/Hamza07/Desktop

Program arguments: --engine-variant
file:/Users/Hamza07/Desktop/intern_project/MyRecommendation/engine.json
--engine-id org.example.recommendation.RecommendationEngine
--engine-version default --debug --json-extractor Both --verbosity 0

Working directory: /Users/Hamza07/Desktop/intern_project/MyRecommendation
Environment variables: (shown in the screenshot)
Use classpath of module: myrecommendation

As for the environment variables :


​
PS : The permission error was because the -Dpio.log.dir parameter was not
specified, the remaining problem now concerns elasticsearch initialization
Thanks again !


On Tue, May 1, 2018 at 4:28 PM, Donald Szeto <do...@apache.org> wrote:

> Hi,
>
> This is definitely the right place. Could you provide a screenshot of your
> run configuration in IntelliJ please? Showing what you have in your env
> vars would be helpful.
>
> Regards,
> Donald
>
> On Mon, Apr 30, 2018 at 3:12 AM Hamza Faraji <fa...@gmail.com>
> wrote:
>
>> Hi, this is my first time posting so i'm not sure if this is the right
>> place !
>> I have been trying to setup Intellij IDEA CE in order to start
>> customizing the recommendation template engine, I followed all the steps
>> here <https://predictionio.apache.org/resources/intellij/> but I keep
>> getting the same error :
>>
>> log4j:ERROR setFile(null,true) call failed.
>> java.io.FileNotFoundException: /pio.log (Permission denied)
>> at java.io.FileOutputStream.open0(Native Method)
>> at java.io.FileOutputStream.open(FileOutputStream.java:270)
>> at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
>> at java.io.FileOutputStream.<init>(FileOutputStream.java:133)
>> at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
>> at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
>> at org.apache.log4j.config.PropertySetter.activate(
>> PropertySetter.java:307)
>> at org.apache.log4j.config.PropertySetter.setProperties(
>> PropertySetter.java:172)
>> at org.apache.log4j.config.PropertySetter.setProperties(
>> PropertySetter.java:104)
>> at org.apache.log4j.PropertyConfigurator.parseAppender(
>> PropertyConfigurator.java:842)
>> at org.apache.log4j.PropertyConfigurator.parseCategory(
>> PropertyConfigurator.java:768)
>> at org.apache.log4j.PropertyConfigurator.configureRootCategory(
>> PropertyConfigurator.java:648)
>> at org.apache.log4j.PropertyConfigurator.doConfigure(
>> PropertyConfigurator.java:514)
>> at org.apache.log4j.PropertyConfigurator.doConfigure(
>> PropertyConfigurator.java:580)
>> at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(
>> OptionConverter.java:526)
>> at org.apache.log4j.LogManager.<clinit>(LogManager.java:127)
>> at org.apache.predictionio.workflow.WorkflowUtils$.
>> modifyLogging(WorkflowUtils.scala:275)
>> at org.apache.predictionio.workflow.CreateWorkflow$.main(
>> CreateWorkflow.scala:146)
>> at org.apache.predictionio.workflow.CreateWorkflow.main(
>> CreateWorkflow.scala)
>> SLF4J: Class path contains multiple SLF4J bindings.
>> SLF4J: Found binding in [jar:file:/Users/Hamza07/.
>> ivy2/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.
>> 7.18.jar!/org/slf4j/impl/StaticLoggerBinder.class]
>> SLF4J: Found binding in [jar:file:/Users/Hamza07/
>> PredictionIO/PredictionIO-0.12.1/lib/pio-assembly-0.12.1.
>> jar!/org/slf4j/impl/StaticLoggerBinder.class]
>> SLF4J: Found binding in [jar:file:/Users/Hamza07/
>> PredictionIO/PredictionIO-0.12.1/vendors/spark-2.1.1-bin-
>> hadoop2.6/jars/slf4j-log4j12-1.7.16.jar!/org/slf4j/impl/
>> StaticLoggerBinder.class]
>> SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
>> explanation.
>> SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
>> [INFO] [Engine] Extracting datasource params...
>> [INFO] [WorkflowUtils$] No 'name' is found. Default empty String will be
>> used.
>> [INFO] [Engine] Datasource params: (,DataSourceParams(MyApp,None))
>> [INFO] [Engine] Extracting preparator params...
>> [INFO] [Engine] Preparator params: (,Empty)
>> [INFO] [Engine] Extracting serving params...
>> [INFO] [Engine] Serving params: (,Empty)
>> Exception in thread "main" org.apache.predictionio.data.storage.StorageClientException:
>> Data source ELASTICSEARCH was not properly initialized.
>> at org.apache.predictionio.data.storage.Storage$$anonfun$10.
>> apply(Storage.scala:316)
>> at org.apache.predictionio.data.storage.Storage$$anonfun$10.
>> apply(Storage.scala:316)
>> at scala.Option.getOrElse(Option.scala:121)
>> at org.apache.predictionio.data.storage.Storage$.
>> getDataObject(Storage.scala:315)
>> at org.apache.predictionio.data.storage.Storage$.
>> getDataObjectFromRepo(Storage.scala:300)
>> at org.apache.predictionio.data.storage.Storage$.
>> getMetaDataEngineInstances(Storage.scala:402)
>> at org.apache.predictionio.workflow.CreateWorkflow$.main(
>> CreateWorkflow.scala:248)
>> at org.apache.predictionio.workflow.CreateWorkflow.main(
>> CreateWorkflow.scala)
>> [ERROR] [Storage$] Error initializing storage client for source
>> ELASTICSEARCH.
>> java.lang.ClassNotFoundException: elasticsearch.StorageClient
>> at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>> at java.lang.Class.forName0(Native Method)
>> at java.lang.Class.forName(Class.java:264)
>> at org.apache.predictionio.data.storage.Storage$.getClient(
>> Storage.scala:257)
>> at org.apache.predictionio.data.storage.Storage$.org$apache$
>> predictionio$data$storage$Storage$$updateS2CM(Storage.scala:283)
>> at org.apache.predictionio.data.storage.Storage$$anonfun$
>> sourcesToClientMeta$1.apply(Storage.scala:244)
>> at org.apache.predictionio.data.storage.Storage$$anonfun$
>> sourcesToClientMeta$1.apply(Storage.scala:244)
>> at scala.collection.mutable.MapLike$class.getOrElseUpdate(
>> MapLike.scala:194)
>> at scala.collection.mutable.AbstractMap.getOrElseUpdate(Map.scala:80)
>> at org.apache.predictionio.data.storage.Storage$.
>> sourcesToClientMeta(Storage.scala:244)
>> at org.apache.predictionio.data.storage.Storage$.
>> getDataObject(Storage.scala:315)
>> at org.apache.predictionio.data.storage.Storage$.
>> getDataObjectFromRepo(Storage.scala:300)
>> at org.apache.predictionio.data.storage.Storage$.
>> getMetaDataEngineInstances(Storage.scala:402)
>> at org.apache.predictionio.workflow.CreateWorkflow$.main(
>> CreateWorkflow.scala:248)
>> at org.apache.predictionio.workflow.CreateWorkflow.main(
>> CreateWorkflow.scala)
>>
>>
>>
>>
>> Process finished with exit code 1
>>
>> NOTE : pio build, train and all other commands are working on the command
>> line, and I copied the same environment variables but it doesn't seem to
>> work !
>>
>> Thanks in advance
>>
>>

Re: PredictionIO Intellij Setup problem

Posted by Donald Szeto <do...@apache.org>.
Hi,

This is definitely the right place. Could you provide a screenshot of your
run configuration in IntelliJ please? Showing what you have in your env
vars would be helpful.

Regards,
Donald

On Mon, Apr 30, 2018 at 3:12 AM Hamza Faraji <fa...@gmail.com>
wrote:

> Hi, this is my first time posting so i'm not sure if this is the right
> place !
> I have been trying to setup Intellij IDEA CE in order to start customizing
> the recommendation template engine, I followed all the steps here
> <https://predictionio.apache.org/resources/intellij/> but I keep getting
> the same error :
>
> log4j:ERROR setFile(null,true) call failed.
> java.io.FileNotFoundException: /pio.log (Permission denied)
> at java.io.FileOutputStream.open0(Native Method)
> at java.io.FileOutputStream.open(FileOutputStream.java:270)
> at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
> at java.io.FileOutputStream.<init>(FileOutputStream.java:133)
> at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
> at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
> at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)
> at
> org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)
> at
> org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)
> at
> org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)
> at
> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)
> at
> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648)
> at
> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514)
> at
> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:580)
> at
> org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526)
> at org.apache.log4j.LogManager.<clinit>(LogManager.java:127)
> at
> org.apache.predictionio.workflow.WorkflowUtils$.modifyLogging(WorkflowUtils.scala:275)
> at
> org.apache.predictionio.workflow.CreateWorkflow$.main(CreateWorkflow.scala:146)
> at
> org.apache.predictionio.workflow.CreateWorkflow.main(CreateWorkflow.scala)
> SLF4J: Class path contains multiple SLF4J bindings.
> SLF4J: Found binding in
> [jar:file:/Users/Hamza07/.ivy2/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.7.18.jar!/org/slf4j/impl/StaticLoggerBinder.class]
> SLF4J: Found binding in
> [jar:file:/Users/Hamza07/PredictionIO/PredictionIO-0.12.1/lib/pio-assembly-0.12.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
> SLF4J: Found binding in
> [jar:file:/Users/Hamza07/PredictionIO/PredictionIO-0.12.1/vendors/spark-2.1.1-bin-hadoop2.6/jars/slf4j-log4j12-1.7.16.jar!/org/slf4j/impl/StaticLoggerBinder.class]
> SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
> explanation.
> SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
> [INFO] [Engine] Extracting datasource params...
> [INFO] [WorkflowUtils$] No 'name' is found. Default empty String will be
> used.
> [INFO] [Engine] Datasource params: (,DataSourceParams(MyApp,None))
> [INFO] [Engine] Extracting preparator params...
> [INFO] [Engine] Preparator params: (,Empty)
> [INFO] [Engine] Extracting serving params...
> [INFO] [Engine] Serving params: (,Empty)
> Exception in thread "main"
> org.apache.predictionio.data.storage.StorageClientException: Data source
> ELASTICSEARCH was not properly initialized.
> at
> org.apache.predictionio.data.storage.Storage$$anonfun$10.apply(Storage.scala:316)
> at
> org.apache.predictionio.data.storage.Storage$$anonfun$10.apply(Storage.scala:316)
> at scala.Option.getOrElse(Option.scala:121)
> at
> org.apache.predictionio.data.storage.Storage$.getDataObject(Storage.scala:315)
> at
> org.apache.predictionio.data.storage.Storage$.getDataObjectFromRepo(Storage.scala:300)
> at
> org.apache.predictionio.data.storage.Storage$.getMetaDataEngineInstances(Storage.scala:402)
> at
> org.apache.predictionio.workflow.CreateWorkflow$.main(CreateWorkflow.scala:248)
> at
> org.apache.predictionio.workflow.CreateWorkflow.main(CreateWorkflow.scala)
> [ERROR] [Storage$] Error initializing storage client for source
> ELASTICSEARCH.
> java.lang.ClassNotFoundException: elasticsearch.StorageClient
> at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:264)
> at
> org.apache.predictionio.data.storage.Storage$.getClient(Storage.scala:257)
> at
> org.apache.predictionio.data.storage.Storage$.org$apache$predictionio$data$storage$Storage$$updateS2CM(Storage.scala:283)
> at
> org.apache.predictionio.data.storage.Storage$$anonfun$sourcesToClientMeta$1.apply(Storage.scala:244)
> at
> org.apache.predictionio.data.storage.Storage$$anonfun$sourcesToClientMeta$1.apply(Storage.scala:244)
> at
> scala.collection.mutable.MapLike$class.getOrElseUpdate(MapLike.scala:194)
> at scala.collection.mutable.AbstractMap.getOrElseUpdate(Map.scala:80)
> at
> org.apache.predictionio.data.storage.Storage$.sourcesToClientMeta(Storage.scala:244)
> at
> org.apache.predictionio.data.storage.Storage$.getDataObject(Storage.scala:315)
> at
> org.apache.predictionio.data.storage.Storage$.getDataObjectFromRepo(Storage.scala:300)
> at
> org.apache.predictionio.data.storage.Storage$.getMetaDataEngineInstances(Storage.scala:402)
> at
> org.apache.predictionio.workflow.CreateWorkflow$.main(CreateWorkflow.scala:248)
> at
> org.apache.predictionio.workflow.CreateWorkflow.main(CreateWorkflow.scala)
>
>
>
>
> Process finished with exit code 1
>
> NOTE : pio build, train and all other commands are working on the command
> line, and I copied the same environment variables but it doesn't seem to
> work !
>
> Thanks in advance
>
>