在创建新地图时,Hazelcast在运行时设置内存格式

时间:2014-12-15 15:36:00

标签: hazelcast

我在我的项目中与Hadoop一起使用Hazelcast。 Hadoop正在对数据进行批处理,而Hazelcast则存储从作业(查找)访问的其他数据。问题是我们的谓词工作查询在我们的集群上确实很慢。

我想将内存格式更改为CACHED或setOptimizedQuery标志,以加快它们的速度,但是我可以在工作集群上执行此操作吗?我知道这可以在配置中完成,但它并不适用于该项目。这需要重新启动群集,仅适用于具有给定名称的地图。我们运行了很多hadoop作业,每个作业都处理特定日期和位置的数据。在我们运行作业之前,为每个hadoop作业加载相同日期和位置的数据。所以我们可以有许多具有相同类型数据的地图,我们通过地图名称区分它们(即CLIENTS_DATA_20141215_US)

我们从数据仓库加载一些包含不同对象的地图。仅对于一个映射,我们使用复杂谓词来获取数据,因此当我创建它并尝试加载数据时,我想仅为此特定映射更改内存格式。

可以这样做吗?或者也许有人有类似的问题,可以提出任何解决方案吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

您无法更改地图的行为。

您可以使用通配符

e.g。你可以在hazelcast.xml中创建2个地图

<map name="objectmap-*">
    ...
</map>

<map name="binarymap-*">
   ...
</map>

PS:你使用什么样的谓词?你是否使用SQL谓词?如果是,请考虑使用手动编写的。 SQL谓词很慢;我们将在3.5下解决这个问题;但目前手动编写的谓词要快得多。