集算器是专注于增强Hadoop能力的纯JAVA的并行计算框架,让程序员提高Hadoop的开发效率是它的基本能力。

举一个简单的例子:HDFS上有2个文件,分别是客户信息和订单信息,customerID是它们之间的关联字段。如何进行关联计算,以便将客户名称添加到订单列表中?

在集算器中对应的代码如下:

Main程序:

集算器如何在Hadoop框架下实现关联计算_hadoop

Sub程序:

集算器如何在Hadoop框架下实现关联计算

集算器如何在Hadoop框架下实现关联计算_多表关联_03

可以看到,集算器的代码非常直观:在Main程序中指定task数量并准备出每个task的参数;将task分配给10个运算节点;合并task的运算结果并写入文件。Sub程序相当于MapReduceMap过程:按参数截取一段数据进行join操作;向Main返回计算结果。

事实上,关联计算通常不可能是数据计算的最终目标,这之后通常还需要通过分组汇总、排序过滤等。在集算器中,这个完整的计算过程可以写在同一段脚本中,而MapReduce需要再另写一个类。在这一点上,MapReduce的开发效率远不如集算器。

集算器提供了专业的大数据脚本语言,它支持真正的集合数据类型,支持有序集合,可以自由地访问集合的成员并进行和序号相关的计算;集合的集合可以表达各种复杂分组形式,比如等值分组、对位分组、枚举分组。用户还可以像操作对象一样操作数据集中的单独记录。

集算器的脚本是写在网格中的,无需定义即可引用中间计算结果,代码编辑、调试功能完善,配合HDFS,集算器可以大提高Hadoop的运算效率。

MapReduce的框架结构决定了它只适合针对单数据集的简单计算,比如搜索,而关联计算、有序计算、等值分组、比上期、同期比等算法则不适合用MapReduce。在Hadoop中的进行这类计算,可以使用集算器提高开发效率。

来自: http://www.raqsoft.cn/?p=3454

更多请访问:http://www.raqsoft.cn