hadoop的规则引擎

Pan*_*wal 1 groovy hadoop rule-engine drools

我正在为我的项目评估规则引擎.该项目将基于hadoop.我使用DROOLS完成了一些POC.基本上我在Mapper端使用DROOL.基于以下是我的观察和查询.

1)a)我使用DROOLS(需要大约17秒)对3百万个对象发出规则b)我使用if/else循环应用相同的逻辑,如同DRL文件中的3百万个对象,没有drools,使用简单的Java对象(带走.17秒).b约为 比a快100倍.这是正常的行为吗?有没有办法将规则编译为java字节码/类.

2)除了DROOLS之外,什么是最快的基于Java的规则引擎框架.是否有人使用普通GROOVY开发了规则引擎.任何其他框架建议,将业务规则编译为java字节代码,这将导致更快的规则评估?

3)有人对hadoop最适合的DSL/Rule框架有一些经验.

lau*_*une 5

关于Drools/Java(Q1):

您可能没有建立公平的比较.有几种方法可以"对300万个物体发射规则",你可能没有选择最快的.

众所周知,当您在前向链接引擎中运行许多模式/多对象匹配算法时,会产生相当大的开销.您可能根本不需要规则,或者更简单(更有效)的规则评估技术可能就足够了.

至于比较规则引擎:这是一个非常不确定的主题.每个基准测试都有其特殊的使用场景,一些供应商已经通过一些着名的(学术)测试或其他测试来优化他们的引擎以获得更好的性能.

至于Q2,我不知道.考虑到开发一个好的规则引擎需要很多精明,时间和精力,我非常怀疑.

我认为你不能得到Q3的答案."最佳"永远不会与某些应用程序框架相关 - 标准是规则的数量和复杂性,与数据的数量和复杂性相结合.