- RHive 개요
- CentOS에서 RHive 설치
- 사전 준비 사항
- 설치
- Hadoop의 job node에 Rserve 설치
- RHive 실행
- RHive 사용법
- 참고 문헌
[[R]]과 Hive를 상호 연동하여 사용할 수 있도록 하는 R기반 분산처리 프레임워크 RHive를 정리 합니다.
홈페이지 : http://www.nexr.co.kr/product/rhive.jsp, http://github.com/nexr/RHive
다운로드 :
라이선스 : Apache 2.0
플랫폼 : R
RHive 개요
R에서 HiveQL을 사용할 수 있도록 함
CentOS에서 RHive 설치
사전 준비 사항
Hive 0.11.0
Hadoop 1.1.2 (HDFS, MapReduce)
MySQL 5.1.69
Git 1.7.1
Ant 1.7.1
Java 1.7.0_19
CentOS 6.4, 64 bits
설치
RHive 소스를 다운로드 하여 설치 합니다.
git clone git://github.com/nexr/RHive.git
chown -R root:root RHive
jar 파일을 생성 합니다.
java 파일을 컴파일하기 위해서는 javac 가 필요 합니다.
/usr/lib/jvm/ 폴더 아래에 설치된 java 중 javac가 있는 폴더를 JAVA_HOME으로 지정 합니다.
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64
cd RHive
ant jar
//--- rhive_udf.jar 파일이 생성 됩니다.
R Package 배포본을 생성 합니다.
ant main-hive10
R CMD build ./RHive
//--- RHive_1.0-0.1.tar.gz 파일이 생성 됩니다.
RHive 패키지 설치
R CMD INSTALL ./RHive_1.0-0.1.tar.gz
//--- ERROR: dependencies ‘rJava’, ‘Rserve’ are not available for package ‘RHive’ 오류가 발생할 경우
//--- R에 rJava와 Rserve 패키지를 설치한 후 RHive도 같이 설치 합니다.
R
install.packages("rJava") //--- 47번 Korea를 선택 하세요.
install.packages("Rserve")
install.packages("./RHive_1.0-0.1.tar.gz", repos=NULL)
q() //--- y를 선택하여 저장한 후 종료 합니다.
Hadoop의 job node에 Rserve 설치
RHive를 사용하기 위해서 Hadoop의 모든 job node에 Rserve를 설치 합니다.
[CentOS에 EPEL 설치](CentOS.md#EPEL 설치.md)
Rserve를 설치 합니다.
yum install R R-devel
R
install.packages("Rserve")
q()
vi /etc/Rserv.conf
remote enable
mkdir /tmp/rhive_data
vi ~/.bashrc
export RHIVE_DATA=/tmp/rhive_data
Rserve를 데몬으로 실행 합니다.
R CMD Rserve
//--- 서비스의 확인을 위해, Rserve가 LISTEN 하고 있는 port가 있는지 확인 합니다.
//--- Default로 6311 port를 사용 합니다.
netstat -nltp | grep Rserve
RHive 실행
사전 필요 사항
MySQL 실행
Hadoop 실행
ZooKeeper 실행
Hive용 Thrift Server 실행
R에서 환경 변수를 설정하고 실행
R
Sys.setenv(HADOOP_HOME="/appl/hadoop")
Sys.setenv(HADOOP_CONF_DIR="/appl/hadoop/conf")
Sys.setenv(HIVE_HOME="/appl/hive")
library(RHive)
//rhive.init()
rhive.env() //--- 환경 변수 설정 확인
rhive.connect(hdfsurl="hdfs://cloud001.cloudserver.com:9000/")
q()
환경 변수를 설정한 후 R 실행 (사용하지 않음)
vi ~/.bashrc
export HADOOP_HOME=/appl/hadoop //--- HADOOP에서 지금은 지원하지 않는 예전 방식
export HIVE_HOME=/appl/hive
R
q()
RHive 사용법
rhive.connect() : Hive server와 연결,
rhive.list.tables() : Hive의 table 목록 보기
rhive.query("SELECT COUNT(*) FROM usarrests")
rhive.hdfs.ls("/") : HDFS에서 / 위치에 있는 파일 목록 보기
Hive 테이블 생성 1
tablename <- rhive.write.table(USArrests)
rhive.desc.table("USArrests")
Hive 테이블 생성 2 (MASS package에 있는 데이터를 Hive의 테이블에 저장)
library(MASS)
tablename <- rhive.write.table(Aids2)
rhive.desc.table(tablename)
rhive.load.table(tablename)
참고 문헌
RHive 튜토리얼
RHive 튜토리얼 부록
분류: BigData