One-Way
爱一人,攀一山,追一梦

Lambda表达式

lambda expression是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。
表达式使用 Lambda 运算符 =>,该运算符读为“goes to”。语法如下:
形参列表=>函数体
函数体多于一条语句的可用大括号括起。

 

(x,y) => Console.Write("包含2个参数,值为:{0}和{1}",x,y)

(x,y)=>{int v=x*10;return y+v;}

 

python lamada表达式

square = lambda x: x*x #定义函数
square(3) #调用函数

 

 

lambda架构

Lambda架构划分为三层,分别是批处理层,服务层,和加速层。

query = function(all data)

Lambda系统架构定义了一套明确的架构原则,如果要建立一套强大的和可扩展的数据系统,必须服从上面的公式。

 

Lambda基于下列原则:

1.人为容错性human fault-tolerance – 系统易数据丢失或数据损坏,大规模时可能是不可挽回的。

2.数据不可变性data immutability – 数据存储在它的最原始的形式不变的,永久的。

3.重新计算recomputation – 因为上面两个原则,运行函数重新计算结果是可能的。

 

 

 


批处理层(Batch Layer)
批处理层主用由Hadoop来实现,负责数据的存储和产生数据视图。

服务层(Serving layer)
由于批处理视图是静态的,服务层仅仅需要提供批量地更新和随机读,通过创建Hive表,读取HDFS中的数据。

加速层 (Speed layer)
在本质上,加速层与批处理层是一样的,都是从它接受到的数据上计算而得到视图。
加速层就是为了弥补批处理层的高延迟性问题,它通过Strom,Spark框架计算实时视图来解决这个问题。

 

posted on 2016-09-22 11:06  单行道|  阅读(425)  评论(0编辑  收藏  举报