2017-04-13 65 views
0

我试图将Apache flink传输的数据缓存到Apache Ignite缓存中。我也想运行使用用户定义函数的查询。根据Ignite,我在声明缓存时使用cacheConf.setSqlFunctionClasses(GetCacheKey.class)设置。类声明如下,Flink群集中的Ignite用户定义函数的ClassNotFound错误

public static class GetCacheKey implements Serializable{ 

    @QuerySqlFunction 
    public static long getCacheKey(int mac, long local) {    
     long key=(local << 5) + mac; 
     return key; 
    } 

}

当我与Apache弗林克本地运行的代码,它的工作原理。但是当我去集群执行Flink集群中的代码时,出现GetCacheKey类未找到的错误。这背后的原因是什么?

回答

0

请检查GetCacheKey.class是否在点燃节点类路径。

0

Flink目录必须在同一路径下的每个工人上都可用。您可以使用共享NFS目录,或将整个Flink目录复制到每个工作节点。

还要确保Ignite库存在于工作节点类路径中。