spark1.6.1 on yarn搭建部署
注:本文是建立在hadoop已經(jīng)搭建完成的基礎(chǔ)上進行的。
?
Apache Spark是一個分布式計算框架,旨在簡化運行于計算機集群上的并行程序的編寫。該框架對資源調(diào)度,任務(wù)的提交、執(zhí)行和跟蹤,節(jié)點間的通信以及數(shù)據(jù)并行處理的內(nèi)在底層操作都進行了抽象。它提供了一個更高級別的API用于處理分布式數(shù)據(jù)。從這方面說,它與Apache Hadoop等分布式處理框架類似。但在底層架構(gòu)上,Spark與它們有所不同。
Spark起源于加利福利亞大學(xué)伯克利分校的一個研究項目。學(xué)校當(dāng)時關(guān)注分布式機器學(xué)習(xí)算法的應(yīng)用情況。因此,Spark從一開始便為應(yīng)對迭代式應(yīng)用的高性能需求而設(shè)計。在這類應(yīng)用中,相同的數(shù)據(jù)會被多次訪問。該設(shè)計主要靠利用數(shù)據(jù)集內(nèi)存緩存以及啟動任務(wù)時的低延遲和低系統(tǒng)開銷來實現(xiàn)高性能。再加上其容錯性、靈活的分布式數(shù)據(jù)結(jié)構(gòu)和強大的函數(shù)式編程接口,Spark在各類基于機器學(xué)習(xí)和迭代分析的大規(guī)模數(shù)據(jù)處理任務(wù)上有廣泛的應(yīng)用,這也表明了其實用性。
?
Spark支持四種運行模式。
- 本地單機模式:所有Spark進程都運行在同一個Java虛擬機(Java Vitural Machine,JVM)中。
- 集群單機模式:使用Spark自己內(nèi)置的任務(wù)調(diào)度框架。
- 基于Mesos:Mesos是一個流行的開源集群計算框架。
- 基于YARN:即Hadoop 2,它是一個與Hadoop關(guān)聯(lián)的集群計算和資源調(diào)度框架。
?
spark是由Scala語言編寫的,但是運行的環(huán)境是jvm,所以需要安裝JDK?
編譯過程:Python、java、Scala編寫的代碼?->?scala編譯器編譯解釋,生成class文件?->?由jvm負(fù)責(zé)執(zhí)行class文件(與java代碼執(zhí)行一致)
?
Apache Hadoop YARN (Yet Another Resource Negotiator,另一種資源協(xié)調(diào)者)是一種新的 Hadoop 資源管理器,它是一個通用資源管理系統(tǒng),可為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度,它的引入為集群在利用率、資源統(tǒng)一管理和數(shù)據(jù)共享等方面帶來了巨大好處
?
由于 spark是由Scala語言編寫的,所以依賴Scala環(huán)境,且由Scala編寫的執(zhí)行代碼也需要環(huán)境進行編譯。
hdfs是作為spark的持久層,所以需要安裝Hadoop,同時如果需要配置spark on yarn,則Hadoop需要安裝yarn版本的
?
spark官方詳細(xì)參數(shù)配置手冊:http://spark.apache.org/docs/latest/configuration.html
下載地址:http://spark.apache.org/downloads.html
---------------------------------------------------------------------------------------------------------
1、安裝Scala
官網(wǎng)下載地址:?http://www.scala-lang.org/download/all.html
下載后解壓到指定目錄,例如 /usr/local/scala
# tar -zxvf?scala-2.11.8.tgz ?; ?mv?scala-2.11.8 /usr/local/scala
配置環(huán)境變量:
# vim /etc/profile
export ?SCALA_HOME=/usr/local/scala/
export ?PATH=$SCALA_HOME/bin:$PATH?
?
2、編輯conf/spark-env.sh文件
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_MASTER_IP=dataMaster30
export SPARK_EXECUTOR_INSTANCES=3
export SPARK_EXECUTOR_CORES=3
export SPARK_EXECUTOR_MEMORY=8g
export SPARK_DRIVER_MEMORY=2g
?
3、編輯slaves文件
#localhost dataSlave31 dataSlave32 dataSlave33 dataSlave34 dataSlave35?
4、啟動spark集群:
/usr/local/spark/sbin/start-all.sh
關(guān)閉spark集群:
/usr/local/spark/sbin/stop-all.sh
?
5、檢測是否安裝成功:
# jps (Master節(jié)點) 此時會多出現(xiàn)一個Master進程
?
1701?Master
1459?SecondaryNameNode
2242?NameNode
1907?ResourceManage
# jps ?(Worker節(jié)點)?此時會多出現(xiàn)一個Worker進程
5387 Worker
4269 DataNode
4398 NodeManager
?
執(zhí)行以下測試命令,查看spark單機運行是否成功:
/usr/local/spark/bin/run-example SparkPi 1000?
執(zhí)行以下測試命令,查看spark集群運行是否成功:?
cd /usr/local/spark
?./bin/spark-submit --master spark://master60:7077 --class org.apache.spark.examples.SparkPi ?lib/spark-examples-1.6.1-hadoop2.6.0.jar 1000
如果沒有報錯的話,則證明spark確實部署成功。
?
6、查看集群狀態(tài):
http://master30:8080/?
?
最后設(shè)置開機自啟動:
vim /etc/rc.local
su - hadoop -c "/usr/local/hadoop/sbin/start-all.sh"
su - hadoop -c "/usr/local/spark/sbin/start-all.sh"
?
?
總結(jié)
以上是生活随笔為你收集整理的spark1.6.1 on yarn搭建部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cell.reuseIdentifier
- 下一篇: FMDB的介绍