- Spark內核設計的藝術:架構設計與實現
- 耿嘉安
- 671字
- 2019-01-04 04:03:48
1.1 運行環境準備
考慮到大部分公司開發和生產環境都采用Linux操作系統,所以筆者選用了64位的Linux。在正式安裝Spark之前,先要找臺好機器。為什么?因為筆者在安裝、編譯、調試的過程中發現Spark非常耗費內存,如果機器配置太低,恐怕會運行不起來。Spark的開發語言是Scala,而Scala需要運行在JVM之上,因而搭建Spark的運行環境應該包括JDK和Scala。
1.1.1 安裝JDK
自Spark 2.0.0版本開始,Spark已經放棄了對Java 7的支持,所以需要選擇Java 8。我們還需要使用命令getconf LONG_BIT查看Linux機器是32位還是64位,然后下載相應版本的JDK并安裝。
下載地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html。
配置環境:
cd ~ vim .bash_profile
添加如下配置:
export JAVA_HOME=/opt/java export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
輸入以下命令使環境變量快速生效:
source .bash_profile
安裝完畢后,使用java -version命令查看,確認安裝正常,如圖1-1所示。

圖1-1 查看java安裝是否正常
1.1.2 安裝Scala
由于從Spark 2.0.0開始,Spark默認使用Scala 2.11來編譯、打包,不再是以前的Scala 2.10,所以我們需要下載Scala 2.11。
下載地址:http://www.scala-lang.org/download/。
選擇Scala 2.11的版本進行下載,下載方法如下:
wget https://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz
移動到選好的安裝目錄,例如:
mv scala-2.11.8.tgz ~/install/
進入安裝目錄,執行以下命令:
chmod 755 scala-2.11.8.tgz tar -xzvf scala-2.11.8.tgz
配置環境:
cd ~ vim .bash_profile
添加如下配置:
export SCALA_HOME=$HOME/install/scala-2.11.8 export PATH=$SCALA_HOME/bin:$PATH
輸入以下命令使環境變量快速生效:
source .bash_profile
安裝完畢后鍵入scala,進入scala命令行,以確認安裝正常,如圖1-2所示。

圖1-2 進入Scala命令行
1.1.3 安裝Spark
Spark進入2.0時代之后,目前一共有兩個大的版本:一個是Spark 2.0.0,一個是Spark 2.1.0。本書選擇Spark 2.1.0。
下載地址:http://spark.apache.org/downloads.html。
下載方法如下:
wget http://d3kbcqa49mib13.cloudfront.net/spark-2.1.0-bin-hadoop2.6.tgz
移動到選好的安裝目錄,例如:
mv spark-2.1.0-bin-hadoop2.6.tgz ~/install/
進入安裝目錄,執行以下命令:
chmod 755 spark-2.1.0-bin-hadoop2.6.tgz tar -xzvf spark-2.1.0-bin-hadoop2.6.tgz
配置環境:
cd ~ vim .bash_profile
添加如下配置:
export SPARK_HOME=$HOME/install/spark-2.1.0-bin-hadoop2.6 export PATH=$SPARK_HOME/bin:$PATH
輸入以下命令,使環境變量快速生效:
source .bash_profile
安裝完畢后鍵入spark-shell,進入scala命令行,以確認安裝正常,如圖1-3所示。

圖1-3 執行spark-shell進入Scala命令行
- Python編程自學手冊
- Learn Blockchain Programming with JavaScript
- 數字媒體應用教程
- C#編程入門指南(上下冊)
- Unity 2020 Mobile Game Development
- Lua程序設計(第4版)
- 高級C/C++編譯技術(典藏版)
- Express Web Application Development
- FPGA Verilog開發實戰指南:基于Intel Cyclone IV(進階篇)
- 劍指大數據:企業級數據倉庫項目實戰(在線教育版)
- Getting Started with Eclipse Juno
- 深度探索Go語言:對象模型與runtime的原理特性及應用
- Python網絡爬蟲實例教程(視頻講解版)
- Mastering Object:Oriented Python(Second Edition)
- Responsive Web Design with jQuery