溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Spark RDD的內(nèi)容有哪些

發(fā)布時間:2021-12-17 14:04:41 來源:億速云 閱讀:114 作者:柒染 欄目:大數(shù)據(jù)

這篇文章將為大家詳細(xì)講解有關(guān)Spark RDD的內(nèi)容有哪些,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

一.添加jar包運行

1.官網(wǎng)位置

點擊步驟:
Spark Programming Guide
Linking with Spark
版本要對應(yīng)和集群上

Spark RDD的內(nèi)容有哪些

2.idea 引入cdh可能報紅線

Spark RDD的內(nèi)容有哪些

3.原因

idea 引入cdh版的hadoop等包可能報紅線,
因為默認(rèn)idea引的倉庫是apache的所以有紅線

4.解決:

Spark RDD的內(nèi)容有哪些

5.上傳本地文件

公司中是用rz
ftp工具不用因為中間有跳板機(jī),ftp不好用

二.提交程序到集群

1.官網(wǎng)案例

Spark RDD的內(nèi)容有哪些

2.測試代碼

 spark-submit \
  --class test.Demo2 \
  --master local[2] \
  /demo/original-sparkrdd-1.0-SNAPSHOT.jar \
  hdfs://s202:9000/input/*   \
  hdfs://s202:9000/result

3../spark-submit —help  查看幫助

4.MR也可以基于內(nèi)存但是是有限的,有局限性

Spark RDD的內(nèi)容有哪些

三.SparkRDD

1.RDD

彈性分布式數(shù)據(jù)集
彈性體現(xiàn)在計算上,分布式的時候計算可以容錯,通過機(jī)制進(jìn)行修復(fù),準(zhǔn)確是體現(xiàn)在計算層面上

2.RDD五大特點

*  - A list of partitions
*  - A function for computing each split
每個函數(shù)作用每個分區(qū)上
對RDD計算就是對分區(qū)進(jìn)行計算
split 如分區(qū)partitions
*  - A list of dependencies on other RDDs
RDDA 是加載其余是轉(zhuǎn)化的
RDDA-RDDB-RDDC
*  - Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned)
優(yōu)化時候用的多
*  - Optionally, a list of preferred locations to compute each split on (e.g. block locations for
*    an HDFS file)
preferred locations(類似多個副本)  數(shù)組在哪在那計算性能好,不用移動數(shù)據(jù)
對每個分片計算會有一組
計算每個分片會有多個副本
窄依賴容錯不是對所有分區(qū)進(jìn)行重新計算,對父類,寬依賴不通
Resilient Distributed Dataset (RDD)在上面五個特點完美體現(xiàn)
切分,副本,計算,分布式

3.RDD五大特點和源碼中的對應(yīng)關(guān)系

關(guān)鍵計算傳什么參數(shù),對應(yīng)第二個特點,必須傳個分片的
def compute(split: Partition, context: TaskContext): Iterator[T]
對應(yīng)RDD第一點
protected def getPartitions: Array[Partition]
對應(yīng)第三點
protected def getDependencies: Seq[Dependency[_]] = deps
計算必須拿到PreferredLocations 在什么位置
第五點
protected def getPreferredLocations(split: Partition): Seq[String] = Nil
對應(yīng)第四點
@transient val partitioner: Option[Partitioner] = None
類似于JdbcRDD什么都要繼承RDD

4.RDD宏觀概念

Spark RDD的內(nèi)容有哪些

三.RDD的操作

1.官網(wǎng)

Spark RDD的內(nèi)容有哪些

2.重點解釋不要硬編碼

Spark RDD的內(nèi)容有哪些

3.官網(wǎng)解釋

appName 是一個作業(yè)的名字
也可以不寫,不要硬編碼,提交時寫,用時間拼接,可以知道提交的是哪個
The appName parameter is a name for your application to show on the cluster UI.
master 是你連接集群的方式
master is a Spark, Mesos or YARN cluster URL, or a special “l(fā)ocal” string to run in local mode.
但是,運行一個集群你不要硬編碼,不要代碼中設(shè)置master,提交的時候設(shè)置
In practice, when running on a cluster, you will not want to hardcode master in the program, 
而是要用spark-submit 提交,
but rather launch the application with spark-submit and receive it there.
測試就用local 就可以了
However, for local testing and unit tests, you can pass “l(fā)ocal” to run Spark in-process.

4.stop注意

Only one SparkContext may be active per JVM. You must stop() the active SparkContext before creating a new one.
一個jvm只能有一個SparkContext,想要在啟動別個,必須關(guān)閉stop()

5.yarn在spark需要配置的參數(shù)

在spark-env  中配置HADOOP_CONF_DIR or YARN_CONF_DIR ,指向hadoop的etc/hadoop的

Spark RDD的內(nèi)容有哪些

6.spark-shell 的使用,主要用jars

spark-shell 底層也是調(diào)用spark-submit 腳本運行

Spark RDD的內(nèi)容有哪些

四.RDD的創(chuàng)建方式

1.RDD創(chuàng)建一

 Typically you want 2-4 partitions for each CPU in your cluster. 不浪費
因為這樣設(shè)置省著cpu空閑,一個分區(qū)一個CPU可能空閑,浪費
task多不處理小文件多,要合并,調(diào)優(yōu)

Spark RDD的內(nèi)容有哪些

2.RDD創(chuàng)建方式一 解釋

加載外部集合用parallelize方法,用的少,最好有個CPU對應(yīng)幾個分區(qū),
防止空閑浪費資源,一個task一個分區(qū)

3.RDD創(chuàng)建二

Spark RDD的內(nèi)容有哪些

4.解釋

加載外部數(shù)據(jù)源,本地文件,HDFS,hbase等

5.RDD注意事項筆記:官網(wǎng)

Spark RDD的內(nèi)容有哪些

5.解釋

1.如果你要使用本地文件,那你又多少個節(jié)點,每個節(jié)點都要有這個文件,否則
找不到,standalone   也一樣,一般用不到
2.全部的輸入方式包括文件,支持目錄,壓縮,通配符
3.textFile() 有第二個參數(shù),分區(qū),默認(rèn)有個block一個分區(qū),你可以調(diào)的
更高,不可以比block更少
這個可以調(diào)優(yōu)
1.wholeTextFiles() 返回key,value  key是路徑,value值
2序列化測試
3.saveAsTextFile() 保存

關(guān)于Spark RDD的內(nèi)容有哪些就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI