Spark安裝與設定

* 為了讓Spark能夠在本機正常工作,你需要安裝Java開發套件(JDK)

  • Spark runs on Java 7+, Python 2.6+/3.4+ and R 3.1+. For the Scala API, Spark 2.0.2 uses Scala 2.11.

Ubuntu 16.04

  • 安裝OpenJDK-8
    • sudo apt-get install openjdk-8-jdk
    • 安裝完成後,bash下輸入 java -version確認。
    • 設定環境變數,全域設定在/etc/profile,個人設定在~HOME/.bashrc中
    • 首先確定java指令的位址 which java , 出現/usr/lib/jvm/java-8-openjdk-amd64/bin/java
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export SPARK_HOME=/opt/spark
export PATH=${JAVA_HOME}/bin:${SPARK_HOME}/bin:${PATH}
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
  • 如果系統中已安裝不同的java JDK時,可用 update-alternatives --config java 來更換java版本。

  • 安裝scala: (如果不須以scala開發程式,似乎不須安裝scala也可運作spark)

    • apt-cache policy scala: 確認scala版本大於2.11
    • sudo apt-get install scala
    • scala -version 確認安裝的scala版本
    • 安裝後,在bash下輸入scala,確認能夠進入scala shell中。
  • 因為我們均已安裝好python 3.5以2.7以上的版本,不須再另外安裝。

    • SPARK的driver與worker必須使用相同版本的python,若沒有指定版本時,預設使用PATH中的版本。
    • 可用PYSPARK_DRIVER_PYTHON與PYSPARK_PYTHON來指定spark使用的python版本。
# 指定pyspark的版本
export PYSPARK_DRIVER_PYTHON=/usr/local/bin/ipython3

# 指定spark的python版本
export PYSPARK_PYTHON=/usr/bin/python3
  • 官網有已經編譯好的版本,直接下載即可。
    • 抓下的版本為 spark-2.0.2-bin-hadoop2.tgz,直接解開即可。
    • tar -xvzf spark-2.0.2-bin-hadoop2.tgz -C /opt
    • ln -s spark-2.0.2-bin-hadoop2.7 spark
    • 其中最主要的就是conf和bin這兩個目錄
    • conf放了各種參數檔案,通常是cluster mode會需要詳細設定
    • bin則放了很多重要的執行腳本
.conf
├── docker.properties.template
├── fairscheduler.xml.template
├── log4j.properties.template
├── metrics.properties.template
├── slaves.template
├── spark-defaults.conf.template
└── spark-env.sh.template
.bin
├── beeline
├── beeline.cmd
├── load-spark-env.cmd
├── load-spark-env.sh
├── pyspark
├── pyspark2.cmd
├── pyspark.cmd
├── run-example
├── run-example.cmd
├── spark-class
├── spark-class2.cmd
├── spark-class.cmd
├── sparkR
├── sparkR2.cmd
├── sparkR.cmd
├── spark-shell
├── spark-shell2.cmd
├── spark-shell.cmd
├── spark-sql
├── spark-submit
├── spark-submit2.cmd
└── spark-submit.cmd
  • bin/spark-shell: 會進入scala spark模式。
  • bin/pyspark: python直譯模式執行pyspark後,會直接進入互動式開發環境。

  • 配置spark,進入conf資料夾後, cp spark-env.sh.template shark-env.sh

  • 測試程式

    • scala: run-example SparkPi > /tmp/spark_scala_result
    • python spark-submit /opt/spark/examples/src/main/python/pi.py > /tmp/spark_python_result
    • scala版本的結果應為 Pi is roughly 3.1386756933784667
    • Python版本的結果應為 Pi is roughly 3.142400
  • Spark支援獨立模式(本地Spark叢集)、Hadoop YARN或Apache Mesos的叢集管理。

  • 在分散式儲存方面,Spark可以和HDFS、 Cassandra 、OpenStack Swift和Amazon S3等介面搭載。

Standalone多叢集模式

  • 多叢集模式原則再開發上除了master位置的指定外其他Code都不需要再修改
    • 基本上有 Standalone,就是由Spark本身自帶的多叢集管理功能
    • 可以透過設定conf內的slaves檔案,將要參與運算的叢集加入到這個清單中 (在master端操作)
    • 接著到sbin目錄中去啟動master (start-master.sh)
    • 然後再運行start-slaves.sh 就可以了 (此時他會自動透過ssh去連接各節點,各節點的slaves便會註冊回來)

參考資料

results matching ""

    No results matching ""