iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0
AI & Data

30天認識主流大數據框架:Hadoop + Spark + Flink系列 第 16

Day16 - Spark 安裝與配置

  • 分享至 

  • xImage
  •  

前言
這篇文章會介紹如何安裝 Spark 並進行適當的配置,還不清楚 Spark 是什麼的人可以先看看 Spark 的介紹系列:
Day13 - Spark 介紹 (1):簡介與架構
Day14 - Spark 介紹 (2):RDD
Day15 - Spark 介紹 (3):Spark SQL、DataFrame、DataSet

本地環境

  • WSL Ubuntu 22.04.2 LTS
  • Hadoop 3.3.6 (version >= 3.3 is needed)
  • Java 1.8.0_382 (version 8 is needed)

還沒安裝 Hadoop 和 Java 的可以參考這裡:Day06 Hadoop 安裝

安裝 Scala

  • 透過 Scala Installer (Coursier) 安裝
    $ curl -fL https://github.com/coursier/coursier/releases/latest/download/cs-x86_64-pc-linux.gz | gzip -d > cs && chmod +x cs && ./cs setup
    
    安裝完後重新啟動 terminal 使改動生效。
  • 確認 Scala 是否安裝
    $ scala -version
    
    https://ithelp.ithome.com.tw/upload/images/20231001/20138939lsqVevIsk6.png

安裝 Spark

  • 下載 Spark
    本次安裝的版本是 Apache Sprak 3.4.1,可以直接到官方網站下載,或是跟著下面的指令操作。
    $ mkdir ~/spark
    $ cd ~/spark
    $ wget https://dlcdn.apache.org/spark/spark-3.4.1/spark-3.4.1-bin-hadoop3.tgz
    $ tar zxvf spark-3.4.1-bin-hadoop3.tgz
    $ rm spark-3.4.1-bin-hadoop3.tgz
    
  • 設置系統環境
    $ vim ~/.bashrc
    
  • 將下方內容加入 ~./bashrc
    export SPARK_HOME=~/spark/spark-3.4.1-bin-hadoop3
    export PATH=$PATH:$SPARK_HOME/bin
    
  • 讀取 ~./bashrc 使改動生效
    $ source ~/.bashrc
    
  • 開啟 spark-shell
    $ spark-shell
    
  • 成功進入 spark-shell 就表示安裝成功囉~ (:q:quit 可以退出)
    https://ithelp.ithome.com.tw/upload/images/20231001/201389391RcwJcJ4lT.png

配置 Spark

  • spark-env.sh 中加入以下配置
    export HADOOP_HOME=~/home/mengchiehliu/hadoop/hadoop-3.3.6
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
    

測試: Word Count

  • 創建一個測試文件 test.log,內容如下
    hadoop spark hadoop
    spark hadoop spark
    
  • 啟動 HDFS & YARN
    $ $HADOOP_HOME/sbin/start-dfs.sh
    $ $HADOOP_HOME/sbin/start-yarn.sh
    
  • 開啟 spark-shell
    $ spark-shell
    
  • 在 spark-shell 中執行 Word Count
    var line = sc.textFile("test.log")
    line.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect().foreach(println)
    
  • 測試成功!
    https://ithelp.ithome.com.tw/upload/images/20231001/20138939Mukc5khM5w.png

預告

明天會介紹 Spark in Python - PySpark 的使用。

參考資料

GETTING STARTED | Scala Documentation


上一篇
Day15 - Spark 介紹 (3):Spark SQL、DataFrame、DataSet
下一篇
Day17 - PySpark (1):Basis
系列文
30天認識主流大數據框架:Hadoop + Spark + Flink30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言