日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Spark1——介绍

發(fā)布時(shí)間:2023/12/2 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spark1——介绍 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、Spark是什么

  Spark是一個(gè)用來(lái)實(shí)現(xiàn)快速而通用的集群計(jì)算的平臺(tái)。

?

2、Spark是一個(gè)大一統(tǒng)的軟件棧

  Spark項(xiàng)目包含多個(gè)緊密集成的組件。首先Spark的核心是一個(gè)對(duì)由很多計(jì)算任務(wù)組成的、運(yùn)行在多個(gè)工作機(jī)器或者是一個(gè)計(jì)算集群上的應(yīng)用進(jìn)行調(diào)度、分發(fā)以及監(jiān)控的計(jì)算引擎。

  Spark的個(gè)組件如下圖所示:

  

  • Apache Spark 也就是Spark的核心部分,也稱(chēng)為Spark Core,這個(gè)部分實(shí)現(xiàn)了Spark的基本功能,包含任務(wù)調(diào)度、內(nèi)存管理、錯(cuò)誤恢復(fù)、與存儲(chǔ)系統(tǒng)交互模塊,還包含了對(duì)彈性分布式數(shù)據(jù)集(RDD)的API定義。
  • Spark SQL是Spark用來(lái)操作結(jié)構(gòu)化數(shù)據(jù)的程序包。通過(guò)Spark SQL,我們可以使用SQL或者HQL來(lái)查詢(xún)數(shù)據(jù)。
  • Spark Streaming 是Spark提供的對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行流式計(jì)算的組件。比如生產(chǎn)環(huán)境中的網(wǎng)頁(yè)服務(wù)器日志,或是網(wǎng)絡(luò)服務(wù)中用戶(hù)提交的狀態(tài)更新組成的消息隊(duì)列,都是消息流
  • MLlib這是一個(gè)包含了常見(jiàn)機(jī)器學(xué)習(xí)功能的程序庫(kù),包括分類(lèi)、回歸、聚類(lèi)、協(xié)同過(guò)濾等
  • GraphX是用來(lái)操作圖的程序庫(kù),可以進(jìn)行并行的圖計(jì)算。

3、Spark的核心概念

  從上層來(lái)看,每個(gè)Spark應(yīng)用都由一個(gè)驅(qū)動(dòng)器程序來(lái)發(fā)起集群上的并行操作。驅(qū)動(dòng)器程序包含應(yīng)用的main函數(shù),并且定義了集群上的分布式數(shù)據(jù)集,還對(duì)這些分布式數(shù)據(jù)集應(yīng)用了相關(guān)操作。

  驅(qū)動(dòng)器程序通過(guò)一個(gè)SparkContext對(duì)象來(lái)訪(fǎng)問(wèn)Spark。這個(gè)對(duì)象代表對(duì)計(jì)算集群的一個(gè)連接,當(dāng)Spark shell啟動(dòng)時(shí)已自動(dòng)創(chuàng)建了一個(gè)SparkContext對(duì)象。

val textFile = sc.textFile("hdfs://...") val counts = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_ + _) counts.saveAsTextFile("hdfs://...")

  這里的sc變量,就是自動(dòng)創(chuàng)建的SparkContext對(duì)象。通過(guò)它就可以來(lái)創(chuàng)建RDD,調(diào)用sc.textFile()來(lái)創(chuàng)建一個(gè)代表文件各行文本的RDD。

  通過(guò)RDD我們就可以在這些行上進(jìn)行各種操作,通常驅(qū)動(dòng)器程序要管理多個(gè)執(zhí)行器節(jié)點(diǎn)。比如,如果我們?cè)诩荷线\(yùn)行輸出操作,那么不同的節(jié)點(diǎn)就會(huì)統(tǒng)計(jì)文件不同部分的行數(shù)。

?

4、初始化SparlContext

  一旦完成了應(yīng)用與Spark的連接,接下來(lái)就需要在程序中導(dǎo)入Spark包并創(chuàng)建SparkContext.我們可以通過(guò)先創(chuàng)建一個(gè)SparkConf對(duì)象來(lái)配置應(yīng)用,然后基于這個(gè)SparkConf來(lái)創(chuàng)建一個(gè)Sparktext對(duì)象。

val conf = new SparkConf().setAppName("wordcount").setMaster("local") val sc = new SparkContext(conf)

  這里創(chuàng)建了SparkContext的最基礎(chǔ)的方法,只需要傳遞兩個(gè)參數(shù):

  • 應(yīng)用名:這里使用的是"wordcount?",當(dāng)連接到一個(gè)集群的時(shí)候,這個(gè)值可以幫助我們?cè)诩汗芾砥鞯挠脩?hù)界面中找到你的應(yīng)用,這是這個(gè)程序運(yùn)行后的集群管理器的截圖

  • 集群URL:告訴Spark如何連接到集群上,這里使用的是local,這個(gè)特殊的值可以讓Spark運(yùn)行在單機(jī)單線(xiàn)程上而無(wú)需連接到集群上

?

轉(zhuǎn)載于:https://www.cnblogs.com/xxbbtt/p/8425376.html

總結(jié)

以上是生活随笔為你收集整理的Spark1——介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。