我正在尝试将apache flink流式传输的数据缓存到apache ignite缓存中。我还想运行使用用户定义函数的查询。根据ignite,我正在使用 cacheConf.setSqlFunctionClasses(GetCacheKey.class)
声明缓存时设置。类声明如下:,
public static class GetCacheKey implements Serializable{
@QuerySqlFunction
public static long getCacheKey(int mac, long local) {
long key=(local << 5) + mac;
return key;
}
}
当我用apache flink在本地运行代码时,它是有效的。但是当我在flink cluster中执行集群代码时,我得到了一个错误 GetCacheKey
找不到类。这背后的原因是什么?
2条答案
按热度按时间iezvtpos1#
请检查getcachekey.class是否在ignite nodes类路径中。
hgqdbh6s2#
flink目录必须在同一路径下的每个worker上可用。您可以使用共享的nfs目录,或者将整个flink目录复制到每个工作节点。
还要确保ignite lib存在于worker节点类路径中。