導讀
- 引言
- 環境准備
- 安裝步驟
- 1.下載地址
- 2.開始下載
- 3.解壓spark
- 4.配置環境變量
- 5.配置 spark-env.sh
- 6.啟動spark服務
- 7.測試spark
感謝您的閱讀,預計閱讀時長3min。 智客工坊出品必屬精品。
引言
2012年,UC Berkelye 的ANPLab研發並開源了新的大數據處理框架Spark。其核心思想包括兩方面:一方面對大數據處理框架的輸入/輸出、中間數據進行建模,將這些數據抽象為統一的數據結構,命名為彈性分布式數據集(Resilent Distributed Dataset,RDD),並在此數據結構上構建了一系列通用的數據操作,使得用戶可以簡單地實現復雜的數據處理流程;另一方面采用基於內存的數據聚合、數據緩存等機制來加速應用執行,尤其適用於迭代和交互式應用。Spark采用EPFL大學研發的函數式編程語言Scala實現,並且提供了Scala、Java、Python、R四種語言的接口,以方便開發者適用熟悉的語言進行大數據應用開發。
話不多說,現在就開始我們的Spark之旅吧!
一 環境准備:
服務器 | 配置 | 單機 | 文件目錄 |
---|---|---|---|
Centos7 | 4核,14G | master | /opt/spark/spark-3.1.1-bin-hadoop2.7/ |
- Spark 3.1.1
- Hadoop 3.2
- Scala 1.11
- Java OpenJdk 1.8.0_292
二 安裝步驟
1.下載地址
http://spark.apache.org/downloads.html
如下圖所示:選擇3.1.1版本的spark,並選擇對應的Hadoop 版本

2.開始下載
wget https://www.apache.org/dyn/closer.lua/spark/spark-3.1.1/spark-3.1.1-bin-hadoop2.7.tgz
Notes: centos下,先進入某個目錄,比如/opt/spark目錄,然后執行下載

3.解壓spark
這里解壓到/opt/spark/
sudo tar zxvf spark-3.1.1-bin-hadoop2.7.tgz
4.配置環境變量
# vim /etc/profile
新增內容:
#spark environment
export SPARK_HOME=/opt/spark/spark-3.1.1-bin-hadoop2.7
export PATH=${SPARK_HOME}/bin:$PATH
退出並保存;刷新資源使配置生效。
# source /etc/profile
5.配置 spark-env.sh
進入 conf目錄
# cd conf
重命名
# mv spark-env.sh.template spark-env.sh
修改spark-env.sh
# vim spark-env.sh
在spark-env.sh增加如下內容:
# java
JAVA_HOME=/usr
# hadoop CONF
HADOOP_CONF_DIR=/usr/hadoop/hadoop-2.7.7/etc/hadoop
溫馨提示:
java環境變量地址 以具體機器的java安裝為准,若使用yum安裝java環境變量配置路徑
查詢本機Java安裝路徑
which java
/usr/bin/java
配置Java環境變量:
# java
#java
JAVA_HOME=/usr
6.啟動spark服務
./start-all.sh
Notes: 也可以指定啟動 ./sbin/start-master.sh
在瀏覽器輸入服務器外網地址訪問

7 測試spark
spark自帶了一些測試demo,可以參照官方文檔:http://spark.apache.org/docs/latest/quick-start.html
7.1 spark-shell 方式
進入handoop目錄,
cd /opt/spark-3.1.1-bin-hadoop3.2/
執行spark-shell
./bin/spark-shell spark://xxxx.xxxx.12.119:7077 --executor-memory 512M --total-executor-cores 2
Using Scala version 2.12.10 (OpenJDK 64-Bit Server VM, Java 1.8.0_282)
Type in expressions to have them evaluated.
Type :help for more information.
scala> val textFile = spark.read.textFile("README.md")
textFile: org.apache.spark.sql.Dataset[String] = [value: string]
scala> textFile.count()
res0: Long = 108
scala>

溫馨提示:
如果出現以下錯誤.
WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure
解決方案:啟動這個spark-shell的時候指明內存大小
./bin/spark-shell spark://172.31.xx.xx:7077 --executor-memory 512M --total-executor-cores 2
7.2 spark-submit 提交
執行如下命令
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://YOURHOST:7077 \
--executor-memory 500M \
--total-executor-cores 2 \
/opt/spark/spark-3.1.1-bin-hadoop3.2/examples/jars/spark-examples_2.12-3.1.1.jar \
10

再來看看Spark視圖

更多教程請關注智客工坊官網。
