R에서 rhive.conntc() 실행시 에러 때문에 이틀동안 삽질을 했다.


R에서 RHive를 사용해 hiveserver에 접속하기위해 아래와 같이 initiate하였다.

library("RHive")
rhive.init(hiveHome="/home/project/hive", hiveLib="/home/project/hive/lib", hadoopConf="/home/project/hadoop/conf", hadoopHome="/home/project/hadoop", hadoopLib="/home/project/hadoop/lib", verbose="true")

rhive.connect(host="192.168.10.181", port=10000, hiveServer2=FALSE)


설정은 잘됬는데 문제는 rhive.connect() 실행시 아래와같은 에러 메시지가 올라오면서 hiveserver에 붙지 않았다


 ERROR security.UserGroupInformation: Unable to find JAAS classes:com.sun.security.auth.UnixPrincipal not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:/usr/lib64/R/library/rJava/java/boot/], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
Error: Failed to connect to hdfs://192.168.10.181:9000.



알고보니 jdk 1.5 버전이 에러의 원인이 었다

그래서 rpm -qa | grep jdk를 하여 구 버전을 찾아 지우고 jdk 1.7로 올렸다. 

jdk 버전업하면 반드시 R CMD javareconf 명령으로 R내의 java configuration을 업데이트 해줘야 한다.



인자값을 제대로 전달되지 않았다고 에러메시지가 뜨면 RHive 레퍼런스 메뉴얼을 참조하면됨 

http://cran.r-project.org/web/packages/RHive/RHive.pdf 


빠른 답변으로 절 삽질에서 구제 해주신 넥스알 RHive 담당자분에게 감사드립니다ㅠㅠ

Posted by null.
,