導讀
- 引言
- 環境準備
- 安裝步驟
- 1.下載地址
- 2.開始下載
- 3.解壓spark
- 4.配置環境變數
- 5.配置 spark-env.sh
- 6.啟動spark服務
- 7.測試spark
stay hungry stay foolish.
引言
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檢視
版權宣告
作者:頂級碼農
出處:
若標題中有“轉載”字樣,則本文版權歸原作者所有。若無轉載字樣,本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連結,否則保留追究法律責任的權利.
更多內容請關注智客工坊