日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
老曹眼中的Lambda世界

“ λ ”像一個(gè)雙手插兜兒,獨(dú)自行走的人,有“失意、無(wú)奈、孤獨(dú)”的感覺(jué)。λ 讀作Lambda,是物理上的波長(zhǎng)符號(hào),放射學(xué)的衰變常數(shù),線(xiàn)性代數(shù)中的特征值……在程序和代碼的世界里,它代表了函數(shù)表達(dá)式,系統(tǒng)架構(gòu),以及云計(jì)算架構(gòu)。

從事資陽(yáng)托管服務(wù)器,服務(wù)器租用,云主機(jī),網(wǎng)站空間,域名申請(qǐng),CDN,網(wǎng)絡(luò)代維等服務(wù)。

代碼中的Lambda

Lambda表達(dá)式基于數(shù)學(xué)中的λ演算得名,可以看作是匿名函數(shù),可以代替表達(dá)式,函數(shù),閉包等,也支持類(lèi)型推論,可以遠(yuǎn)離匿名內(nèi)部類(lèi)。

為什么使用Lambda呢?

1)代碼更緊湊

2)擁有函數(shù)式編程中修改方法的能力

3)有利于多核計(jì)算

Lambda的目的是讓程序員能夠?qū)Τ绦蛐袨檫M(jìn)行抽象,把代碼行為看作數(shù)據(jù)。

Java

Java 8的一個(gè)大亮點(diǎn)是引入Lambda表達(dá)式,在編寫(xiě)Lambda表達(dá)式時(shí),也會(huì)隨之被編譯成一個(gè)函數(shù)式接口。

一個(gè)典型的例子是文件類(lèi)型過(guò)濾 :

 
 
  1. File dir = new File("/an/dir/");   FileFilter directoryFilter = new FileFilter() {      public boolean accept(File file) {         return file.isDirectory();      } }; 

用lambda 重寫(xiě)后:

 
 
  1. File dir = new File("/an/dir/");  File[] dirdirs = dir.listFiles((File f) -> f.isDirectory()); 

Lambda 表達(dá)式本身沒(méi)有類(lèi)型,因?yàn)槌R?guī)類(lèi)型系統(tǒng)沒(méi)有“Lambda 表達(dá)式”這一內(nèi)部概念。

Python

與Java語(yǔ)言不同,Python的Lambda表達(dá)式的函數(shù)體只能有唯一的一條語(yǔ)句,也就是返回值表達(dá)式語(yǔ)句。Python編程語(yǔ)言使用lambda來(lái)創(chuàng)建匿名函數(shù)。

一個(gè)典型的例子是求一個(gè)列表中所有元素的平方。

一般寫(xiě)法

 
 
  1. def sq(x):    return x * x map(sq, [y for y in range(108)]) 

使用Lambda 的寫(xiě)法

 
 
  1. map( lambda x: x*x, [y for y in range(108)] ) 

在spark 中,用python 操作RDD時(shí),Lambda 更是隨處可見(jiàn)。

 
 
  1. out_rdd = in_rdd.filter( # filter the empty record 
  2.           lambda x:x[1] is not None and x[1] != {} 
  3.                ).map(  
  4.           lambda x:utils.parse_data(x[1],es_relations) 
  5.                ).filter( # filter the empty record   
  6.           lambda x:x is not None 
  7.                ).filter( # filter the record   
  8.           lambda x:x[u'timestamp']>time_start) 

大數(shù)據(jù)架構(gòu)中的Lambda

Lambda架構(gòu)的目標(biāo)是設(shè)計(jì)出一個(gè)能滿(mǎn)足實(shí)時(shí)大數(shù)據(jù)系統(tǒng)關(guān)鍵特性的架構(gòu),包括有:高容錯(cuò)、低延時(shí)和可擴(kuò)展等。Lambda架構(gòu)整合離線(xiàn)計(jì)算和實(shí)時(shí)計(jì)算,融合不可變性(Immunability),讀寫(xiě)分離和復(fù)雜性隔離等一系列架構(gòu)原則,可集成Hadoop,Kafka,Storm,Spark,Hbase等各類(lèi)大數(shù)據(jù)組件。

Batch Layer進(jìn)行預(yù)運(yùn)算的作用實(shí)際上就是將大數(shù)據(jù)變小,從而有效地利用資源,改善實(shí)時(shí)查詢(xún)的性能。主要功能是:

  • 存儲(chǔ)Master Dataset,這是一個(gè)不變的持續(xù)增長(zhǎng)的數(shù)據(jù)集
  • 針對(duì)這個(gè)Master Dataset進(jìn)行預(yù)運(yùn)算

Serving Layer就要負(fù)責(zé)對(duì)batch view進(jìn)行操作,從而為最終的實(shí)時(shí)查詢(xún)提供支撐。主要作用是:

  • 對(duì)batch view的隨機(jī)訪(fǎng)問(wèn)
  • 更新batch view

speed layer與batch layer非常相似,它們之間***的區(qū)別是前者只處理最近的數(shù)據(jù),后者則要處理所有的數(shù)據(jù)。另一個(gè)區(qū)別是為了滿(mǎn)足最小的延遲,speed layer并不會(huì)在同一時(shí)間讀取所有的新數(shù)據(jù),在接收到新數(shù)據(jù)時(shí),更新realtime view,而不會(huì)像batch layer那樣重新運(yùn)算整個(gè)view。speed layer是一種增量的計(jì)算,而非重新運(yùn)算(recomputation)。Speed Layer的作用包括:

  • 對(duì)更新到serving layer帶來(lái)的高延遲的一種補(bǔ)充
  • 快速、增量的算法
  • 最終Batch Layer會(huì)覆蓋speed layer

大數(shù)據(jù)系統(tǒng)一般具有如下屬性:

* 健壯性和容錯(cuò)性(Robustness和Fault Tolerance)

* 低延遲的讀與更新(Low Latency reads and updates)

* 可伸縮性(Scalability)

* 通用性(Generalization)

* 可擴(kuò)展性(Extensibility)

* 內(nèi)置查詢(xún)(Ad hoc queries)

* 維護(hù)最小(Minimal maintenance)

* 可調(diào)試性(Debuggability)

個(gè)人覺(jué)得,有了spark streaming 之后,spark 本身就是一種Lambda架構(gòu)。

云計(jì)算中的Lambda

云計(jì)算中的Lambda,是指serverless architecture,無(wú)需配置或管理服務(wù)器即可運(yùn)行代碼。借助 Lambda,幾乎可以為任何類(lèi)型的應(yīng)用程序或后端服務(wù)運(yùn)行代碼,而且全部無(wú)需管理。

以AWS 為例,云計(jì)算中的Lambda 示意流程如下:

只需上傳代碼,Lambda 會(huì)處理運(yùn)行和擴(kuò)展高可用性代碼所需的一切工作。還可以將代碼設(shè)置為自動(dòng)從其他服務(wù)觸發(fā),或者直接從任何 Web 或移動(dòng)應(yīng)用程序調(diào)用。

ETL 是數(shù)據(jù)挖掘與數(shù)據(jù)分析中的必備環(huán)節(jié),可以方便的通過(guò)AWS的Lambda實(shí)現(xiàn),示例如下:

其實(shí),在spark 上實(shí)現(xiàn)Lambda 云服務(wù)也不是太費(fèi)力的事。

總之,了解越多,越會(huì)喜歡上它,神奇而有趣的Lambda。

【本文來(lái)自專(zhuān)欄作者老曹的原創(chuàng)文章,作者微信公眾號(hào):喔家ArchiSelf,id:wrieless-com】


網(wǎng)站名稱(chēng):老曹眼中的Lambda世界
標(biāo)題URL:http://m.5511xx.com/article/djghhid.html