Debian Linux (Wheezy) 上安裝 SparkR

最近想安裝 SparkR 來玩一下,結果 Google 搜尋來的資訊滿多都缺這缺那。舉例來說,這篇標題很好聽的「Install and Run SparkR – easy way」的文章教我們裝了一堆東西,結果整篇文章就是沒講要怎麼安裝 SparkR. 所以我就把自己的安裝過程寫下來給大家參考。

作業系統: Debian Linux 7.11 (代號 Wheezy), 應該也適用於 Ubuntu 14.04 版本

1. 安裝 Oracle Java 8 

由於 Debian 7.x 版只能裝到 openJDK 7,所以手動安裝 Oracle 的 Java 8. 此外, openJDK 7 缺少 scala 所需要的 release 檔,執行 scala 會有錯誤。

(1) 到 Oracle 的 Java SE Development Kit 8 Downloads 網頁 複製 Java 8 JDK 的下載網址連結。我下載的是 jdk-8u121-linux-x64.tar.gz .

(2) 在 Linux console 中,用以下指令抓回檔案 (第二行指令要全部打在一行, 請更換成您在 (1) 複製的檔案網址 ):

cd /tmp

?View Code LANGUAGE
wget --header "Cookie: oraclelicense=accept-securebackup-cookie"  http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz

(3) 安裝在 /opt 資料夾底下:

tar zxvf  jdk-8u121-linux-x64.tar.gz
mv  jdk1.8.0_121  /opt

(4) 在 /etc/bash.bashrc 或自己 home 目錄的 .bashrc 加入以下這一行:

export JAVA_HOME=/opt/jdk1.8.0_121

(5) 若不想登出再進入使 JAVA_HOME 生效,可以在 Linux console 直接執行 (4) 的 export 那一行

(6) 重新設定 R 軟體的 Java VM 環境,在 Linux console 執行:

R CMD javareconf

2. 安裝 scala 語言

(1) 到 scala 下載網頁「下方」複製 tgz 版本的 scala 檔案網址
(2) 安裝在 /opt 資料夾底下

cd /tmp
wget http://downloads.lightbend.com/scala/2.12.1/scala-2.12.1.tgz
tar zxvf scala-2.12.1.tgz
mv scala-2.12.1 /opt

(3) 在 /etc/bash.bashrc 或自己 home 目錄的 .bashrc 加入以下這兩行:

export SCALA_HOME=/opt/scala-2.12.1
export PATH=$SCALA_HOME/bin:$PATH

(4) 在 Linux console 直接執行上面 (3) 那兩行

(5) 測試:  scala -version

3. 安裝 Spark

(1) 到 Apache Spark download 網頁 複製 Spark tgz 檔的下載網址

(2) 安裝 Spark 在 /opt 資料夾:

cd /tmp
wget http://d3kbcqa49mib13.cloudfront.net/spark-2.1.0-bin-hadoop2.7.tgz
tar zxvf spark-2.1.0-bin-hadoop2.7.tgz
mv spark-2.1.0-bin-hadoop2.7  /opt

(3) 在 /etc/bash.bashrc 或自己 home 目錄的 .bashrc 加入以下這兩行:

export SPARK_HOME=/opt/spark-2.1.0-bin-hadoop2.7/
export PATH=$PATH:$SPARK_HOME/bin

(4) 在 Linux console 直接執行 (3) 的那兩行 export 指令

(5) 啟動 Spark:

cd /opt/spark-2.1.0-bin-hadoop2.7
./sbin/start-master.sh
./sbin/start-slave.sh spark://sapna-All-Series:7077
jps

 

4. 安裝 SparkR

進入 R 之後:

library(rJava)   # 檢查 Java 是否正常

# install.packages(“devtools”)         # optional
library(devtools)
install_github(“amplab-extras/SparkR-pkg”, ref=”sparkr-sql”, subdir=”pkg”)
library(SparkR)