站長留言

  • ✅ 本站維護及更新歷史紀錄,詳情請參考公告
  • ✅ 有任何意見、想法,歡迎留言給Spicy知道喔
  • ✅ 固定於每周一至周五更新Blogger文章,周末不定期
上課筆記程式Big DataScalaSpark

【Big Data】Spark - 7:安裝 Spark, Scala

tags: Big Data Spark Scala

Common

  1. Spark cluster 叢集可自行運作,也可以建置在 Hadoop 叢集系統之上
  2. 如果要在 Hadoop 叢集系統上建置 Spark 叢集,則 master 與所有 slave 節點都要安裝 Spark & Scala


Scala

  • 可直譯、可編譯、靜態、可運行於JVM 之上
  • 可與Java 互操作、融合物件導向編程特性與函式編程風格的程式語言

SBT

  • Simple Build Tool
  • 簡單來說就是 Scala 世界的 Maven

1. 確認 Java 版本

  • Java 8+:java -version

2. 安裝 Scala

  1. 下載網址:Link

    • 找 Debian,副檔名為.deb
  2. 下載指令:wget 網址

    • wget http://www.scala-lang.org/files/archive/scala-2.13.0-M4.deb
  3. 安裝 package:dpkg -i package.deb

    • sudo dpkg -i scala-2.13.0-M4.deb
  4. 安裝 Scala:sudo apt-get install scala

補充:移除 Scala

  • sudo apt-get remove --auto-remove scala-library

3. 設定環境

  1. 開啟設定檔:gedit ~/.bashrc

    • 於檔案末,增加
    export SCALA_HOME=/usr/share/scala
  2. 使設定檔生效:source ~/.bashrc

  3. 檢查 Scala 版本:scala -version

  4. 啟動 Scala:scala

  5. 離開 Scala shell::quit 或直接 ctrl + Z

4. 安裝 SBT

  1. 下載網址:Link
    • 找 Debian,副檔名為.deb
  2. 下載指令:wget 網址
    • wget http://dl.bintray.com/sbt/debian/sbt-1.2.1.deb
  3. 安裝 package:dpkg -i package.deb
    • sudo dpkg -i sbt-1.2.1.deb

5. 安裝 Spark

  1. 下載網址:Link
  2. 下載指令:wget 網址
    • wget https://www.apache.org/dist/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.7.tgz
  3. 解壓縮:tar zxf 檔案名稱tar zxvf 檔案名稱
    • tar zxf spark-2.3.1-bin-hadoop2.7.tgz
  4. 移動資料夾:sudo mv spark-2.3.1-bin-hadoop2.7 /usr/local/spark

6. 設定 Spark 環境變數

  1. 將 hadoop 加入使用者群組:sudo addgroup hadoop
  2. 更改 owner 權限:sudo chown -R 使用者名稱:使用者名稱 /usr/local/spark/
    • sudo chown -R test:test /usr/local/spark/
  3. 更改安裝模式:sudo chmod -R 755 /usr/local/spark/
  4. 修改設定檔:gedit ~/.bashrc
    • 添加
    export SPARK_HOME=/usr/local/spark export SPARK_CONF_DIR=/usr/local/spark/conf export PATH=$PATH:$SPARK_HOME/bin export PATH=$PATH:$SPARK_HOME/sbin
  5. 使設定檔生效:source ~/.bashrc

7. 設定 Spark 相關檔案

  1. 切換路徑cd /usr/local/spark/conf

  2. 複製檔案

    sudo cp spark-env.sh.template spark-env.sh sudo cp spark-defaults.conf.template spark-defaults.conf sudo cp slaves.template slaves
  3. 設定 spark-env:sudo gedit spark-env.sh

    • 於檔案末,加入
    export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop export SPARK_MASTER_HOST=master export SPARK_MASTER_PORT=7077 export SPARK_CONF_DIR=/usr/local/spark/conf
  4. 設定 spark-defaults:sudo gedit spark-defaults.conf

    • 於檔案末,加入
    spark.master spark://master:7077 spark.serializer org.apache.spark.serializer.KryoSerializer
  5. 設定 slaves:sudo gedit slaves

    • 刪除:localhost
    • 添加:
    192.168.61.132 # Hadoop master/data and Spark master/worker 192.168.61.131 # Hadoop data and Spark worker
  6. 設定 workers 所有節點:gedit /usr/local/hadoop/etc/hadoop/workers

    master slave
  7. 設定 YARN:gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml

    • 添加:
    <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property>

8. 重複步驟 1~7

  • slave
  • 其他 workers
  • 下載過的檔案,可以直接複製過去其他虛擬機/主機

9. 建立 HDFS 目錄

master

sudo rm -rf /usr/local/hadoop/hadoopdata/hdfs mkdir -p /usr/local/hadoop/hadoopdata/hdfs/namenode mkdir -p /usr/local/hadoop/hadoopdata/hdfs/datanode sudo chown -R 使用者名稱:使用者名稱 /usr/local/hadoop
  • 格式化 HDFS NameNode:hdfs namenode -format
  • 格式化 HDFS DataNode:hdfs datanode -format
  • 檢查 Java processes:jps

slave

sudo rm -rf /usr/local/hadoop/hadoopdata/hdfs mkdir -p /usr/local/hadoop/hadoopdata/hdfs/datanode sudo chown -R 使用者名稱:使用者名稱 /usr/local/hadoop
  • 格式化 HDFS DataNode:hdfs datanode -format
  • 檢查 Java processes:jps

10. 啟動 Spark/Hadoop

架構

  • Singleton object:SparkContext

步驟

  1. 啟動 HDFS:start-dfs.sh

  2. 啟動 YARN:start-yarn.sh

  3. 啟動 Spark:/usr/local/spark/sbin/start-all.sh

  4. 檢查 Spark:顯示有幾個 Workers

    • 開啟 Firefox,並輸入 master:8080

11. Spark Shell

  1. 進入 Spark Shell:spark-shell

    • 此為 Standalone mode

  2. 查看 Spark shell application UI

    • 開啟 Firefox,並輸入 master:4040

  3. 查看 Executors

    • 點選 “Executors”
    • Master(Driver) + Worker*2
    • driver → active:代表 Spark cluster 架設完成

停止 Hadoop/Spark

  • 停止 Hadoop:stop-all.sh
  • 停止 Spark:/usr/local/spark/sbin/stop-all.sh

Extensive 延伸閱讀

  1. Install Spark 2.3.1 on Hadoop 3.0.0 multi-node cluster on Ubuntu
    http://gaurav3ansal.blogspot.com/2017/09/installing-spark-220-on-hadoop-yarn-300.html
  2. Spark 編程指南繁體中文版
    https://taiwansparkusergroup.gitbooks.io/spark-programming-guide-zh-tw/
  3. 語言技術:Scala Gossip:https://openhome.cc/Gossip/Scala/
  4. GNU / Linux 各種壓縮與解壓縮指令:http://note.drx.tw/2008/04/command.html

Reference 參考資料

  1. 上課講義:https://tims.etraining.gov.tw/TIMSonline/index3.aspx?OCID=113442
  2. 封面圖片:https://www.analyticsvidhya.com/blog/2017/01/scala/
  3. 官網:https://spark.apache.org/docs/latest/
  4. 使用SBT构建Scala应用
    https://github.com/CSUG/real_world_scala/blob/master/02_sbt.markdown

沒有留言:

張貼留言

本網站建議使用電腦或平板瀏覽