상단

[[R]]과 Hive를 상호 연동하여 사용할 수 있도록 하는 R기반 분산처리 프레임워크 RHive를 정리 합니다.

 
 
 

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를 설치 합니다.

 
 
 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)
 

참고 문헌


 
 

분류: BigData

최종 수정일: 2024-09-30 12:26:18

이전글 :
다음글 :