spark-2.2.0安裝和部署——Spark集羣學習日記

前言

在安裝後hadoop以後,接下來須要安裝的就是Spark。html

scala-2.11.7下載與安裝

具體步驟參見上一篇博文java


Spark下載

爲了方便,我直接是進入到了/usr/local文件夾下面進行下載spark-2.2.0node

wget https://d3kbcqa49mib13.cloudfront.net/spark-2.2.0-bin-hadoop2.7.tgz

Spark安裝以前的準備

文件的解壓與更名shell

tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz
rm -rf spark-2.2.0-bin-hadoop2.7.tgz

爲了我後面方便配置spark,在這裏我把文件夾的名字給改了緩存

mv spark-2.2.0-bin-hadoop2.7 spark-2.2.0

配置環境變量

vi /etc/profile

在最尾巴加入網絡

export SPARK_HOME=/usr/local/spark-2.2.0

export PATH=$PATH:$SPARK_HOME/bin


配置Spark環境

打開spark-2.2.0文件夾ssh

cd spark-2.2.0

此處須要配置的文件爲兩個
spark-env.shslavesoop

首先咱們把緩存的文件spark-env.sh.template改成spark識別的文件spark-env.sh源碼分析

cp conf/spark-env.sh.template conf /spark-env.sh

修改spark-env.sh文件

vi conf/spark-env.sh

在最尾巴加入spa

export JAVA_HOME=/usr/java/jdk1.8.0_141

export SCALA_HOME=/usr/scala-2.11.7

export HADOOP_HOME=/usr/local/hadoop-2.7.2

export HADOOP_CONF_DIR=/usr/local/hadoop-2.7.2/etc/hadoop

export SPARK_MASTER_IP=SparkMaster

export SPARK_WORKER_MEMORY=4g

export SPARK_WORKER_CORES=2

export SPARK_WORKER_INSTANCES=1

變量說明

  • JAVA_HOME:Java安裝目錄
  • SCALA_HOME:Scala安裝目錄
  • HADOOP_HOME:hadoop安裝目錄
  • HADOOP_CONF_DIR:hadoop集羣的配置文件的目錄
  • SPARK_MASTER_IP:spark集羣的Master節點的ip地址
  • SPARK_WORKER_MEMORY:每一個worker節點可以最大分配給exectors的內存大小
  • SPARK_WORKER_CORES:每一個worker節點所佔有的CPU核數目
  • SPARK_WORKER_INSTANCES:每臺機器上開啓的worker節點的數目

修改slaves文件

vi conf/slaves

在最後面修成爲

SparkWorker1
SparkWorker2

同步SparkWorker1SparkWorker2的配置

在此咱們使用rsync命令

rsync -av /usr/local/spark-2.2.0/ SparkWorker1:/usr/local/spark-2.2.0/
rsync -av /usr/local/spark-2.2.0/ SparkWorker2:/usr/local/spark-2.2.0/

啓動Spark集羣

由於咱們只須要使用hadoopHDFS文件系統,因此咱們並不用把hadoop所有功能都啓動。

啓動hadoopHDFS文件系統

start-dfs.sh

可是在此會遇到一個狀況,就是使用start-dfs.sh,啓動以後,在SparkMaster已經啓動了namenode,但在SparkWorker1SparkWorker2都沒有啓動了datanode,這裏的緣由是:datanodeclusterIDnamenodeclusterID不匹配。是由於SparkMaster屢次使用了hadoop namenode -format格式化了。

==解決的辦法:==

SparkMaster使用

cat /usr/local/hadoop-2.7.2/hdfs/name/current/VERSION

查看clusterID,並將其複製。

SparkWorker1SparkWorker2上使用

vi /usr/local/hadoop-2.7.2/hdfs/name/current/VERSION

將裏面的clusterID,更改爲爲SparkMasterVERSION裏面的clusterID

作了以上兩步以後,即可從新使用start-dfs.sh開啓HDFS文件系統。

啓動以後使用jps命令能夠查看到SparkMaster已經啓動了namenodeSparkWorker1SparkWorker2都啓動了datanode,說明hadoopHDFS文件系統已經啓動了。

啓動Spark

由於hadoop/sbin以及spark/sbin均配置到了系統的環境中,它們同一個文件夾下存在一樣的start-all.sh文件。最好是打開spark-2.2.0,在文件夾下面打開該文件。

./sbin/start-all.sh

成功打開以後使用jpsSparkMasterparkWorker1SparkWorker2節點上分別能夠看到新開啓的MasterWorker進程。

成功打開Spark集羣以後能夠進入SparkWebUI界面,能夠經過

SparkMaster_IP:8080

訪問,可見有兩個正在運行的Worker節點。

打開Spark-shell

使用

spark-shell

即可打開Sparkshell

同時,由於shell在運行,咱們也能夠經過

SparkMaster_IP:4040

訪問WebUI查看當前執行的任務。


結言

到此咱們的Spark集羣就搭建完畢了。搭建spark集羣原來知識網絡是挺龐大的,涉及到Linux基本操做,設計到ssh,設計到hadoop、Scala以及真正的Spark。在此也遇到很多問題,經過翻閱書籍以及查看別人的blog獲得瞭解決。在此感謝分享知識的人。

參見 王家林/王雁軍/王家虎的《Spark 核心源碼分析與開發實戰》

文章出自kwongtai'blog,轉載請標明出處!

相關文章
相關標籤/搜索