2015-05-31 11 views
5

Quando inizio Rserve da RStudio e provo a collegarmi a Rserve utilizzando RSclient come nel codice qui sotto:Errore durante l'esecuzione biblioteca Rserve da Java

#Loading Libraries 
library(Rserve) 
library(RSclient) 

#Loading Rserve 
Rserve(args='--no-save --slave') 

#Open Connection to Rserve and Executing openNPL 
conn <- RS.connect(port=6311) 
RS.eval(conn,library(openNLP)) 

Tutto funziona bene.

Ma se provo ad avviare Rserve dalla riga di comando (simulando ciò che fa Java). Come il codice:

#loading Rserve from command line, to simulate what java does. 
#Using Mac OS 10.10.2 
/Library/Frameworks/R.framework/Resources/bin/R CMD /Library/Frameworks/R.framework/Versions/3.2/Resources/library/Rserve/libs//Rserve --no-save --slave --RS-port 6311 

#in RStudio 
#Loading Rclient 
library(RSclient) 

#Loading Rserve 
Rserve(args='--no-save --slave') 

#Open Connection to Rserve and Executing openNPL 
conn <- RS.connect(port=6311) 
RS.eval(conn,library(openNLP)) 

ottengo questo errore in RStudio:

rsc_abort: connection closed by peer 
Error in RS.eval(conn, library(openNLP)) : 
    read error - could not obtain response header 

E questo errore nella riga di comando:

Invalid memory access of location 0x110 rip=0x7fff8ea0d5d2 

Here e here sono simili di riferimento problemi. Il mio problema originale è con RJDBC, non con openNLP e sembra che entrambi abbiano lo stesso rJava. Ho usato openNLP qui perché è facile da simulare, senza necessità di connessione al database. Qualche idea su come risolvere questo?

+0

Ho avuto lo stesso errore ed era probabilmente correlato alla mancanza di memoria sulla macchina remota. – jangorecki

risposta

0

Assicurarsi di impostare esattamente gli stessi parametri per l'R CMD. Assicurati di controllare se RStudio utilizza esattamente la stessa versione di Java.

Per quanto riguarda le impostazioni della memoria, si può sempre usare questo trucco

export _JAVA_OPTIONS="-Xmx=2G" 

per impostare la dimensione della memoria disponibile per JVM. Utilizzando _JAVA_OPTIONS è possibile applicare le impostazioni che verranno utilizzate da JVM.

Problemi correlati