1、程序员必须制定map函数和reduce函数的操作方法,这两个函数的输入输出是键值对,所有具有相同key的value被聚集在一起。
2、程序员可选的操作有partition操作和combine操作:
partition操作是用来指定key依照什么来划分,为并行的reduce操作划分key的空间,往往使用key的一个简单的散列函数。
combine操作是在map后阶段运行,相当于小的reducer,给同一个map输出结果专用的一个reducer,把结果进行局部地聚集,目的是用作减少网络流量的优化器。
3、执行框架处理一切
–调度:为map和reduce分配工人–“数据分布”:将过程移动到数据
–同步:中间数据进行聚集, 排序或洗牌
–错误处理:检测工人失败和重新启动
4、人的工作
–所有算法都必须用m,r(c, p)表达
5、不知道的:
–map和reduce在哪里运行–mapper或reducer何时结束
–一个特定的mapper正在处理哪个输入
–一个特定的reducer正在处理哪个特定中间键值
6、资源加倍,运行时间减半,不容易实现。原因是同步需要通信,通信影响性能。因此要避免通信,通过本地聚合来减少中间数据,有效利用combiner.
7、θ连接、自然连接和等值连接:
θ连接:从两个关系的笛卡尔积中选出给定属性间满足一定条件的元组,即普通笛卡尔积连接(全连接)加上一定条件约束,满足约束的被挑选出来。
自然连接:从两个关系的笛卡尔积中选出在相同属性列上取值相等的元组,即两个关系有部分属性是一样的,只选出在这些属性上取值相等的元组。
等值连接:重复的属性在结果中会重复出现,相比较自然连接,自然连接中重复的属性只保留一次。等值连接选取时也和自然连接相似,将相同属性列上相同属性值的元组选取出来?(并不确定)。