当前位置: 首页 > 知识库问答 >
问题:

在与谓词键相同的节点上获取IMap条目[Hazelcast]

池恩
2023-03-14

我正在使用Hazelcast3.6IMap分布式存储大量数据(我已经在1B个项目上进行了测试)。我想通过键加入2个IMap实例,但似乎没有任何内置的功能来做到这一点。因此,如果键相等,我使用@patritionaware将这些映射的条目存储在同一个节点中,然后在claster的每个成员上使用第一个映射的set localKeySet(); 。在此之后,我尝试从同一节点上的第二个映射中获取值,以避免网络传输谓词键。但getAll(Set keys) 似乎不在同一节点上执行此操作。有人已经有同样的问题了吗?是否可以基于Hazelcast功能来解决它?

请参阅下面的代码示例


public class PartitionAwareKey implements PartitionAware, Serializable {

    private Integer key;

    public PartitionAwareKey(Integer key) {
        this.key = key;
    }

    @Override
    public Integer getPartitionKey() {
        return this.key;
    }
}




public class FindDataWithPredicateTask implements HazelcastInstanceAware, Serializable, Callable>> {
 ...
    @Override
    public IMap call() throws Exception {
        IMap map1 = hazelcastInstance.getMap("map1");
        Set localKeySet = map1.localKeySet();

        IMap, String> map2 = hazelcastInstance.getMap("map2");

        return map2.getAll(localKeySet);
    }
...

共有1个答案

许振海
2023-03-14

我猜您要找的是EntryProcessor。此EP还必须实现HazelCastInstanceAware以访问其他数据结构。仍然重要的是应用数据亲和力,就像您已经做的那样,以确保属于一起的数据存储在同一个分区中,以便可以访问。

有关EntryProcessor的更多信息可以在文档(http://docs.hazelcast.org/docs/3.6/manual/html-single/#entry-processing-with-imap-methods)中获得,示例可以在我们的示例库(https://github.com/hazelcast/hazelcast-code-samples/tree/master/distributed-map/entry-processor)中找到。

请随时询问进一步的信息。

 类似资料:
  • 我试图从表TABLE_A中检索数据,表TABLE_A包含列bb_num。 > 我需要用JPA BooleanExpression编写表达式, 需要从JPA谓词逻辑生成以下SQL查询: 而这个GA22和GA33是动态来的,所以这个where条件是动态添加的。 上面的代码类似于SQL, 需要工作

  • 我有一个淡褐色IMAP看起来像 在val1,val2上建立索引我正在尝试获取say

  • 我知道如何通过谓词查找列表的第一个元素:Java8通过谓词查找第一个元素 有没有一种简单的方法可以得到那个元素的索引? 编辑:链接的问题确实提供了答案,但我在搜索时找不到它,因为它的措辞。因此,我宁愿保留这个问题。

  • 如何将侦听器设置为一个映射,该映射的键有一个复杂的对象,并且我只想侦听具有特定键参数值的条目发生的更改。 例如,我有一个类似于此的代码: 但当一个包含“EN”语言的键的条目被更新时,我的回调函数不会被调用。所以我假设我的谓词是错误的。

  • 问题内容: 我正在研究Weka,需要为每个测试实例输出每个标签的谓词值(概率)。 在GUI中,分类选项卡中有一个选项(分类->选项->输出预测值),该选项通过输出每个标签的预测概率来完成此工作,但是如何在Java代码中执行此操作。我想对每个标签进行分类后获得概率分数吗? 问题答案: 以下代码接受一组训练实例,并输出特定实例的预测概率。 方法“ distributionForInstance”仅适用