日韩无码在线,四虎影视免费永久在线观看 ,国产香港明星裸体xxxx视频,国模无码一区二区三区

    歡迎來(lái)到深圳市云網(wǎng)時(shí)代信息技術(shù)有限公司|云網(wǎng)時(shí)代數(shù)據(jù)中心! 業(yè)務(wù)咨詢熱線:0755-88868179增值電信業(yè)務(wù)經(jīng)營(yíng)許可證:B1-20170628
IDC技術(shù)前沿
當(dāng)前位置:首頁(yè)>文章中心>IDC技術(shù)前沿

基于Apache Spark的REST服務(wù)詳解(一),云網(wǎng)數(shù)據(jù)中心,深圳服務(wù)器托管,深圳服務(wù)器租用, 深圳BGP機(jī)房托管,深圳BGP機(jī)房租用,深圳電信機(jī)房租用,深圳移動(dòng)機(jī)房

發(fā)布時(shí)間:2017-07-05 點(diǎn)擊數(shù):7395

Apache Spark提供的兩種基于命令行的處理交互方式雖然足夠靈活,但在企業(yè)應(yīng)用中面臨諸如部署、安全等問(wèn)題。為此本文引入Livy這樣一個(gè)基于Apache Spark的REST服務(wù),它不僅以REST的方式代替了Spark傳統(tǒng)的處理交互方式,同時(shí)也提供企業(yè)應(yīng)用中不可忽視的多用戶,安全,以及容錯(cuò)的支持。

背景

Apache Spark作為當(dāng)前最為流行的開(kāi)源大數(shù)據(jù)計(jì)算框架,廣泛應(yīng)用于數(shù)據(jù)處理和分析應(yīng)用,它提供了兩種方式來(lái)處理數(shù)據(jù):一是交互式處理,比如用戶使用spark-shell或是pyspark腳本啟動(dòng)Spark應(yīng)用程序,伴隨應(yīng)用程序啟動(dòng)的同時(shí)Spark會(huì)在當(dāng)前終端啟動(dòng)REPL(Read–Eval–Print Loop)來(lái)接收用戶的代碼輸入,并將其編譯成Spark作業(yè)提交到集群上去執(zhí)行;二是批處理,批處理的程序邏輯由用戶實(shí)現(xiàn)并編譯打包成jar包,spark-submit腳本啟動(dòng)Spark應(yīng)用程序來(lái)執(zhí)行用戶所編寫的邏輯,與交互式處理不同的是批處理程序在執(zhí)行過(guò)程中用戶沒(méi)有與Spark進(jìn)行任何的交互。

兩種處理交互方式雖然看起來(lái)完全不一樣,但是都需要用戶登錄到Gateway節(jié)點(diǎn)上通過(guò)腳本啟動(dòng)Spark進(jìn)程。這樣的方式會(huì)有什么問(wèn)題嗎?

1.首先將資源的使用和故障發(fā)生的可能性集中到了這些Gateway節(jié)點(diǎn)。由于所有的Spark進(jìn)程都是在Gateway節(jié)點(diǎn)上啟動(dòng)的,這勢(shì)必會(huì)增加Gateway節(jié)點(diǎn)的資源使用負(fù)擔(dān)和故障發(fā)生的可能性,同時(shí)Gateway節(jié)點(diǎn)的故障會(huì)帶來(lái)單點(diǎn)問(wèn)題,造成Spark程序的失敗。

2.其次難以管理、審計(jì)以及與已有的權(quán)限管理工具的集成。由于Spark采用腳本的方式啟動(dòng)應(yīng)用程序,因此相比于Web方式少了許多管理、審計(jì)的便利性,同時(shí)也難以與已有的工具結(jié)合,如Apache Knox。

3.同時(shí)也將Gateway節(jié)點(diǎn)上的部署細(xì)節(jié)以及配置不可避免地暴露給了登陸用戶。

為了避免上述這些問(wèn)題,同時(shí)提供原生Spark已有的處理交互方式,并且為Spark帶來(lái)其所缺乏的企業(yè)級(jí)管理、部署和審計(jì)功能,本文將介紹一個(gè)新的基于Spark的REST服務(wù):Livy。

Livy

Livy是一個(gè)基于Spark的開(kāi)源REST服務(wù),它能夠通過(guò)REST的方式將代碼片段或是序列化的二進(jìn)制代碼提交到Spark集群中去執(zhí)行。它提供了以下這些基本功能:

1.提交Scala、Python或是R代碼片段到遠(yuǎn)端的Spark集群上執(zhí)行;

2.提交Java、Scala、Python所編寫的Spark作業(yè)到遠(yuǎn)端的Spark集群上執(zhí)行;

3.提交批處理應(yīng)用在集群中運(yùn)行。

從Livy所提供的基本功能可以看到Livy涵蓋了原生Spark所提供的兩種處理交互方式。與原生Spark不同的是,所有操作都是通過(guò)REST的方式提交到Livy服務(wù)端上,再由Livy服務(wù)端發(fā)送到不同的Spark集群上去執(zhí)行。說(shuō)到這里我們首先來(lái)了解一下Livy的架構(gòu)。

Livy的基本架構(gòu)

Livy是一個(gè)典型的REST服務(wù)架構(gòu),它一方面接受并解析用戶的REST請(qǐng)求,轉(zhuǎn)換成相應(yīng)的操作;另一方面它管理著用戶所啟動(dòng)的所有Spark集群。具體架構(gòu)可見(jiàn)圖1。

圖1 Livy的基本架構(gòu)

用戶可以以REST請(qǐng)求的方式通過(guò)Livy啟動(dòng)一個(gè)新的Spark集群,Livy將每一個(gè)啟動(dòng)的Spark集群稱之為一個(gè)會(huì)話(session),一個(gè)會(huì)話是由一個(gè)完整的Spark集群所構(gòu)成的,并且通過(guò)RPC協(xié)議在Spark集群和Livy服務(wù)端之間進(jìn)行通信。根據(jù)處理交互方式的不同,Livy將會(huì)話分成了兩種類型:

1.交互式會(huì)話(interactive session),這與Spark中的交互式處理相同,交互式會(huì)話在其啟動(dòng)后可以接收用戶所提交的代碼片段,在遠(yuǎn)端的Spark集群上編譯并執(zhí)行;

2.批處理會(huì)話(batch session),用戶可以通過(guò)Livy以批處理的方式啟動(dòng)Spark應(yīng)用,這樣的一個(gè)方式在Livy中稱之為批處理會(huì)話,這與Spark中的批處理是相同的。

可以看到,Livy所提供的核心功能與原生Spark是相同的,它提供了兩種不同的會(huì)話類型來(lái)代替Spark中兩類不同的處理交互方式。接下來(lái)我們具體了解一下這兩種類型的會(huì)話。

交互式會(huì)話(Interactive Session)

使用交互式會(huì)話與使用Spark所自帶的spark-shell、pyspark或sparkR相類似,它們都是由用戶提交代碼片段給REPL,由REPL來(lái)編譯成Spark作業(yè)并執(zhí)行。它們的主要不同點(diǎn)是spark-shell會(huì)在當(dāng)前節(jié)點(diǎn)上啟動(dòng)REPL來(lái)接收用戶的輸入,而Livy交互式會(huì)話則是在遠(yuǎn)端的Spark集群中啟動(dòng)REPL,所有的代碼、數(shù)據(jù)都需要通過(guò)網(wǎng)絡(luò)來(lái)傳輸。


深圳市云網(wǎng)數(shù)據(jù)中心(sjsyph.cn)
專業(yè)提供【服務(wù)器租用】【服務(wù)器托管】【機(jī)柜大帶寬】【云主機(jī)租用】【CDN加速】【專線接入】
在線客服