2012-12-13 2 views
2

Windows PC에 R 2.15.2를 설치했습니다. Hadoop & 하이브는 다른 PC에 있습니다. RHive 및 해당 종속성을 R에로드했습니다. 이제 하이브에 연결하려고합니다.RHive 패키지를 사용하여 R에서 하이브로 연결

> Sys.setenv(HIVE_HOME="/home/hadoop/hive-0.7.0-cdh3u0") 
> Sys.setenv(HADOOP_HOME="/home/hadoop/hadoop-0.20.2-cdh3u0") 
> library(RHive) 
> rhive.env(ALL=TRUE) 

하이브 홈 디렉터리 : /home/hadoop/hive-0.7.0-cdh3u0
하둡 홈 디렉터리 : /home/hadoop/hive-0.7.0-cdh3u0
하둡 컨퍼런스 디렉토리 :
없음 RServe
연결되지 HiveServer 및 HDFS
RHive 도서관 목록
C :/프로그램 파일/R/R-2.15.2/라이브러리/RHive/자바/rhive_udf.jar /home/hadoop/hive-0.7.0- cdh3u0/conf

> rhive.init() 

[1] "하둡 어떠한 슬레이브 파일에 존재하지 않는다. (org/apache/hadoop/conf/Configuration ") : java.lang.ClassNotFoundException
오류 :
추가 정보 경고 메시지 : 파일 (파일 "RT")에서
: 는 열려있는 파일은 '/home/hadoop/hadoop-0.20.2-cdh3u0/conf/slaves 없다'수 없습니다 : 그런 파일이나 디렉토리

> rhive.connect(hdfsurl="hdfs://212.63.135.149:9000/") 

.jnew ("org/apache/hadoop/conf/Configuration") 오류 : java.lang.ClassNotFoundExc eption

결과는 오류 관련입니다!

rhive.connect(host = "212.63.135.149", port = 10000, hdfsurl="hdfs://212.63.135.149:9000/"),하지만 사용을 시도했다.

답변

1

몇 주 전에 RHive를 설치할 때 동일한 문제가있었습니다. 일부 jar 파일이 rhive.init에 설정된 classpath에 없기 때문입니다. 이 jar 파일의 위치를 ​​나타내는 hive, libs, hadoop_home, hadoop_conf, hlibs 인수를 설정해야합니다.

내가 먼저 rhive.init와 함께 일하지만 rhive.connect이 제대로 작동하지 않았다, 소스에서 설치. Cloudera 관리자 https://ccp.cloudera.com/display/CDH4DOC/Hive+Installation을 통해 Hive를 설치하면 매력처럼 작동합니다. 그래서 나는 그곳의 지시 사항을 따르라고 조언합니다. 잘 문서화되어 있습니다. 잘못된 하둡 버전이 사용하기 때문에

1

아마, 그것은이다.

RHive는, 원사 작업 하둡 - 0.20.205.0 또는 이전 버전을 사용하지 않습니다.

1

rhive_udf를 수정하여 수정했습니다.(빌드 후, RHive 소스 디렉토리에있는) 항아리 클래스 경로 다음

mkdir –p /usr/lib64/R/library/RHive/java 
cp rhive_udf.jar //usr/lib64/R/library/RHive/java 
chmod 755 /usr/lib64/R/library/RHive/java/rhive_udf.jar 
R 
> library("rJava") 
> .jinit() 
> .jaddClassPath("/usr/lib64/R/library/RHive/java/rhive_udf.jar") 

새로와 클래스 경로를 추가 테스트 :

> .jclassPath() 

당신은 '볼 수는/usr/lib64에/R/라이브러리/RHive가/자바/rhive_udf.jar '목록에!

그런 다음 R을 다시 시작하십시오. 여기에 있습니다!

관련 문제