20309 发表于 2018-10-31 11:19:35

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

  集算器是专注于增强Hadoop能力的纯JAVA的并行计算框架,让程序员提高Hadoop的开发效率是它的基本能力。
  举一个简单的例子:HDFS上有2个文件,分别是客户信息和订单信息,customerID是它们之间的关联字段。如何进行关联计算,以便将客户名称添加到订单列表中?
  在集算器中对应的代码如下:
  Main程序:
http://www.raqsoft.cn/wp-content/uploads/2013/10/image1001.png
  Sub程序:
http://blog.51cto.com/report5/undefined
http://www.raqsoft.cn/wp-content/uploads/2013/10/image1002.png
  可以看到,集算器的代码非常直观:在Main程序中指定task数量并准备出每个task的参数;将task分配给10个运算节点;合并task的运算结果并写入文件。Sub程序相当于MapReduce的Map过程:按参数截取一段数据进行join操作;向Main返回计算结果。
  事实上,关联计算通常不可能是数据计算的最终目标,这之后通常还需要通过分组汇总、排序过滤等。在集算器中,这个完整的计算过程可以写在同一段脚本中,而MapReduce需要再另写一个类。在这一点上,MapReduce的开发效率远不如集算器。
  集算器提供了专业的大数据脚本语言,它支持真正的集合数据类型,支持有序集合,可以自由地访问集合的成员并进行和序号相关的计算;集合的集合可以表达各种复杂分组形式,比如等值分组、对位分组、枚举分组。用户还可以像操作对象一样操作数据集中的单独记录。
  集算器的脚本是写在网格中的,无需定义即可引用中间计算结果,代码编辑、调试功能完善,配合HDFS,集算器可以大提高Hadoop的运算效率。
  MapReduce的框架结构决定了它只适合针对单数据集的简单计算,比如搜索,而关联计算、有序计算、等值分组、比上期、同期比等算法则不适合用MapReduce。在Hadoop中的进行这类计算,可以使用集算器提高开发效率。
  来自: http://www.raqsoft.cn/?p=3454 。
  更多请访问:http://www.raqsoft.cn

页: [1]
查看完整版本: 集算器如何在Hadoop框架下实现关联计算