公交车掀开奶罩边躁狠狠躁动态图,国产精品偷窥熟女精品视频,精品久久久久久亚洲中文字幕 ,一本色道久久99一综合

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

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

發(fā)布時間:2017-07-05 點擊數(shù):7248
使用編程API

在交互式會話模式中,Livy不僅可以接收用戶提交的代碼,而且還可以接收序列化的Spark作業(yè)。為此Livy提供了一套編程式的API供用戶使用,用戶可以像使用原生Spark API那樣使用Livy提供的API編寫Spark作業(yè),Livy會將用戶編寫的Spark作業(yè)序列化并發(fā)送到遠端Spark集群中執(zhí)行。表1就是使用Spark API所編寫PI程序與使用Livy API所編寫的程序的比較。


表1  使用Spark API所編寫PI程序與使用Livy API所編寫程序的比較

可以看到除了入口函數(shù)不同,其核心邏輯完全一致,因此用戶可以很方便地將已有的Spark作業(yè)遷移到Livy上。

Livy交互式會話是Spark交互式處理基于HTTP的實現(xiàn)。有了Livy的交互式會話,用戶無需登錄到Gateway節(jié)點上去啟動Spark進程并執(zhí)行代碼。以REST的方式進行交互式處理提供給用戶豐富的選擇,也方便了用戶的使用,更為重要的是它方便了運維的管理。

批處理會話(Batch Session)

在Spark應(yīng)用中有一大類應(yīng)用是批處理應(yīng)用,這些應(yīng)用在運行期間無須與用戶進行交互,最典型的就是Spark Streaming流式應(yīng)用。用戶會將業(yè)務(wù)邏輯編譯打包成jar包,并通過spark-submit啟動Spark集群來執(zhí)行業(yè)務(wù)邏輯:

Livy也為用戶帶來相同的功能,用戶可以通過REST的方式來創(chuàng)建批處理應(yīng)用:


通過用戶所指定的“className”和“file”,Livy會啟動Spark集群來運行該應(yīng)用,這樣的一種方式就稱為批處理會話。

至此我們簡單介紹了Livy的兩種會話類型,與它相對應(yīng)的就是Spark的兩種處理交互方式,因此可以說Livy以REST的方式提供了Spark所擁有的兩種交互處理方式。

企業(yè)級特性

前面我們介紹了Livy的核心功能,相比于核心功能的完整性,Livy的企業(yè)級特性則更體現(xiàn)了其相比于原生Spark處理交互方式的優(yōu)勢。本章節(jié)將介紹Livy幾個關(guān)鍵的企業(yè)特性。

多用戶支持

假定用戶tom向Livy服務(wù)端發(fā)起REST請求啟動一個新的會話,而Livy服務(wù)端則是由用戶livy啟動的,這個時候所創(chuàng)建出來Spark集群用戶是誰呢,會是用戶tom還是livy?在默認情況下這個Spark集群的用戶是livy。這會帶來訪問權(quán)限的問題:用戶tom無法訪問其擁有權(quán)限的資源,而相對的是他卻可以訪問用戶livy所擁有的資源。

為了解決這個問題Livy引入了Hadoop中的代理用戶(proxy user)模式,代理用戶模式廣泛使用于多用戶的環(huán)境,如HiveServer2。在此模式中超級用戶可以代理成普通用戶去訪問資源,并擁有普通用戶相應(yīng)的權(quán)限。開啟了代理用戶模式后,以用戶tom所創(chuàng)建的會話所啟動的Spark集群用戶就會是tom。


圖2  Livy多用戶支持

為了使用此功能用戶需要配置“l(fā)ivy.impersonation.enabled”,同時需要在Hadoop中將Livy服務(wù)端進程的用戶配置為Hadoop proxyuser 。當(dāng)然還會有一些Livy的額外配置就不在這展開了。

有了代理用戶模式的支持,Livy就能真正做到對多用戶的支持,不同用戶啟動的會話會以相應(yīng)的用戶去訪問資源。

端到端安全

在企業(yè)應(yīng)用中另一個非常關(guān)鍵的特性是安全性。一個完整的Livy服務(wù)中有哪些點是要有安全考慮的呢?

客戶端認證

當(dāng)用戶tom發(fā)起REST請求訪問Livy服務(wù)端的時候,我們?nèi)绾沃涝撚脩羰呛戏ㄓ脩裟兀縇ivy采用了基于Kerberos的Spnego認證。在Livy服務(wù)端配置Spnego認證后,用戶發(fā)起Http請求之前必須先獲得Kerberos認證,只有通過認證后才能正確訪問Livy服務(wù)端,不然的話Livy服務(wù)端會返回401錯誤。

HTTPS/SSL

那么如何保證客戶端與Livy服務(wù)端之間HTTP傳輸?shù)陌踩阅??Livy使用了標(biāo)準(zhǔn)的SSL來加密HTTP協(xié)議,以確保傳輸?shù)腍ttp報文的安全。為此用戶需要配置Livy服務(wù)端SSL相關(guān)的配置已開啟此功能。

SASL RPC

除了客戶端和Livy服務(wù)端之間的通信,Livy服務(wù)端和Spark集群之間也存在著網(wǎng)絡(luò)通信,如何確保這兩者之間的通信安全性也是需要考慮的。Livy采用了基于SASL認證的RPC通信機制:當(dāng)Livy服務(wù)端啟動Spark集群時會產(chǎn)生一個隨機字符串用作兩者之間認證的秘鑰,只有Livy服務(wù)端和該Spark集群之間才有相同的秘鑰,這樣就保證了只有Livy服務(wù)端才能和該Spark集群進行通信,防止匿名的連接試圖與Spark集群通信。

將上述三種安全機制歸結(jié)起來就如圖3所示。

圖3  Livy端到端安全機制

這樣構(gòu)成了Livy完整的端到端的安全機制,確保沒有經(jīng)過認證的用戶,匿名的連接無法與Livy服務(wù)中的任何一個環(huán)節(jié)進行通信。

失敗恢復(fù)

由于Livy服務(wù)端是單點,所有的操作都需要通過Livy轉(zhuǎn)發(fā)到Spark集群中,如何確保Livy服務(wù)端失效的時候已創(chuàng)建的所有會話不受影響,同時Livy服務(wù)端恢復(fù)過來后能夠與已有的會話重新連接以繼續(xù)使用?

Livy提供了失敗恢復(fù)的機制,當(dāng)用戶啟動會話的同時Livy會在可靠的存儲上記錄會話相關(guān)的元信息,一旦Livy從失敗中恢復(fù)過來它會試圖讀取相關(guān)的元信息并與Spark集群重新連接。為了使用該特性我們需要配置Livy使其開啟此功能:

大數(shù)據(jù)技術(shù)11

失敗恢復(fù)能夠有效地避免因Livy服務(wù)端單點故障造成的所有會話的不可用,同時也避免了因Livy服務(wù)端重啟而造成的會話不必要失效。

總結(jié)

本文從Spark處理交互方式的局限引出了Livy這樣一個基于Spark的REST服務(wù)。同時全面介紹了其基本架構(gòu)、核心功能以及企業(yè)級特性,Livy不僅涵蓋了Spark所提供了所有處理交互方式,同時又結(jié)合了多種的企業(yè)級特性,雖然Livy項目現(xiàn)在還處于早期,許多的功能有待增加和改進,我相信假以時日Livy必定能成為一個優(yōu)秀的基于Spark的REST服務(wù)。

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