欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)激活碼778899分享:Spark編程基礎(chǔ)

柚子快報(bào)激活碼778899分享:Spark編程基礎(chǔ)

http://yzkb.51969.com/

目錄

一,Spark設(shè)計(jì)與運(yùn)行原理

1,Spark簡(jiǎn)介

2,Spark與Hadoop對(duì)比

二,Spark運(yùn)行架構(gòu)

1,RDD設(shè)計(jì)與運(yùn)行原理

方法1.parallelize()

方法2.makeRDD()

方法3.通過HDFS文件創(chuàng)建 RDD

方法4.通過 Linux 本地文件創(chuàng)建 RDD

2,RDD方法歸納

1.使用map()方法轉(zhuǎn)換數(shù)據(jù)?

2.使用 sortBy()方法進(jìn)行排序??

?3.使用flatMap()方法轉(zhuǎn)換數(shù)據(jù)?

4.使用take()方法查詢某幾個(gè)值??

?5.使用union()方法合并多個(gè)RDD?

6.使用distinct()方法進(jìn)行去重??

3, 使用簡(jiǎn)單的集合操作?

?(1)intersection()方法?

?(2)subtract()方法?

(3)cartesian()方法??

任務(wù)實(shí)現(xiàn):?

三,Spark快速上手

?1,創(chuàng)建Maven項(xiàng)目

(1)增加Scala插件?

(2)增加依賴關(guān)系?

?(3)WordCount

(4)異常處理

四,Spark運(yùn)行環(huán)境?

1,Local模式

上傳并解壓縮文件

啟動(dòng)local環(huán)境

命令行工具?

退出本地模式

提交應(yīng)用

五,Spark運(yùn)行架構(gòu)

1,運(yùn)行架構(gòu)

2,核心概念

(1)Executor與Core

一,Spark設(shè)計(jì)與運(yùn)行原理

1,Spark簡(jiǎn)介

Spark 是一種基于內(nèi)存的快速、通用、可擴(kuò)展的大數(shù)據(jù)分析計(jì)算引擎

特點(diǎn):運(yùn)行速度快、容易使用、通用性、運(yùn)行模式多樣

2,Spark與Hadoop對(duì)比

Hadoop存在的缺點(diǎn):

表達(dá)能力有限 ,磁盤IO開銷大 ,延遲高

Spark優(yōu)點(diǎn):

編程模型更靈活,迭代運(yùn)算效率更高,任務(wù)調(diào)度機(jī)制更優(yōu)

二,Spark運(yùn)行架構(gòu)

1,RDD設(shè)計(jì)與運(yùn)行原理

創(chuàng)建RDD

方法1.parallelize()

parallelizeO方法有兩個(gè)輸人參數(shù),說明如下: (1)要轉(zhuǎn)化的集合:必須是 Seq集合。Seq 表示序列,指的是一類具有一定長(zhǎng)度的、可迭代訪問的對(duì)象,其中每個(gè)數(shù)據(jù)元素均帶有一個(gè)從0開始的、固定的索引。 (2)分區(qū)數(shù)。若不設(shè)分區(qū)數(shù),則RDD 的分區(qū)數(shù)默認(rèn)為該程序分配到的資源的 CPU核心數(shù)。 通過 parallelizeO方法用一個(gè)數(shù)組的數(shù)據(jù)創(chuàng)建RDD,并設(shè)置分區(qū)數(shù)為4,創(chuàng)建后查看該 RDD 的分區(qū)數(shù)

方法2.makeRDD()

makeRDD0方法有兩種使用方式,第一種使用方式與 parallelize0方法一致;第二種方式是通過接收一個(gè) Seq[(T,Seq[String])]參數(shù)類型創(chuàng)建 RDD。第二種方式生成的RDD中保存的是T的值,Seq[String]部分的數(shù)據(jù)會(huì)按照 Seqf(T,Seq[String])的順序存放到各個(gè)分區(qū)中,一個(gè) Seq[Stringl對(duì)應(yīng)存放至一個(gè)分區(qū),并為數(shù)據(jù)提供位置信息,通過preferredLocations0方法可以根據(jù)位置信息查看每一個(gè)分區(qū)的值。調(diào)用 makeRDD0時(shí)不可以直接指定 RDD 的分區(qū)個(gè)數(shù),分區(qū)的個(gè)數(shù)與 Seq[String]參數(shù)的個(gè)數(shù)是保持一致的,使用 makeRDD0方法創(chuàng)建 RDD,并根據(jù)位置信息查看每一個(gè)分區(qū)的值

方法3.通過HDFS文件創(chuàng)建 RDD

這種方式較為簡(jiǎn)單和常用,直接通過 textFile()方法讀取 HDFS文件的位置即可。 在HDFS 的/user/toot 目錄下有一個(gè)文件test.txt,讀取該文件創(chuàng)建一個(gè) RDD

方法4.通過 Linux 本地文件創(chuàng)建 RDD

本地文件的讀取也是通過 sc.textFile("路徑")的方法實(shí)現(xiàn)的,在路徑前面加上“file://”表示從Linux 本地文件系統(tǒng)讀取。在 IntelliJIDEA 開發(fā)環(huán)境中可以直接讀取本地文件;但在 spark-shell 中,要求在所有節(jié)點(diǎn)的相同位置保存該文件才可以讀取它,例如,在Linux的/opt 目錄下創(chuàng)建一個(gè)文件 test.txt,任意輸入4行數(shù)據(jù)并保存,將 test.txt 文件遠(yuǎn)程傳輸至所有節(jié)點(diǎn)的/opt 目錄下,才可以讀取文件 test.txt。讀取 test.txt 文件,并且統(tǒng)計(jì)文件的數(shù)據(jù)行數(shù)

2,RDD方法歸納

1.使用map()方法轉(zhuǎn)換數(shù)據(jù)

2.使用 sortBy()方法進(jìn)行排序?

?3.使用flatMap()方法轉(zhuǎn)換數(shù)據(jù)

4.使用take()方法查詢某幾個(gè)值?

?5.使用union()方法合并多個(gè)RDD

6.使用distinct()方法進(jìn)行去重?

3, 使用簡(jiǎn)單的集合操作

?(1)intersection()方法

?(2)subtract()方法

(3)cartesian()方法?

任務(wù)實(shí)現(xiàn):?

三,Spark快速上手

?1,創(chuàng)建Maven項(xiàng)目

(1)增加Scala插件

(2)增加依賴關(guān)系?

? ? 修改Maven項(xiàng)目中的POM文件,增加Spark框架的依賴關(guān)系

org.apache.spark

spark-core_2.12

2.4.5

net.alchim31.maven

scala-maven-plugin

3.2.2

testCompile

org.apache.maven.plugins

maven-assembly-plugin

3.1.0

jar-with-dependencies

make-assembly

package

single

?(3)WordCount

? ?為了能直觀地感受Spark框架的效果,接下來我們實(shí)現(xiàn)一個(gè)大數(shù)據(jù)學(xué)科中最常見的教學(xué)案例? ? ? ? ?WordCount

/**

* spark實(shí)現(xiàn)單詞計(jì)數(shù)

*/

object WordCountSpark {

def main(args: Array[String]): Unit = {

//創(chuàng)建spark運(yùn)行配置對(duì)象

val spark: SparkConf = new SparkConf()

.setMaster("local[*]")

.setAppName("WordCountSparkApps")

//創(chuàng)建spark上下文對(duì)象

val sc: SparkContext = new SparkContext(spark)

//讀文件數(shù)據(jù)

val wordsRDD: RDD[String] = sc.textFile("data/word.txt")

//講文件中的數(shù)據(jù)進(jìn)行分詞

val word: RDD[String] = wordsRDD.flatMap(_.split(","))

//轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)word ---->(word,1)

val word2: RDD[(String, Int)] = word.map((_, 1))

//將轉(zhuǎn)換結(jié)構(gòu)后的數(shù)據(jù)按照相同的單詞進(jìn)行分組聚合

val word2CountRDD: RDD[(String, Int)] = word2.reduceByKey(_ + _)

//將數(shù)據(jù)聚合結(jié)果采集到內(nèi)存中

val word2Count: Array[(String, Int)] = word2CountRDD.collect()

//打印結(jié)果

word2Count.foreach(println)

//關(guān)閉spark連接

sc.stop()

}

}

(4)異常處理

如果本機(jī)操作系統(tǒng)是Windows,在程序中使用了Hadoop相關(guān)的東西,比如寫入文件到HDFS,則會(huì)遇到如下異常:

出現(xiàn)這個(gè)問題的原因,并不是程序的錯(cuò)誤,而是windows系統(tǒng)用到了hadoop相關(guān)的服務(wù),解決辦法是通過配置關(guān)聯(lián)到windows的系統(tǒng)依賴就可以了?

在IDEA中配置RunConfiguration,添加HADOOP_HOME變量或者在windows上配置環(huán)境變量:?

四,Spark運(yùn)行環(huán)境?

1,Local模式

上傳并解壓縮文件

(1)上傳文件至/usr/local/packages中

(2)解壓縮到指定目錄?

[root@master local]# tar -zxvf spark-2.4.5-bin-hadoop2.6.tgz -C /usr/local/soft/

(3)重命名?

[root@master soft]# mv spark-2.4.5-bin-hadoop2.6/ spark-local

啟動(dòng)local環(huán)境

(1)進(jìn)入解壓縮(spark-local)目錄

(2)啟動(dòng)成功后,可以輸入網(wǎng)址進(jìn)行Web UI監(jiān)控頁(yè)面訪問?

命令行工具?

sc.textFile("data/word.txt").flatMap(_.split(",")).map((_,1)).reduceByKey(_+_).collect

退出本地模式

scala> :quit?

提交應(yīng)用

bin/spark-submit \

--class org.apache.spark.examples.SparkPi \

--master local[1] \

./examples/jars/spark-examples_2.11-2.4.5.jar \

10

五,Spark運(yùn)行架構(gòu)

1,運(yùn)行架構(gòu)

Spark框架的核心是一個(gè)計(jì)算引擎,整體來說,它采用了標(biāo)準(zhǔn)master-slave的結(jié)構(gòu)。如下圖所示,它展示了一個(gè) Spark 執(zhí)行時(shí)的基本結(jié)構(gòu)。圖形中的Driver表示 master,負(fù)責(zé)管理整個(gè)集群中的作業(yè)任務(wù)調(diào)度。圖形中的Executor則是 slave,負(fù)責(zé)實(shí)際執(zhí)行任務(wù)。

2,核心概念

(1)Executor與Core

柚子快報(bào)激活碼778899分享:Spark編程基礎(chǔ)

http://yzkb.51969.com/

相關(guān)閱讀

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19514153.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄