1 安裝說明
在安裝spark之前,需要安裝hadoop集群環境,如果沒有可以查看:Hadoop分布式集群的搭建
1.1 用到的軟件
軟件 | 版本 | 下載地址 |
---|---|---|
linux | Ubuntu Server 18.04.2 LTS | https://www.ubuntu.com/download/server |
hadoop | hadoop-2.7.1 | http://archive.apache.org/dist/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz |
java | jdk-8u211-linux-x64 | https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html |
spark | spark-2.4.3-bin-hadoop2.7 | https://www.apache.org/dyn/closer.lua/spark/spark-2.4.3/spark-2.4.3-bin-hadoop2.7.tgz |
scala | scala-2.12.5 | http://www.scala-lang.org/download/ |
Anaconda | Anaconda3-2019.03-Linux-x86_64.sh | https://www.anaconda.com/distribution/ |
1.2 節點安排
名稱 | ip | hostname |
---|---|---|
主節點 | 192.168.233.200 | Master |
子節點1 | 192.168.233.201 | Slave01 |
子節點2 | 192.168.233.202 | Slave02 |
2 安裝Spark
2.1 解壓到安裝目錄
$ tar zxvf spark-2.4.3-bin-hadoop2.7.tgz -C /usr/local/bigdata/
$ cd /usr/local/bigdata/
$ mv spark-2.4.3-bin-hadoop2.7 spark-2.4.3
2.2 修改配置文件
配置文件位于/usr/local/bigdata/spark-2.4.3/conf
目錄下。
(1) spark-env.sh
將spark-env.sh.template
重命名為spark-env.sh
。
添加如下內容:
export SCALA_HOME=/usr/local/bigdata/scala
export JAVA_HOME=/usr/local/bigdata/java/jdk1.8.0_211
export HADOOP_HOME=/usr/local/bigdata/hadoop-2.7.1
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
SPARK_MASTER_IP=Master
SPARK_LOCAL_DIRS=/usr/local/bigdata/spark-2.4.3
SPARK_DRIVER_MEMORY=512M
(2)slaves
將slaves.template
重命名為slaves
修改為如下內容:
Slave01
Slave02
2.3 配置環境變量
在~/.bashrc
文件中添加如下內容,并執行$ source ~/.bashrc
命令使其生效
export SPARK_HOME=/usr/local/bigdata/spark-2.4.3
export PATH=$PATH:/usr/local/bigdata/spark-2.4.3/bin:/usr/local/bigdata/spark-2.4.3/sbin
3 運行Spark
先啟動hadoop
$ cd $HADOOP_HOME/sbin/
$ ./start-dfs.sh
$ ./start-yarn.sh
$ ./start-history-server.sh
然后啟動啟動sapark
$ cd $SPARK_HOME/sbin/
$ ./start-all.sh
$ ./start-history-server.sh
要注意的是:其實我們已經配置的環境變量,所以執行start-dfs.sh
和start-yarn.sh
可以不切換到當前目錄下,但是start-all.sh
、stop-all.sh
和/start-history-server.sh
這幾個命令hadoop
目錄下和spark
目錄下都同時存在,所以為了避免錯誤,最好切換到絕對路徑下。
spark啟動成功后,可以在瀏覽器中查看相關資源情況:http://192.168.233.200:8080/,這里192.168.233.200
是Master
節點的IP
4 配置Scala環境
spark既可以使用Scala作為開發語言,也可以使用python作為開發語言。
4.1 安裝Scala
spark中已經默認帶有scala,如果沒有或者要安裝其他版本可以下載安裝包安裝,過程如下:
先下載安裝包,然后解壓
$ tar zxvf scala-2.12.5.tgz -C /usr/local/bigdata/
然后在~/.bashrc
文件中添加如下內容,并執行$ source ~/.bashrc
命令使其生效
export SCALA_HOME=/usr/local/bigdata/scala-2.12.5
export PATH=/usr/local/bigdata/scala-2.12.5/bin:$PATH
測試是否安裝成功,可以執行如下命令:
scala -version
Scala code runner version 2.12.5 -- Copyright 2002-2018, LAMP/EPFL and Lightbe
4.2 啟動Spark shell界面
執行spark-shell --master spark://master:7077
命令,啟動spark shell。
hadoop@Master:~$ spark-shell --master spark://master:7077
19/06/08 08:01:49 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Spark context Web UI available at http://Master:4040
Spark context available as 'sc' (master = spark://master:7077, app id = app-20190608080221-0002).
Spark session available as 'spark'.
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 2.4.3
/_/
Using Scala version 2.11.12 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_211)
Type in expressions to have them evaluated.
Type :help for more information.
scala>
5 配置python環境
5.1 安裝python
系統已經默認安裝了python,但是為了方便開發,推薦可以直接安裝Anaconda,這里下載的是安裝包是Anaconda3-2019.03-Linux-x86_64.sh
,安裝過程也很簡單,直接執行$ bash Anaconda3-2019.03-Linux-x86_64.sh
即可。
5.2 啟動PySpark的客戶端
執行命令:$ pyspark --master spark://master:7077
具體如下:
hadoop@Master:~$ pyspark --master spark://master:7077
Python 3.6.3 |Anaconda, Inc.| (default, Oct 13 2017, 12:02:49)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
19/06/08 08:12:50 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/__ / .__/\_,_/_/ /_/\_\ version 2.4.3
/_/
Using Python version 3.6.3 (default, Oct 13 2017 12:02:49)
SparkSession available as 'spark'.
>>>
>>>
本文作者:foochane
本文鏈接:https://foochane.cn/article/2019051904.html