CentOS7へのRStudioServerのセットアップからhiveserver2への接続までの流れ
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