我正在多节点分布式 Dask 集群上运行多个并行任务。然而,一旦任务完成,worker 仍然持有大量内存,集群很快就会被填满。
client.restart()我在每个任务之后都尝试过client.cancel(df),第一个任务会杀死工作人员并发送到CancelledError其他正在运行的任务,这很麻烦,第二个任务没有多大帮助,因为我们在 Dask 的函数中使用了很多自定义对象和函数map。添加del已知变量gc.collect()也没有多大帮助。
我确信大部分内存占用是由于自定义 python 函数和使用client.map(..).
我的问题是:
trigger worker restart if no tasks are running right now?假设我有一个外部JSON:
[{
"condition": "equals",
"field": "name",
"value": "jack"
},
{
"condition": "greater",
"field": "age",
"value": 25
}
]
Run Code Online (Sandbox Code Playgroud)
这意味着我想在名为as "jack"和的人的Person对象列表中检查age > 25.使用Java 8过滤相当简单(显示的示例仅在名称上过滤).
但是,我想使此过滤器可配置,并且还应用多个过滤器.假设下面的Person pojo(这是不言自明的),取名字和年龄,我怎样才能使过滤器动态或可配置?
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// Accessors and Mutators
}
Run Code Online (Sandbox Code Playgroud)
List<Person> persons = Arrays.asList(
new Person("mkyong", 30),
new Person("jack", 20),
new Person("lawrence", 40)
);
Person result1 = persons.stream() // Convert to steam
.filter(x -> …Run Code Online (Sandbox Code Playgroud) 我已经浏览了 MapBox 的开源库,主要对使用mapbox-gl-js感兴趣
但是,我无法理解为什么我需要在开源库中使用 mapbox 的密钥。它是为使用密钥而构建的,否则我不能吗?我想使用这个库作为我公司的原型,并想确定其含义是什么。
dask ×1
filter ×1
java ×1
java-8 ×1
java-stream ×1
javascript ×1
lambda ×1
mapbox ×1
mapbox-gl-js ×1
maps ×1
python ×1