久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Spark2.1.0怎么用

共計(jì) 2761 個(gè)字符,預(yù)計(jì)需要花費(fèi) 7 分鐘才能閱讀完成。

本篇內(nèi)容介紹了“Spark2.1.0 怎么用”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓丸趣 TV 小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

運(yùn)行 spark-shell

    在《Spark2.1.0 之運(yùn)行環(huán)境準(zhǔn)備》一文曾經(jīng)簡(jiǎn)單運(yùn)行了 spark-shell,并用下圖進(jìn)行了展示(此處再次展示此圖)。

圖 1   執(zhí)行 spark-shell 進(jìn)入 Scala 命令行

圖 1 中顯示了很多信息,這里進(jìn)行一些說明:

在安裝完 Spark 2.1.0 后,如果沒有明確指定 log4j 的配置,那么 Spark 會(huì)使用 core 模塊的 org/apache/spark/ 目錄下的 log4j-defaults.properties 作為 log4j 的默認(rèn)配置。log4j-defaults.properties 指定的 Spark 日志級(jí)別為 WARN。用戶可以到 Spark 安裝目錄的 conf 文件夾下從 log4j.properties.template 復(fù)制一份 log4j.properties 文件,并在其中增加自己想要的配置。

除了指定 log4j.properties 文件外,還可以在 spark-shell 命令行中通過 sc.setLogLevel(newLevel) 語句指定日志級(jí)別。

SparkContext 的 Web UI 的地址是:http://192.168.0.106:4040。192.168.0.106 是筆者安裝 Spark 的機(jī)器的 ip 地址,4040 是 SparkContext 的 Web UI 的默認(rèn)監(jiān)聽端口。

指定的部署模式(即 master)為 local[*]。當(dāng)前應(yīng)用(Application)的 ID 為 local-1497084620457。

可以在 spark-shell 命令行通過 sc 使用 SparkContext,通過 spark 使用 SparkSession。sc 和 spark 實(shí)際分別是 SparkContext 和 SparkSession 在 Spark REPL 中的變量名,具體細(xì)節(jié)已在《Spark2.1.0 之剖析 spark-shell》一文有過分析。

  由于 Spark core 的默認(rèn)日志級(jí)別是 WARN,所以看到的信息不是很多。現(xiàn)在我們將 Spark 安裝目錄的 conf 文件夾下的 log4j.properties.template 以如下命令復(fù)制出一份:

cp log4j.properties.template log4j.properties 

cp log4j.properties.template log4j.properties

并將 log4j.properties 中的 log4j.logger.org.apache.spark.repl.Main=WARN 修改為 log4j.logger.org.apache.spark.repl.Main=INFO,然后我們?cè)俅芜\(yùn)行 spark-shell,將打印出更豐富的信息,如圖 2 所示。

圖 2  Spark 啟動(dòng)過程打印的部分信息

從圖 2 展示的啟動(dòng)日志中我們可以看到 SecurityManager、SparkEnv、BlockManagerMasterEndpoint、DiskBlockManager、MemoryStore、SparkUI、Executor、NettyBlockTransferService、BlockManager、BlockManagerMaster 等信息。它們是做什么的?剛剛接觸 Spark 的讀者只需要知道這些信息即可,具體內(nèi)容將在后邊的博文給出。

執(zhí)行 word count

  這一節(jié),我們通過 word count 這個(gè)耳熟能詳?shù)睦觼砀惺芟?Spark 任務(wù)的執(zhí)行過程。啟動(dòng) spark-shell 后,會(huì)打開 Scala 命令行,然后按照以下步驟輸入腳本:

步驟 1  

  輸入 val lines =sc.textFile(../README.md , 2),以 Spark 安裝目錄下的 README.md 文件的內(nèi)容作為 word count 例子的數(shù)據(jù)源,執(zhí)行結(jié)果如圖 3 所示。

圖 3   步驟 1 執(zhí)行結(jié)果

圖 3 告訴我們 lines 的實(shí)際類型是 MapPartitionsRDD。

步驟 2

   textFile 方法對(duì)文本文件是逐行讀取的,我們需要輸入 val words =lines.flatMap(line = line.split()),將每行文本按照空格分隔以得到每個(gè)單詞,執(zhí)行結(jié)果如圖 4 所示。

圖 4   步驟 2 執(zhí)行結(jié)果

圖 4 告訴我們 lines 在經(jīng)過 flatMap 方法的轉(zhuǎn)換后得到的 words 的實(shí)際類型也是 MapPartitionsRDD。

步驟 3

      對(duì)于得到的每個(gè)單詞,通過輸入 val ones = words.map(w = (w,1)),將每個(gè)單詞的計(jì)數(shù)初始化為 1,執(zhí)行結(jié)果如圖 5 所示。

圖 5   步驟 3 執(zhí)行結(jié)果

圖 5 告訴我們 words 在經(jīng)過 map 方法的轉(zhuǎn)換后得到的 ones 的實(shí)際類型也是 MapPartitionsRDD。

步驟 4

  輸入 val counts = ones.reduceByKey(_ + _),對(duì)單詞進(jìn)行計(jì)數(shù)值的聚合,執(zhí)行結(jié)果如圖 6 所示。

圖 6   步驟 4 執(zhí)行結(jié)果

圖 6 告訴我們 ones 在經(jīng)過 reduceByKey 方法的轉(zhuǎn)換后得到的 counts 的實(shí)際類型是 ShuffledRDD。

步驟 5

  輸入 counts.foreach(println),將每個(gè)單詞的計(jì)數(shù)值打印出來,作業(yè)的執(zhí)行過程如圖 7 和圖 8 所示。作業(yè)的輸出結(jié)果如圖 9 所示。

圖 7   步驟 5 執(zhí)行過程第一部分

圖 8   步驟 5 執(zhí)行過程第二部分

圖 7 和圖 8 展示了很多作業(yè)提交、執(zhí)行的信息,這里挑選關(guān)鍵的內(nèi)容進(jìn)行介紹:

SparkContext 為提交的 Job 生成的 ID 是 0。

一共有四個(gè) RDD,被劃分為 ResultStage 和 ShuffleMapStage。ShuffleMapStage 的 ID 為 0,嘗試號(hào)為 0。ResultStage 的 ID 為 1,嘗試號(hào)也為 0。在 Spark 中,如果 Stage 沒有執(zhí)行完成,就會(huì)進(jìn)行多次重試。Stage 無論是首次執(zhí)行還是重試都被視為是一次 Stage 嘗試(Stage Attempt),每次 Attempt 都有一個(gè)唯一的嘗試號(hào)(AttemptNumber)。

由于 Job 有兩個(gè)分區(qū),所以 ShuffleMapStage 和 ResultStage 都有兩個(gè) Task 被提交。每個(gè) Task 也會(huì)有多次嘗試,因而也有屬于 Task 的嘗試號(hào)。從圖中看出 ShuffleMapStage 中的兩個(gè) Task 和 ResultStage 中的兩個(gè) Task 的嘗試號(hào)也都是 0。

HadoopRDD 則用于讀取文件內(nèi)容。

圖 9   步驟 5 輸出結(jié)果

圖 9 展示了單詞計(jì)數(shù)的輸出結(jié)果和最后打印的任務(wù)結(jié)束的日志信息。

“Spark2.1.0 怎么用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-04發(fā)表,共計(jì)2761字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 河西区| 信阳市| 文成县| 武宁县| 浑源县| 城固县| 寿阳县| 施秉县| 治多县| 平利县| 汕尾市| 淮北市| 汝城县| 泸溪县| 察隅县| 西乡县| 蒙阴县| 客服| 进贤县| 宣武区| 山阴县| 绥化市| 深水埗区| 新丰县| 武威市| 德惠市| 梓潼县| SHOW| 徐水县| 安康市| 剑阁县| 林州市| 江津市| 博罗县| 红安县| 娄烦县| 海晏县| 内乡县| 长宁区| 天水市| 汝州市|