本文基于 Spark 2.4.1 進(jìn)行演示鳄梅,相關(guān)代碼可以在我的Github上看到甚疟。
簡(jiǎn)介
Spark是一個(gè)分布式集群計(jì)算系統(tǒng)屯远,類似Hadoop提供了強(qiáng)大的分布式計(jì)算能力暖眼,相比過去的批量處理系統(tǒng)哩至,提供了處理更大規(guī)模數(shù)據(jù)的能力躏嚎。Spark提供了Java、Python菩貌、Scala卢佣、R接口。除常見的MapReduce運(yùn)算外箭阶,還支持圖虚茶、機(jī)器學(xué)習(xí)戈鲁、SparkSQL等計(jì)算方式。
特性
- 高效 Speed嘹叫,因?yàn)楹芏鄶?shù)據(jù)都在內(nèi)存中婆殿,相比Hadoop,其處理更為高效罩扇。
- 易用 Usability婆芦,Spark提供了80多個(gè)高級(jí)運(yùn)算符。
- 通用 Generality喂饥,提供了大量的庫(kù)消约,包括SQL、DataFrames仰泻、MLib荆陆、GraphX、Spark Streaming集侯。
- 兼容 Runs everywhere被啼,基于jvm能夠兼容不同類型的操作系統(tǒng)。
Spark運(yùn)行模式
- local : 主要用于開發(fā)調(diào)試Spark應(yīng)用程序
- Standlone : 利用Spark自帶的資源管理與調(diào)度器運(yùn)行Spark集群棠枉,采用Master/Slave結(jié)構(gòu)浓体,為解決單點(diǎn)故障,可以采用Xookeeper實(shí)現(xiàn)高可靠(High Availability, HA)
- Apache Mesos : 運(yùn)行在著名的Mesos資源管理框架基礎(chǔ)之上辈讶,該集群運(yùn)行模式將資源管理管理交給Mesos,Spark只負(fù)責(zé)運(yùn)行任務(wù)調(diào)度和計(jì)算
- Hadoop YARN : 集群運(yùn)行在Yarn資源管理器上命浴,資源管理交給YARN,Spark只負(fù)責(zé)進(jìn)行任務(wù)調(diào)度和計(jì)算
Mac本地安裝
首先從Spark官方網(wǎng)站下載合適的版本贱除,解壓到安裝目錄生闲,本文使用的是 2.4.1。
配置環(huán)境變量 ~/.bash_profile
export SPARK_HOME=/Users/shiqiang/Projects/tools/spark-2.4.1-bin-hadoop2.7
export PATH=${PATH}:${SPARK_HOME}/bin
本機(jī)的安裝目錄
~/Project/tools
在Mac系統(tǒng)管理中打開Mac遠(yuǎn)程登錄設(shè)置月幌,允許安裝用戶遠(yuǎn)程登錄碍讯。
啟動(dòng)命令
$ ./sbin/start-all.sh
$ jps
21731 Jps
21717 Worker
21515 Master
使用JPS命令可以看到Master和Worker已經(jīng)啟動(dòng)。也可以單獨(dú)啟動(dòng)master./sbin/start-master.sh
扯躺,單獨(dú)啟動(dòng)Worker
./bin/spark-class org.apache.spark.deploy.worker.Worker spark://localhost:7077
停止服務(wù)的方式也非常簡(jiǎn)單
$ ./sbin/stop-all.sh