맛동산

rJava 설치 및 Java(이클립스)에서 사용하기 본문

머신러닝/R

rJava 설치 및 Java(이클립스)에서 사용하기

오지고지리고알파고포켓몬고 2016. 12. 11. 22:56

이전 글에 작성했지만 rJava를 서버에서 사용할 경우 rJava를 중복 호출(생성)하면 톰캣이 자동으로 종료되는 기이한 현상이 발생함.

(참고 : http://www.codophile.com/how-to-integrate-r-with-java-using-rserve/)




다음은 rJava설치


<1>

1. R x64 3.3.2.exe를 실행하면 콘솔창이 열리는데 install.packages("rJava") 를 작성하고 엔터를 치면 rJava 패키지가 R_HOME 예하의 라이브러리 폴더에 설치됨


간혹 이상한 경로에 설치되는 경우도 있는 것 같으니 꼭 해당 위치에 있는지 확인해야함.




<2>

2. rJava 사용을 위한 경로설정을 해줌 (R_HOME 예하의 library\rJava\jri)

Path - %R_HOME%\library\rJava\jri\x64;




<3>

3. rJava를 사용할 프로젝트에서 C:\R-3.3.2\library\rJava\jri (R_HOME 예하 라이브러리) 경로의 JRI.jar, JRIEngine.jar, REngine.jar 파일 3개를 추가함




<4>

4. 새 프로젝트에 생성된 임의의 클래스(rJava)의 run configurations에서 몇가지 설정을 해야함

일단 VM Arguments 항목에

-Djava.library.path=C:\R-3.3.2\library\rJava\jri\x64


Environment 항목에

LD_LIBRARY_PATH / C:\R-3.3.2\bin;C:\R-3.3.2\library;

PATH / C:\R-3.3.2\bin\x64;C:\R-3.3.2\library\rJava\jri\x64;

R_HOME / C:\R-3.3.2   (여기엔 세미콜론이 있으면 제대로 동작안함)


를 작성하여 Apply함 (경로는 자신의 R버전에 맞게)




<5>

5. Rengine 객체의 eval 함수를 사용하면 R콘솔에 직접 코딩하는 것과 같은 효과를 누림

REXP 객체에 as로 시작하는 각종 함수들로 java 변수에 넣을 수 있도록 할 수 있음



계속 해왔던 말이지만 단일 프로그램으로써 실행하는건 문제가 안되지만 rJava를 서버에서 구동하면 처음 한번 밖에 실행이 안되는 현상이 발생


rJava가 단일 스레드라 그렇다는데 단순히 스레드 클래스에 얹어서 실행하는걸로는 해결이 안됐음. 어떻게 멀티 스레드로 구현한다는 말인가! 고로 서버에서 R을 돌리기 위해 다음에 작성할 Rserve를 사용함

'머신러닝 > R' 카테고리의 다른 글

백터(vector) 기초  (0) 2017.03.26
기타  (0) 2017.03.26
Rserve 설치 및 Java(이클립스, 자바서버)에서 사용하기  (0) 2016.12.12
R 설치하기  (0) 2016.12.09
유클리드언? 유사도로 유사답변으로 연결해줌  (0) 2016.12.01
Comments