spark-2.2.0安裝和部署——集群學(xué)習(xí)日記

前言

在安裝后hadoop之后,接下來需要安裝的就是Spark。

scala-2.11.7下載與安裝

具體步驟參見上一篇博文


Spark下載

為了方便,我直接是進(jìn)入到了/usr/local文件夾下面進(jìn)行下載spark-2.2.0

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

Spark安裝之前的準(zhǔn)備

文件的解壓與改名

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

配置環(huán)境變量

vi /etc/profile

在最尾巴加入

export SPARK_HOME=/usr/local/spark-2.2.0

export PATH=$PATH:$SPARK_HOME/bin

配置Spark環(huán)境

打開spark-2.2.0文件夾

cd spark-2.2.0

此處需要配置的文件為兩個(gè)
spark-env.shslaves

首先我們把緩存的文件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

在最尾巴加入

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節(jié)點(diǎn)的ip地址
  • SPARK_WORKER_MEMORY:每個(gè)worker節(jié)點(diǎn)能夠最大分配給exectors的內(nèi)存大小
  • SPARK_WORKER_CORES:每個(gè)worker節(jié)點(diǎn)所占有的CPU核數(shù)目
  • SPARK_WORKER_INSTANCES:每臺機(jī)器上開啟的worker節(jié)點(diǎn)的數(shù)目

修改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集群

因?yàn)槲覀冎恍枰褂?code>hadoop的HDFS文件系統(tǒng),所以我們并不用把hadoop全部功能都啟動。

啟動hadoopHDFS文件系統(tǒng)

start-dfs.sh

但是在此會遇到一個(gè)情況,就是使用start-dfs.sh,啟動之后,在SparkMaster已經(jīng)啟動了namenode,但在SparkWorker1SparkWorker2都沒有啟動了datanode,這里的原因是:datanodeclusterIDnamenodeclusterID不匹配。是因?yàn)?code>SparkMaster多次使用了hadoop namenode -format格式化了。

==解決的辦法:==

SparkMaster使用

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

查看clusterID,并將其復(fù)制。

SparkWorker1SparkWorker2上使用

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

將里面的clusterID,更改成為SparkMasterVERSION里面的clusterID

做了以上兩步之后,便可重新使用start-dfs.sh開啟HDFS文件系統(tǒng)。

啟動之后使用jps命令可以查看到SparkMaster已經(jīng)啟動了namenode,SparkWorker1SparkWorker2都啟動了datanode,說明hadoopHDFS文件系統(tǒng)已經(jīng)啟動了。

啟動Spark

因?yàn)?code>hadoop/sbin以及spark/sbin均配置到了系統(tǒng)的環(huán)境中,它們同一個(gè)文件夾下存在同樣的start-all.sh文件。最好是打開spark-2.2.0,在文件夾下面打開該文件。

./sbin/start-all.sh

成功打開之后使用jpsSparkMasterparkWorker1SparkWorker2節(jié)點(diǎn)上分別可以看到新開啟的MasterWorker進(jìn)程。

成功打開Spark集群之后可以進(jìn)入SparkWebUI界面,可以通過

SparkMaster_IP:8080

訪問,可見有兩個(gè)正在運(yùn)行的Worker節(jié)點(diǎn)。

打開Spark-shell

使用

spark-shell

便可打開Sparkshell

同時(shí),因?yàn)?code>shell在運(yùn)行,我們也可以通過

SparkMaster_IP:4040

訪問WebUI查看當(dāng)前執(zhí)行的任務(wù)。


結(jié)言

到此我們的Spark集群就搭建完畢了。搭建spark集群原來知識網(wǎng)絡(luò)是挺龐大的,涉及到Linux基本操作,設(shè)計(jì)到ssh,設(shè)計(jì)到hadoop、Scala以及真正的Spark。在此也遇到不少問題,通過翻閱書籍以及查看別人的blog得到了解決。在此感謝分享知識的人。

參見 王家林/王雁軍/王家虎的《Spark 核心源碼分析與開發(fā)實(shí)戰(zhàn)》

文章出自kwongtai'blog,轉(zhuǎn)載請標(biāo)明出處!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容