hivemallで機械学習を行った結果をVisualizeするのに、
RStudioからhiveserver2にアクセスできると便利かなと思ったので。

RStudioServerのセットアップからhiveserver2への接続までの流れを整理してみました。

RとRStuidoServerのセットアップ

yumへのepelの追加

以下のようにして、yumにepelのリポジトリを追加します。

$ sudo yum install epel-release

「/etc/yum.repos.d/epel.repo」を編集し、既定の状態ではepelを無効にしておきます。

/etc/yum.repos.d/epel.repo

[epel]
enabled=0

参考: CentOS7.1 64bitのyumリポジトリにEPELを追加 | kakiro-web
http://www.kakiro-web.com/linux/epel-install.html

Rのインストール

以下のようにして、Rをインストールします。

$ sudo yum --enablerepo=epel install R

R Studioのインストール

以下のようにして、RStudioをインストールします。
ダウンロード元URLは、以下の参考サイトを参照してください。

$ wget https://download2.rstudio.org/rstudio-server-rhel-1.0.44-x86_64.rpm
$ sudo yum install --nogpgcheck rstudio-server-rhel-1.0.44-x86_64.rpm

参考: Download RStudio Server | R Studio
https://www.rstudio.com/products/rstudio/download-server/

以下のように、RStudioServerの状態を確認し、必要あれば起動させます。

$ systemctl list-unit-files | grep rstudio
$ sudo systemctl start rstudio-server

R Studioへのアクセス

ブラウザからRStudioにアクセスします。
デフォルトのポートは8787なので、以下のようなURLになります。

http://(IPアドレス):8787/

Rからhiveserver2への接続

OpenJDKのインストール

以下のようにして、OpenJDKをインストールします。

$ sudo yum install java-1.8.0-openjdk-devel

「~/.bashrc」にJAVA_HOMEを設定しておきます。

$ readlink $(readlink $(which java))
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre/bin/java

上記コマンドで出力された結果を元に、以下のようにJAVA_HOMEを設定します。

$ echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64" >> ~/.bashrc
$ . ~/.bashrc

参考: OpenJDKをyumインストールした場合のJAVA_HOMEの設定の仕方 | kakakikikekeのブログ
http://kakakikikeke.blogspot.jp/2013/09/openjdkyumjavahome.html

Apache Hadoop&Hiveのライブラリをダウンロード

以下のページのリンクから「hadoop-2.7.3.tar.gz」「apache-hive-1.2.1-bin.tar.gz」を探し、
そのURLを控えておきます。

Apache Download Mirrors - hadoop-common
http://www.apache.org/dyn/closer.cgi/hadoop/common/

Apache Download Mirrors - hive
http://www.apache.org/dyn/closer.cgi/hive/

以下のように、hadoopとhiveをダウンロード&展開します。

$ wget ※控えたURL(http://…/hadoop-2.7.3.tar.gzのようになる)※
$ tar zxf hadoop-2.7.3.tar.gz
$ wget ※控えたURL(http://…/apache-hive-1.2.1-bin.tar.gzのようになる)※
$ tar zxf apache-hive-1.2.1-bin.tar.gz

環境変数「HADOOP_HOME」を設定しておきます。
以下はユーザディレクトリ直下に展開した場合。

$ echo "export HADOOP_HOME=/home/`whoami`/hadoop-2.7.3" >> ~/.bashrc
$ echo "export HIVE_HOME=/home/`whoami`/apache-hive-1.2.1-bin" >> ~/.bashrc
$ . ~/.bashrc

以下のようにRprofileにも環境変数を設定しておきます。

$ echo "Sys.setenv(HADOOP_HOME='$HADOOP_HOME')" >> ~/.Rprofile
$ echo "Sys.setenv(HIVE_HOME='$HIVE_HOME')" >> ~/.Rprofile

RJDBCのインストールとHiveへの接続

RStudioのConsoleに以下を入力し、RJDBCをインストールします。

install.packages("RJDBC", dep=TRUE)

以下のようにしてhiveserver2に接続します。
jarファイルのバージョンは適宜使用しているものに変更してください。

library(RJDBC)
drv = JDBC(
    "org.apache.hive.jdbc.HiveDriver",
    classPath = c(
        paste(Sys.getenv("HIVE_HOME"), "/lib/hive-jdbc-1.2.1-standalone.jar", sep=""),
        paste(Sys.getenv("HADOOP_HOME"), "/share/hadoop/common/lib/commons-configuration-1.6.jar", sep=""),
        paste(Sys.getenv("HADOOP_HOME"), "/share/hadoop/common/hadoop-common-2.7.3.jar", sep="")),
    identifier.quote = "`")
conn <- dbConnect(drv, "jdbc:hive2://(hiveserv2のホスト名):(ポート番号)/(データベース名)", "(ユーザ名)", "")
d <- dbGetQuery(conn, "show databases")
head(d)

参考: Can’t create dplyr src backed by SparkSQL in dplyr.spark.hive package | stack overflow
http://stackoverflow.com/questions/34267400/cant-create-dplyr-src-backed-by-sparksql-in-dplyr-spark-hive-package/34792408#34792408