我正在尝试将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
类。这背后的原因是什么?
答案 0 :(得分:0)
请检查GetCacheKey.class是否在点燃节点类路径中。
答案 1 :(得分:0)
Flink目录必须在同一路径下的每个worker上都可用。您可以使用共享NFS目录,也可以将整个Flink目录复制到每个工作节点。
还要确保Ignite库存在工作节点类路径中。