Spark開發(fā)指南

1氓癌、名詞及術(shù)語

術(shù)語說明

術(shù)語

說明

HDFS

Hadoop分布式文件系統(tǒng)

Hive

基于Hadoop的數(shù)據(jù)倉庫工具

Yarn

資源管理器

RDD

彈性分布式數(shù)據(jù)集

Partition

RDD的數(shù)據(jù)分區(qū)霎烙,可并行計(jì)算

NarrowDependency

窄依賴磷箕,子RDD依賴于父RDD中固定的Partition亲桦,如map轉(zhuǎn)換

WideDependency

寬依賴级及,子RDD依賴于父RDD中所有的Partition刷晋,如groupByKey

DAG

有向無環(huán)圖生均,用于反映各RDD之間的依賴關(guān)系

yarn

Spark程序基于yarn的運(yùn)行模式

2.1、開發(fā)流程

編寫Spark程序à打包成Jar包à提交到Spark集群執(zhí)行

2.1邦马、開發(fā)前準(zhǔn)備

(1)安裝jdk1.7+

(2)安裝apache-maven-3.3.9

(3)可視化開發(fā)軟件ideaIU

(4)scala 2.11.x

2.2贱鼻、源碼示例

Spark源碼是基于Scala進(jìn)行開發(fā)的,因此本文檔中的代碼示例均采用Scala演示

1.配置ideaIU,安裝scala Plugins為下載的scala 2.11.x

2.創(chuàng)建maven工程并配置文件pom.xml

3.Spark程序開發(fā)

(1)初始化Spark

創(chuàng)建SparkSession對象,包含了應(yīng)用程序的信息滋将,可以設(shè)置應(yīng)用程序名稱以及運(yùn)行模式(也可以在運(yùn)行程序時設(shè)置該參數(shù))邻悬,SparkSession作為spark 2.0引入的新的切入點(diǎn),包含了SQLContext和HiveContext的功能,在build上創(chuàng)建的參數(shù)會自動傳入到spark和hadoop

(1)彈性分布式數(shù)據(jù)集(RDD)和DataSet

Spark 1.x程序的核心是圍繞RDD進(jìn)行的變換随闽,2.0版本統(tǒng)一了DataFrames和DataSet,

DataFrames只是行(Row)數(shù)據(jù)集的typealias了,并且以DataFrame為重點(diǎn)的機(jī)器學(xué)習(xí)包spark.ml逐漸作為主api出現(xiàn)

①創(chuàng)建RDD

RDD有兩種創(chuàng)建方式:

一是從普通數(shù)組或List列表創(chuàng)建父丰,例:

valinit_rdd=sparkSession.SparkContext.parallelize(1to9,3)

二是從外部數(shù)據(jù)源如HDFS:

valinit_rdd=sparkSession.SparkContext.textFile("/recordSystem/sourceFile.txt")

②創(chuàng)建DataSet和DataFrame

使用sparkSession.range創(chuàng)建一個DataSet

valinit_ds=sparkSession.range(5,100,5)

從hive中創(chuàng)建DataFrame

valinit_df=sparkSession.sql("select * from fact_vod")

(2)RDD操作

目前程序的編寫還是以RDD為主, DataFrame的轉(zhuǎn)換與RDD的類似.

RDD通過一系列的變換,得到數(shù)據(jù)分析的結(jié)果掘宪,如統(tǒng)計(jì)一個文本中單詞的個數(shù)蛾扇,單詞間以空格切分

valinit_rdd=sc.textFile("/recommendSystem/file.txt")

init_rdd.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect().foreach(println)

(4)RDD結(jié)果存儲

經(jīng)過RDD轉(zhuǎn)換后得到的數(shù)據(jù)結(jié)果可以存儲到HDFS文件系統(tǒng)或者h(yuǎn)ive表中

①存儲到文件系統(tǒng)攘烛,路徑為/recommendSystem:

result_rdd.saveAsTextFile("/recommendSystem")

②存儲到hive表,表名為result_table

importorg.apache.spark.sql.SaveMode

result_rdd.toDF().write.mode(SaveMode.Append).saveAsTable("result_table")

2.3屁桑、實(shí)際案例

程序?qū)崿F(xiàn)功能:推薦引擎離線計(jì)算服務(wù)數(shù)據(jù)預(yù)處理

2.4医寿、提交運(yùn)行

將打包好的Spark程序Jar包發(fā)送到Spark集群的master節(jié)點(diǎn)或者slave節(jié)點(diǎn)上,并執(zhí)行以下命令運(yùn)行程序:

SPARK_HOME/bin/spark-submit--master yarn –-deploy-mode client--class CLASS_PATHJAR_PATH ARGS

其中蘑斧,

SPARK_HOM為集群中Spark的安裝目錄

CLASS_PATH為主程序入口:包名.Object

JAR_PATH打包的jar包存放的位置

ARGS程序執(zhí)行所需傳入的參數(shù)

如果在程序中設(shè)置了master,則在submit的時候可以省略master參數(shù)须眷,否則必須添加

上面實(shí)際案例的提交命令為:

/opt/spark/curr_spark/bin/spark-submit --deploy-mode client--class com.zhangjian.recommendation.collaborativeFilter.CFDataPretreatment/root/spark_program/recommend-system_1.0-1.0-SNAPSHOT.jar

?w?,vB6

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末竖瘾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子花颗,更是在濱河造成了極大的恐慌捕传,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扩劝,死亡現(xiàn)場離奇詭異庸论,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)棒呛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進(jìn)店門聂示,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人簇秒,你說我怎么就攤上這事鱼喉。” “怎么了趋观?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵扛禽,是天一觀的道長。 經(jīng)常有香客問我皱坛,道長编曼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任剩辟,我火速辦了婚禮掐场,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抹沪。我一直安慰自己刻肄,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布融欧。 她就那樣靜靜地躺著敏弃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪噪馏。 梳的紋絲不亂的頭發(fā)上麦到,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天绿饵,我揣著相機(jī)與錄音,去河邊找鬼瓶颠。 笑死拟赊,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的粹淋。 我是一名探鬼主播吸祟,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼桃移!你這毒婦竟也來了屋匕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤借杰,失蹤者是張志新(化名)和其女友劉穎过吻,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蔗衡,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡纤虽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了绞惦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逼纸。...
    茶點(diǎn)故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖翩隧,靈堂內(nèi)的尸體忽然破棺而出樊展,到底是詐尸還是另有隱情,我是刑警寧澤堆生,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布专缠,位于F島的核電站,受9級特大地震影響淑仆,放射性物質(zhì)發(fā)生泄漏涝婉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一蔗怠、第九天 我趴在偏房一處隱蔽的房頂上張望墩弯。 院中可真熱鬧,春花似錦寞射、人聲如沸渔工。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽引矩。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間旺韭,已是汗流浹背氛谜。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留区端,地道東北人值漫。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像织盼,于是被迫代替她去往敵國和親杨何。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容