官术网_书友最值得收藏!

1.3 Spark技術(shù)棧

本節(jié)按照使用層次列出了Spark的技術(shù)棧,分為4層,自底向上依次為:操作系統(tǒng)、外部組件、Spark框架、編程語(yǔ)言,如圖1-6所示。

圖1-6 Spark技術(shù)棧

1.底層基石——操作系統(tǒng)

Spark程序運(yùn)行在Linux操作系統(tǒng)上,常用的Linux發(fā)行版是Ubuntu和CentOS。安裝Linux操作系統(tǒng)時(shí)所涉及的技術(shù)包括:虛擬機(jī)安裝與使用、Linux的安裝、功能定制等;系統(tǒng)安裝后,涉及的技術(shù)可以分為以下3類。

●Shell命令:Linux基本配置、文件操作、用戶管理、權(quán)限設(shè)置、網(wǎng)絡(luò)配置、服務(wù)的開(kāi)啟、關(guān)閉、自動(dòng)運(yùn)行、文本編輯器使用等命令;

●腳本編程:Linux下主流的腳本語(yǔ)言主要是Bash等,技術(shù)涉及:變量的使用、基本數(shù)據(jù)類型、關(guān)鍵詞、控制結(jié)構(gòu)、函數(shù)定義與使用、調(diào)試技巧等;

●操作系統(tǒng)接口:Spark應(yīng)用和Spark框架的開(kāi)發(fā),更多的是和JDK以及開(kāi)發(fā)語(yǔ)言的接口打交道,直接同操作系統(tǒng)接口的交互并不多。操作系統(tǒng)的接口對(duì)于理解JVM機(jī)制以及Spark應(yīng)用和Spark框架的性能調(diào)優(yōu)時(shí)會(huì)用到。

2.周圍友援——外部組件

Spark負(fù)責(zé)大數(shù)據(jù)分析處理,而數(shù)據(jù)從哪來(lái)、處理后的數(shù)據(jù)應(yīng)該往哪去,則需要其他的外部組件來(lái)負(fù)責(zé)。圖1-5列出了各類外部組件的主流選型,如非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)HDFS、結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)Hbase,消息處理、數(shù)據(jù)接入工具Kafka、數(shù)據(jù)采集工具Flume、分布式程序一致性組件Zookeeper。實(shí)際開(kāi)發(fā)中,Spark會(huì)同這些組件頻繁交互,因此,需要掌握這些組件的基本運(yùn)行原理、安裝方法、基本配置、常用命令、API接口和日志查看方法等基礎(chǔ)技術(shù)。

3.中堅(jiān)核心——Spark框架

Spark 框架就是Spark自身,它是Spark大數(shù)據(jù)開(kāi)發(fā)的核心。Spark框架由 Spark Core、Spark SQL、GraphX、流數(shù)據(jù)處理、SparkR、MLlib/ML和Spark交互工具組成。后面會(huì)詳述各組成部分的功能。

4.上層接口——編程語(yǔ)言

Spark支持的編程語(yǔ)言包括Java、Scala、Python、R和SQL。上述編程語(yǔ)言中Spark對(duì)Scala的支持最好,因?yàn)镾park框架自身就是用Scala開(kāi)發(fā)的。Spark還支持SQL,SQL和其他4種語(yǔ)言不一樣,它可以獨(dú)立出現(xiàn)在spark-sql(Spark交互工具的一種)中,也可以嵌入在編程語(yǔ)言中。

主站蜘蛛池模板: 大理市| 海淀区| 武义县| 喀喇沁旗| 巨鹿县| 贡山| 彭山县| 安仁县| 旌德县| 平山县| 永靖县| 修文县| 连州市| 苏尼特右旗| 原平市| 祥云县| 开原市| 高陵县| 绍兴县| 中江县| 泊头市| 滁州市| 广安市| 宜良县| 永平县| 湟中县| 平定县| 五大连池市| 祁阳县| 许昌市| 龙江县| 铜梁县| 莒南县| 成都市| 罗田县| 获嘉县| 耒阳市| 宁德市| 利辛县| 巴彦淖尔市| 广宗县|