Spark大資料處理框架入門(單機版)

戎"碼"一生發表於2021-05-21

導讀

  • 引言
  • 環境準備
  • 安裝步驟
    • 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檢視




版權宣告

作者:頂級碼農
出處:

若標題中有“轉載”字樣,則本文版權歸原作者所有。若無轉載字樣,本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連結,否則保留追究法律責任的權利.

更多內容請關注智客工坊


相關文章