SlideShare a Scribd company logo
RHive 튜토리얼 부록 3 - RStudio 설치


RHive 를 위한 RStudio 설치
이 튜토리얼에서는 RHive 를 보다 편리하게 사용하기 위해 RStudio 를 셋업하는 방법에
대해서 설명한다.
RStudio 의 셋업방법은 http://rstudio.org/ 에서 자세한 문서를 찾을 수 있다.
여기서는 RHive 사용자를 위해서 RStudio 를 설치하고 사용하는 방법에 대해서
소개한다.
RHive 는 대용량데이터 처리를 위해서 Hadoop 과 Hive 를 이용하는 R 의 패키지 중
하나이다. RHive 를 사용해서 작성한 R 코드들은 실행시키고 난 후에 짧은 시간에
결과를 보여주고 실행을 종료할 수 있는 것들도 있겠지만 매우 큰 데이터를 처리하는
코드는 결과를 만들고 실행코드가 종료되기까지 매우 오랜 시간이 걸릴 수 있다.
상황에 따라 다르지만 데이터의 크기와 처리하는 연산의 복잡도에 따라 최소
수십분에서 최대 몇주가 걸릴 수도 있다.
이 경우의 문제는 사용자가 실행한 task 가 완전히 완료되기까지 R 의 세션을 계속
유지해야 해야만 한다는 것이다.
사용자가 랩탑을 이용해서 코드를 실행했다면 코드가 종료될 때까지 랩탑에 세션을
유지하고 랩탑을 계속 켜두어야 한다.
데스크탑을 사용하고 있다고 해도 작업이 끝날 때까지 데스트탑이 리부팅되거나 하는
등의 일은 세션을 유지하는 동안 하기 어렵다.
이 외에도 세션을 유지해야만 하는데 따른 많은 불편함이 있다.
이 것은 원래 RHive 와 상관없이 Hadoop 이나 Hive 만을 이용할 때도 발생하는
문제이며 RHive 도 다르지 않다.
이러 문제를 해결하기 위해서 Hadoop client(Hadoop gateway)를 만들어 두고
터미널로 접속을 하여 코드를 백그라운드로 실행하는 방법을 쓸 수도 있다.
하지만 이것은 R 사용자를 위해서는 그리 편한 방법이 아니며 R 이 가지고 있는
작업환경이나 자신이 사용하는 IDE 환경의 편리함을 이용하기 어렵다.
또 사용자가 터미널을 사용하는데 익숙하지 않다면 그것을 배워야 하는 불편함이
발생한다.
RStudio 는 이것을 해결해주는 가장 좋은 솔루션이다.
RStudio 는 desktop 과 server 버전을 제공하는데 desktop 버전은 그 자체로 R 의
IDE 로써 매우 좋다.
그리고 RStudio server 는 서버에 설치하여 웹 브라우저로 접속하여 서버의 자원을
여러사람이 공유하여 사용할 수 있으며 사용자가 사용하던 세션을 그대로 유지할 수
있다는 장점이 있다.
또한 사용자가 구성한 Hadoop, Hive, RHive 환경이 폐쇄된 네트워크의 레이어에
위치하고 있어 보안망을 통해서 접근해야 한다면 RStudio port 를 열어주는 것만으로도
보안절차를 간소화할 수 있다.
Rstudio server 를 RHive 와 함께 사용한다면 더욱 편하게 RHive 를 사용할 수 있다.
마지막으로 RStudio 는 서버의 R 환경을 그대로 사용하므로 RHive, Hadoop, Hive 를
셋업해둔 환경을 여러사람이 함께 공유할 수 있도록 만들어 준다.
이 튜토리얼에서 RStudio 를 설치하고 접속해서 RHive 를 사용하는 데모를 보여줄
것이다.


RStudio server 설치
RStudio 는 공식사이트에서 다운로드 받을 수 있다.
http://rstudio.org/
RStudio 의 공식사이트인 rstudio.org 에서는 RStudio 를 쉽게 설치하고 사용할 수
있도록 도와주는 자세한 문서들을 제공하고 있다.
아래 페이지에서 설치법을 안내하고 있으므로 설치에 대해 이 튜토리얼을 참조하지
않고 사이트의 문서를 참조하는 것도 좋다.
http://rstudio.org/download/server
이 튜토리얼에서는 CentOS5 에 RStudio server 를 설치하는 예를 설명한다.
설치법의 대부분은 위 사이트에서 인용하고 일부 수정했음을 알려둔다.
RStudio server 를 설치하기 위해서는 당연히 R 을 먼저 설치해야만 한다.
이 문서를 보는 사용자가 이미 이전의 RHive tutorial 을 읽고 RHive 를 설치했다면 이미
R 을 설치하는 과정은 완료했을 것이다.
하지만 여기서는 다시 설명을 한다.
아래와 같이 R 의 최신버전을 yum 을 이용해 설치하기 위해서 package 에 관한 내용을
udpate 한다.

$	
                  sudo	
             rpm	
                 -­‐Uvh	
  
http://download.fedora.redhat.com/pub/epel/5/i386/epel-­‐release-­‐
5-­‐4.noarch.rpm	
  

이제 R 을 설치한다.

$	
  sudo	
  yum	
  install	
  R	
  R-­‐devel
RHive 를 설치할 때는 R 뿐만아니라 R-devel 도 설치해야 하는 것을 기억하자.
RStudio server 를 설치하기 전에 자신의 서버가 32bit architecture 인지 64bit
architecture 인지 알아야 한다.
최근의 서버라면 대부분 64bit 일 것이며 아래와 같이 uname 명령어로 확인할 수 있다.

uname	
  -­‐m	
  
x86_64

위의 경우에는 64bit architecture 임을 알 수 있다.
이제 각각 자신의 architecuture 에 맞는 RStudio version 을 다운로드하고 설치한다.
32-bit 설치 방법

 $	
   wget	
       http://download2.rstudio.org/rstudio-­‐server-­‐0.94.110-­‐
 i686.rpm	
  
 $	
  sudo	
  rpm	
  -­‐Uvh	
  rstudio-­‐server-­‐0.94.110-­‐i686.rpm

64-bit 설치 방법

 $	
   wget	
   http://download2.rstudio.org/rstudio-­‐server-­‐0.94.110-­‐
 x86_64.rpm	
  
 $	
  sudo	
  rpm	
  -­‐Uvh	
  rstudio-­‐server-­‐0.94.110-­‐x86_64.rpm


개인계정만들기
RStudio server 에 접속하기 위해서 RStudio server 가 설치된 server 자체에 사용자의
계정이 있어야(exist) 한다.
RStudio server 는 root 계정으로 접속하는 것을 허용하지 않으므로 서버에 개인
사용자를 위한 계정들을 만들어야 한다.
서버에 접속하여 RStudio server 를 사용할 사용자들의 계정을 만들고 password 를
설정한다.

 ssh	
  root@10.1.1.1	
  
 adduser	
  user1	
  
 passwd	
  user1

위에서의 user1 은 임의로 설정한 계정이며 실제로 사용할 계정을 생성하기 바란다.
RStudio server 시작하기
RStudio server 는 Daemon 으로 실행되어야 한다.
아래와 같이 서버에 접속해서 Daemon 실행한다.

ssh	
  root@10.1.1.1	
  
/etc/init.d/rstudioserver	
  start

위와 같이 간단히 실행할 수 있다.


RStudio server 접속하기
RStudio server 는 web browser 를 이용해서 접속할 수 있다.
웹 브라우저를 실행하고 아래와 같이 RStudio server 의 주소로 접속한다.
http://10.1.1.1:8787
RStudio 에 접속할 수 있는 port 는 기본값으로 8787 이다.
이것은 설정을 변경해서 바꿀 수 있다.
이제 RStudio 에 접속해서 R 과 RHive 를 이용한 대용량 분석 작업을 할 수 있을 것이다.


RHive 를 위한 RStudio 작업
RStudio 에서 작업을 하는 도중에 environment variable 이 잘 설정되지 않아 RHive 를
loading 하는데 실패하는 경험을 할 수 있다.
이런 경우에는 소스코드에 환경변수를 지정하는 코드를 넣어 해결 할 수 있다.

Sys.setenv(HADOOP_HOME="/mnt/srv/hadoop-­‐0.20.203.0")	
  
Sys.setenv(HIVE_HOME="/mnt/srv/hive-­‐0.7.1")	
  
Sys.setenv(RHIVE_DATA="/mnt/srv/rhive_data")	
  
	
  	
  
library(RHive)

위에서 HADOOP_HOME 과 HIVE_HOME 은 사용자의 컴퓨터가 아닌 RStudio 가
설치되어 있는 서버의 Hadoop 과 Hive 의 Home 디렉토리를 지정해야 하며
RHIVE_DATA 는 RHive 가 사용할 임시 디렉토리를 말하며 각 Hadoop 노드에 생성된다.
환경변수를 세팅하는 것은 RHive 를 library 함수를 이용해서 loading 하기 전에
수행해야 하며 만약 환경변수를 설정하지 않고 RHive 를 loading 했다면 환경 변수를
설정하고 rhive.init() 펑션을 이용해서 RHive 를 초기화 할 수 있다.
library(RHive)	
  
	
  	
  
Sys.setenv(HADOOP_HOME="/mnt/srv/hadoop-­‐0.20.203.0")	
  
Sys.setenv(HIVE_HOME="/mnt/srv/hive-­‐0.7.1")	
  
Sys.setenv(RHIVE_DATA="/mnt/srv/rhive_data")	
  
	
  	
  
rhive.init()

이제 RStudio 를 통해서 R 코드를 작성하고 RHive 를 이용해서 Hive 와 Hadoop 을
다룰 수 있는 환경 셋업을 마쳤다.

More Related Content

What's hot

Lam pstack
Lam pstackLam pstack
Lam pstack
DooNa Lee
 
하둡완벽가이드 Ch9
하둡완벽가이드 Ch9하둡완벽가이드 Ch9
하둡완벽가이드 Ch9HyeonSeok Choi
 
하둡 고가용성(HA) 설정
하둡 고가용성(HA) 설정하둡 고가용성(HA) 설정
하둡 고가용성(HA) 설정
NoahKIM36
 
Zookeeper 활용 nifi clustering
Zookeeper 활용 nifi clusteringZookeeper 활용 nifi clustering
Zookeeper 활용 nifi clustering
NoahKIM36
 
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
Ji-Woong Choi
 
Enterprise Linux 7 new feature_systemd_booting
Enterprise Linux 7 new feature_systemd_bootingEnterprise Linux 7 new feature_systemd_booting
Enterprise Linux 7 new feature_systemd_booting
suk kim
 
도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편
Sam Kim
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편
Sam Kim
 
Fluentd with MySQL
Fluentd with MySQLFluentd with MySQL
Fluentd with MySQL
I Goo Lee
 
Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구
ajj007
 
하둡관리
하둡관리하둡관리
하둡관리
Choonghyun Yang
 
도커없이컨테이너 만들기 8편 - pid namespace
도커없이컨테이너 만들기 8편 - pid namespace도커없이컨테이너 만들기 8편 - pid namespace
도커없이컨테이너 만들기 8편 - pid namespace
Sam Kim
 
[오픈소스컨설팅]systemd on RHEL7
[오픈소스컨설팅]systemd on RHEL7[오픈소스컨설팅]systemd on RHEL7
[오픈소스컨설팅]systemd on RHEL7
Ji-Woong Choi
 
게이트단의 보안
게이트단의 보안게이트단의 보안
게이트단의 보안
Choonghyun Yang
 
1.intro to k8s
1.intro to k8s1.intro to k8s
1.intro to k8s
Hongmin Park
 
[오픈소스컨설팅] RPM 만들기
[오픈소스컨설팅] RPM 만들기[오픈소스컨설팅] RPM 만들기
[오픈소스컨설팅] RPM 만들기
Ji-Woong Choi
 

What's hot (16)

Lam pstack
Lam pstackLam pstack
Lam pstack
 
하둡완벽가이드 Ch9
하둡완벽가이드 Ch9하둡완벽가이드 Ch9
하둡완벽가이드 Ch9
 
하둡 고가용성(HA) 설정
하둡 고가용성(HA) 설정하둡 고가용성(HA) 설정
하둡 고가용성(HA) 설정
 
Zookeeper 활용 nifi clustering
Zookeeper 활용 nifi clusteringZookeeper 활용 nifi clustering
Zookeeper 활용 nifi clustering
 
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
 
Enterprise Linux 7 new feature_systemd_booting
Enterprise Linux 7 new feature_systemd_bootingEnterprise Linux 7 new feature_systemd_booting
Enterprise Linux 7 new feature_systemd_booting
 
도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편
 
Fluentd with MySQL
Fluentd with MySQLFluentd with MySQL
Fluentd with MySQL
 
Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구
 
하둡관리
하둡관리하둡관리
하둡관리
 
도커없이컨테이너 만들기 8편 - pid namespace
도커없이컨테이너 만들기 8편 - pid namespace도커없이컨테이너 만들기 8편 - pid namespace
도커없이컨테이너 만들기 8편 - pid namespace
 
[오픈소스컨설팅]systemd on RHEL7
[오픈소스컨설팅]systemd on RHEL7[오픈소스컨설팅]systemd on RHEL7
[오픈소스컨설팅]systemd on RHEL7
 
게이트단의 보안
게이트단의 보안게이트단의 보안
게이트단의 보안
 
1.intro to k8s
1.intro to k8s1.intro to k8s
1.intro to k8s
 
[오픈소스컨설팅] RPM 만들기
[오픈소스컨설팅] RPM 만들기[오픈소스컨설팅] RPM 만들기
[오픈소스컨설팅] RPM 만들기
 

Similar to RHive tutorial supplement 3: RHive 튜토리얼 부록 3 - RStudio 설치

RHive tutorial 1: RHive 튜토리얼 1 - 설치 및 설정
RHive tutorial 1: RHive 튜토리얼 1 - 설치 및 설정RHive tutorial 1: RHive 튜토리얼 1 - 설치 및 설정
RHive tutorial 1: RHive 튜토리얼 1 - 설치 및 설정
Aiden Seonghak Hong
 
CentOS/RHEL to openSUSE Leap/SLES
CentOS/RHEL to openSUSE Leap/SLESCentOS/RHEL to openSUSE Leap/SLES
CentOS/RHEL to openSUSE Leap/SLES
Chris(Cheolmin) Chon
 
리눅스서버세팅-김태호
리눅스서버세팅-김태호리눅스서버세팅-김태호
리눅스서버세팅-김태호
ETRIBE_STG
 
Virtual Development Environment Setting
Virtual Development Environment SettingVirtual Development Environment Setting
Virtual Development Environment Setting
Kwangyoun Jung
 
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
Ji-Woong Choi
 
하둡 설치(의사분산모드)
하둡 설치(의사분산모드)하둡 설치(의사분산모드)
하둡 설치(의사분산모드)
Kwangyoung Jeon
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
실용주의 프로그래머를 위한 개발환경 만들기
실용주의 프로그래머를 위한 개발환경 만들기실용주의 프로그래머를 위한 개발환경 만들기
실용주의 프로그래머를 위한 개발환경 만들기
Mickey SJ Lee
 
Internship backend
Internship backendInternship backend
Internship backend
Yein Sim
 
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
SeungYong Baek
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
Park Jonggun
 
초보자를 위한 AWS EC2, RDS 설정
초보자를 위한 AWS EC2, RDS 설정초보자를 위한 AWS EC2, RDS 설정
초보자를 위한 AWS EC2, RDS 설정
Seonghun Kang
 
Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정
leejungwang
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호
용호 최
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
Ildoo Kim
 
What is spark
What is sparkWhat is spark
What is spark
jaeho kang
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
Jude Kim
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
KwangSeob Jeong
 
하둡-rhive
하둡-rhive하둡-rhive
하둡-rhive
Yunsu Lee
 
Rasberry nodejs install_final
Rasberry nodejs install_finalRasberry nodejs install_final
Rasberry nodejs install_final
Kwan Yeong Kim
 

Similar to RHive tutorial supplement 3: RHive 튜토리얼 부록 3 - RStudio 설치 (20)

RHive tutorial 1: RHive 튜토리얼 1 - 설치 및 설정
RHive tutorial 1: RHive 튜토리얼 1 - 설치 및 설정RHive tutorial 1: RHive 튜토리얼 1 - 설치 및 설정
RHive tutorial 1: RHive 튜토리얼 1 - 설치 및 설정
 
CentOS/RHEL to openSUSE Leap/SLES
CentOS/RHEL to openSUSE Leap/SLESCentOS/RHEL to openSUSE Leap/SLES
CentOS/RHEL to openSUSE Leap/SLES
 
리눅스서버세팅-김태호
리눅스서버세팅-김태호리눅스서버세팅-김태호
리눅스서버세팅-김태호
 
Virtual Development Environment Setting
Virtual Development Environment SettingVirtual Development Environment Setting
Virtual Development Environment Setting
 
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
 
하둡 설치(의사분산모드)
하둡 설치(의사분산모드)하둡 설치(의사분산모드)
하둡 설치(의사분산모드)
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
실용주의 프로그래머를 위한 개발환경 만들기
실용주의 프로그래머를 위한 개발환경 만들기실용주의 프로그래머를 위한 개발환경 만들기
실용주의 프로그래머를 위한 개발환경 만들기
 
Internship backend
Internship backendInternship backend
Internship backend
 
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
 
초보자를 위한 AWS EC2, RDS 설정
초보자를 위한 AWS EC2, RDS 설정초보자를 위한 AWS EC2, RDS 설정
초보자를 위한 AWS EC2, RDS 설정
 
Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
 
What is spark
What is sparkWhat is spark
What is spark
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 
하둡-rhive
하둡-rhive하둡-rhive
하둡-rhive
 
Rasberry nodejs install_final
Rasberry nodejs install_finalRasberry nodejs install_final
Rasberry nodejs install_final
 

More from Aiden Seonghak Hong

IoT and Big data with R
IoT and Big data with RIoT and Big data with R
IoT and Big data with R
Aiden Seonghak Hong
 
RHive tutorial 5: RHive 튜토리얼 5 - apply 함수와 맵리듀스
RHive tutorial 5: RHive 튜토리얼 5 - apply 함수와 맵리듀스RHive tutorial 5: RHive 튜토리얼 5 - apply 함수와 맵리듀스
RHive tutorial 5: RHive 튜토리얼 5 - apply 함수와 맵리듀스
Aiden Seonghak Hong
 
RHive tutorial 3: RHive 튜토리얼 3 - HDFS 함수
RHive tutorial 3: RHive 튜토리얼 3 - HDFS 함수RHive tutorial 3: RHive 튜토리얼 3 - HDFS 함수
RHive tutorial 3: RHive 튜토리얼 3 - HDFS 함수
Aiden Seonghak Hong
 
RHive tutorial 2: RHive 튜토리얼 2 - 기본 함수
RHive tutorial 2: RHive 튜토리얼 2 - 기본 함수RHive tutorial 2: RHive 튜토리얼 2 - 기본 함수
RHive tutorial 2: RHive 튜토리얼 2 - 기본 함수
Aiden Seonghak Hong
 
R hive tutorial supplement 3 - Rstudio-server setup for rhive
R hive tutorial supplement 3 - Rstudio-server setup for rhiveR hive tutorial supplement 3 - Rstudio-server setup for rhive
R hive tutorial supplement 3 - Rstudio-server setup for rhive
Aiden Seonghak Hong
 
R hive tutorial supplement 2 - Installing Hive
R hive tutorial supplement 2 - Installing HiveR hive tutorial supplement 2 - Installing Hive
R hive tutorial supplement 2 - Installing Hive
Aiden Seonghak Hong
 
R hive tutorial supplement 1 - Installing Hadoop
R hive tutorial supplement 1 - Installing HadoopR hive tutorial supplement 1 - Installing Hadoop
R hive tutorial supplement 1 - Installing Hadoop
Aiden Seonghak Hong
 
R hive tutorial - apply functions and map reduce
R hive tutorial - apply functions and map reduceR hive tutorial - apply functions and map reduce
R hive tutorial - apply functions and map reduce
Aiden Seonghak Hong
 
R hive tutorial - udf, udaf, udtf functions
R hive tutorial - udf, udaf, udtf functionsR hive tutorial - udf, udaf, udtf functions
R hive tutorial - udf, udaf, udtf functions
Aiden Seonghak Hong
 
RHive tutorial - HDFS functions
RHive tutorial - HDFS functionsRHive tutorial - HDFS functions
RHive tutorial - HDFS functions
Aiden Seonghak Hong
 
RHive tutorials - Basic functions
RHive tutorials - Basic functionsRHive tutorials - Basic functions
RHive tutorials - Basic functions
Aiden Seonghak Hong
 
RHive tutorial - Installation
RHive tutorial - InstallationRHive tutorial - Installation
RHive tutorial - Installation
Aiden Seonghak Hong
 

More from Aiden Seonghak Hong (12)

IoT and Big data with R
IoT and Big data with RIoT and Big data with R
IoT and Big data with R
 
RHive tutorial 5: RHive 튜토리얼 5 - apply 함수와 맵리듀스
RHive tutorial 5: RHive 튜토리얼 5 - apply 함수와 맵리듀스RHive tutorial 5: RHive 튜토리얼 5 - apply 함수와 맵리듀스
RHive tutorial 5: RHive 튜토리얼 5 - apply 함수와 맵리듀스
 
RHive tutorial 3: RHive 튜토리얼 3 - HDFS 함수
RHive tutorial 3: RHive 튜토리얼 3 - HDFS 함수RHive tutorial 3: RHive 튜토리얼 3 - HDFS 함수
RHive tutorial 3: RHive 튜토리얼 3 - HDFS 함수
 
RHive tutorial 2: RHive 튜토리얼 2 - 기본 함수
RHive tutorial 2: RHive 튜토리얼 2 - 기본 함수RHive tutorial 2: RHive 튜토리얼 2 - 기본 함수
RHive tutorial 2: RHive 튜토리얼 2 - 기본 함수
 
R hive tutorial supplement 3 - Rstudio-server setup for rhive
R hive tutorial supplement 3 - Rstudio-server setup for rhiveR hive tutorial supplement 3 - Rstudio-server setup for rhive
R hive tutorial supplement 3 - Rstudio-server setup for rhive
 
R hive tutorial supplement 2 - Installing Hive
R hive tutorial supplement 2 - Installing HiveR hive tutorial supplement 2 - Installing Hive
R hive tutorial supplement 2 - Installing Hive
 
R hive tutorial supplement 1 - Installing Hadoop
R hive tutorial supplement 1 - Installing HadoopR hive tutorial supplement 1 - Installing Hadoop
R hive tutorial supplement 1 - Installing Hadoop
 
R hive tutorial - apply functions and map reduce
R hive tutorial - apply functions and map reduceR hive tutorial - apply functions and map reduce
R hive tutorial - apply functions and map reduce
 
R hive tutorial - udf, udaf, udtf functions
R hive tutorial - udf, udaf, udtf functionsR hive tutorial - udf, udaf, udtf functions
R hive tutorial - udf, udaf, udtf functions
 
RHive tutorial - HDFS functions
RHive tutorial - HDFS functionsRHive tutorial - HDFS functions
RHive tutorial - HDFS functions
 
RHive tutorials - Basic functions
RHive tutorials - Basic functionsRHive tutorials - Basic functions
RHive tutorials - Basic functions
 
RHive tutorial - Installation
RHive tutorial - InstallationRHive tutorial - Installation
RHive tutorial - Installation
 

RHive tutorial supplement 3: RHive 튜토리얼 부록 3 - RStudio 설치

  • 1. RHive 튜토리얼 부록 3 - RStudio 설치 RHive 를 위한 RStudio 설치 이 튜토리얼에서는 RHive 를 보다 편리하게 사용하기 위해 RStudio 를 셋업하는 방법에 대해서 설명한다. RStudio 의 셋업방법은 http://rstudio.org/ 에서 자세한 문서를 찾을 수 있다. 여기서는 RHive 사용자를 위해서 RStudio 를 설치하고 사용하는 방법에 대해서 소개한다. RHive 는 대용량데이터 처리를 위해서 Hadoop 과 Hive 를 이용하는 R 의 패키지 중 하나이다. RHive 를 사용해서 작성한 R 코드들은 실행시키고 난 후에 짧은 시간에 결과를 보여주고 실행을 종료할 수 있는 것들도 있겠지만 매우 큰 데이터를 처리하는 코드는 결과를 만들고 실행코드가 종료되기까지 매우 오랜 시간이 걸릴 수 있다. 상황에 따라 다르지만 데이터의 크기와 처리하는 연산의 복잡도에 따라 최소 수십분에서 최대 몇주가 걸릴 수도 있다. 이 경우의 문제는 사용자가 실행한 task 가 완전히 완료되기까지 R 의 세션을 계속 유지해야 해야만 한다는 것이다. 사용자가 랩탑을 이용해서 코드를 실행했다면 코드가 종료될 때까지 랩탑에 세션을 유지하고 랩탑을 계속 켜두어야 한다. 데스크탑을 사용하고 있다고 해도 작업이 끝날 때까지 데스트탑이 리부팅되거나 하는 등의 일은 세션을 유지하는 동안 하기 어렵다. 이 외에도 세션을 유지해야만 하는데 따른 많은 불편함이 있다. 이 것은 원래 RHive 와 상관없이 Hadoop 이나 Hive 만을 이용할 때도 발생하는 문제이며 RHive 도 다르지 않다. 이러 문제를 해결하기 위해서 Hadoop client(Hadoop gateway)를 만들어 두고 터미널로 접속을 하여 코드를 백그라운드로 실행하는 방법을 쓸 수도 있다. 하지만 이것은 R 사용자를 위해서는 그리 편한 방법이 아니며 R 이 가지고 있는 작업환경이나 자신이 사용하는 IDE 환경의 편리함을 이용하기 어렵다. 또 사용자가 터미널을 사용하는데 익숙하지 않다면 그것을 배워야 하는 불편함이 발생한다. RStudio 는 이것을 해결해주는 가장 좋은 솔루션이다. RStudio 는 desktop 과 server 버전을 제공하는데 desktop 버전은 그 자체로 R 의 IDE 로써 매우 좋다.
  • 2. 그리고 RStudio server 는 서버에 설치하여 웹 브라우저로 접속하여 서버의 자원을 여러사람이 공유하여 사용할 수 있으며 사용자가 사용하던 세션을 그대로 유지할 수 있다는 장점이 있다. 또한 사용자가 구성한 Hadoop, Hive, RHive 환경이 폐쇄된 네트워크의 레이어에 위치하고 있어 보안망을 통해서 접근해야 한다면 RStudio port 를 열어주는 것만으로도 보안절차를 간소화할 수 있다. Rstudio server 를 RHive 와 함께 사용한다면 더욱 편하게 RHive 를 사용할 수 있다. 마지막으로 RStudio 는 서버의 R 환경을 그대로 사용하므로 RHive, Hadoop, Hive 를 셋업해둔 환경을 여러사람이 함께 공유할 수 있도록 만들어 준다. 이 튜토리얼에서 RStudio 를 설치하고 접속해서 RHive 를 사용하는 데모를 보여줄 것이다. RStudio server 설치 RStudio 는 공식사이트에서 다운로드 받을 수 있다. http://rstudio.org/ RStudio 의 공식사이트인 rstudio.org 에서는 RStudio 를 쉽게 설치하고 사용할 수 있도록 도와주는 자세한 문서들을 제공하고 있다. 아래 페이지에서 설치법을 안내하고 있으므로 설치에 대해 이 튜토리얼을 참조하지 않고 사이트의 문서를 참조하는 것도 좋다. http://rstudio.org/download/server 이 튜토리얼에서는 CentOS5 에 RStudio server 를 설치하는 예를 설명한다. 설치법의 대부분은 위 사이트에서 인용하고 일부 수정했음을 알려둔다. RStudio server 를 설치하기 위해서는 당연히 R 을 먼저 설치해야만 한다. 이 문서를 보는 사용자가 이미 이전의 RHive tutorial 을 읽고 RHive 를 설치했다면 이미 R 을 설치하는 과정은 완료했을 것이다. 하지만 여기서는 다시 설명을 한다. 아래와 같이 R 의 최신버전을 yum 을 이용해 설치하기 위해서 package 에 관한 내용을 udpate 한다. $   sudo   rpm   -­‐Uvh   http://download.fedora.redhat.com/pub/epel/5/i386/epel-­‐release-­‐ 5-­‐4.noarch.rpm   이제 R 을 설치한다. $  sudo  yum  install  R  R-­‐devel
  • 3. RHive 를 설치할 때는 R 뿐만아니라 R-devel 도 설치해야 하는 것을 기억하자. RStudio server 를 설치하기 전에 자신의 서버가 32bit architecture 인지 64bit architecture 인지 알아야 한다. 최근의 서버라면 대부분 64bit 일 것이며 아래와 같이 uname 명령어로 확인할 수 있다. uname  -­‐m   x86_64 위의 경우에는 64bit architecture 임을 알 수 있다. 이제 각각 자신의 architecuture 에 맞는 RStudio version 을 다운로드하고 설치한다. 32-bit 설치 방법 $   wget   http://download2.rstudio.org/rstudio-­‐server-­‐0.94.110-­‐ i686.rpm   $  sudo  rpm  -­‐Uvh  rstudio-­‐server-­‐0.94.110-­‐i686.rpm 64-bit 설치 방법 $   wget   http://download2.rstudio.org/rstudio-­‐server-­‐0.94.110-­‐ x86_64.rpm   $  sudo  rpm  -­‐Uvh  rstudio-­‐server-­‐0.94.110-­‐x86_64.rpm 개인계정만들기 RStudio server 에 접속하기 위해서 RStudio server 가 설치된 server 자체에 사용자의 계정이 있어야(exist) 한다. RStudio server 는 root 계정으로 접속하는 것을 허용하지 않으므로 서버에 개인 사용자를 위한 계정들을 만들어야 한다. 서버에 접속하여 RStudio server 를 사용할 사용자들의 계정을 만들고 password 를 설정한다. ssh  root@10.1.1.1   adduser  user1   passwd  user1 위에서의 user1 은 임의로 설정한 계정이며 실제로 사용할 계정을 생성하기 바란다.
  • 4. RStudio server 시작하기 RStudio server 는 Daemon 으로 실행되어야 한다. 아래와 같이 서버에 접속해서 Daemon 실행한다. ssh  root@10.1.1.1   /etc/init.d/rstudioserver  start 위와 같이 간단히 실행할 수 있다. RStudio server 접속하기 RStudio server 는 web browser 를 이용해서 접속할 수 있다. 웹 브라우저를 실행하고 아래와 같이 RStudio server 의 주소로 접속한다. http://10.1.1.1:8787 RStudio 에 접속할 수 있는 port 는 기본값으로 8787 이다. 이것은 설정을 변경해서 바꿀 수 있다. 이제 RStudio 에 접속해서 R 과 RHive 를 이용한 대용량 분석 작업을 할 수 있을 것이다. RHive 를 위한 RStudio 작업 RStudio 에서 작업을 하는 도중에 environment variable 이 잘 설정되지 않아 RHive 를 loading 하는데 실패하는 경험을 할 수 있다. 이런 경우에는 소스코드에 환경변수를 지정하는 코드를 넣어 해결 할 수 있다. Sys.setenv(HADOOP_HOME="/mnt/srv/hadoop-­‐0.20.203.0")   Sys.setenv(HIVE_HOME="/mnt/srv/hive-­‐0.7.1")   Sys.setenv(RHIVE_DATA="/mnt/srv/rhive_data")       library(RHive) 위에서 HADOOP_HOME 과 HIVE_HOME 은 사용자의 컴퓨터가 아닌 RStudio 가 설치되어 있는 서버의 Hadoop 과 Hive 의 Home 디렉토리를 지정해야 하며 RHIVE_DATA 는 RHive 가 사용할 임시 디렉토리를 말하며 각 Hadoop 노드에 생성된다. 환경변수를 세팅하는 것은 RHive 를 library 함수를 이용해서 loading 하기 전에 수행해야 하며 만약 환경변수를 설정하지 않고 RHive 를 loading 했다면 환경 변수를 설정하고 rhive.init() 펑션을 이용해서 RHive 를 초기화 할 수 있다.
  • 5. library(RHive)       Sys.setenv(HADOOP_HOME="/mnt/srv/hadoop-­‐0.20.203.0")   Sys.setenv(HIVE_HOME="/mnt/srv/hive-­‐0.7.1")   Sys.setenv(RHIVE_DATA="/mnt/srv/rhive_data")       rhive.init() 이제 RStudio 를 통해서 R 코드를 작성하고 RHive 를 이용해서 Hive 와 Hadoop 을 다룰 수 있는 환경 셋업을 마쳤다.