首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >作业提交在Apache中花费了大量时间

作业提交在Apache中花费了大量时间
EN

Stack Overflow用户
提问于 2018-01-31 16:31:59
回答 1查看 405关注 0票数 0

我有一个使用Apache编写的应用程序。它实现了基于信息论的特征选择方法。对于方法mRMR,我有两个DataSet<>s -一个(比如A )包含选定的特性,另一个(比如B )包含所有其他特性。当我选择一个特性时,我从B中删除该特性,并将其添加到A中。因此,我首先计算类和特性之间的互信息,然后选择具有最大互信息的特性,并将其添加到A中。然后,我有一个cross()函数来计算A、B中所有特性之间的相互信息。通过这样做,我可以调整B中所有功能的相互信息,并为A选择新的功能。我做了很多次,直到我选择了想要的数量的功能。我使用以下命令提交该职务:

代码语言:javascript
复制
~/Programs/flink-1.4.0/bin/flink run -c org.apache.flink.feast.Main target/flink-feast-1.0.jar --method mrmr --top 5 --input ~/Datasets/00388/data_copy.txt --label 0

--top 5参数用于传递我希望程序选择的功能的数量。在我的测试数据集中,我有1024个特性。

现在,当我想选择5个功能时,效果很好。当我尝试选择15个功能时,提交作业需要10分钟,当我尝试选择20个功能时,需要花费更多的时间。这种行为正常吗?如果没有,我又能做些甚麽呢?我怀疑cross()函数,它的提交需要很长时间,而不是执行。我试图增加作业和任务管理器的堆大小,但问题仍然存在。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-02-01 12:13:42

我不知道您的cross()函数是什么,但看起来在Flink运行作业之前,它使用top值向Flink运算符图添加操作符。

根据我的经验,如果提交作业需要很多时间,这是因为运算符图太复杂了,所以Flink需要更多的时间来探索所有可以应用的可定位优化

这个寄来的时间少了。

代码语言:javascript
复制
source -> map -> keyBy -> windows -> reduce -> sink

而不是像下面这样的复杂工作

代码语言:javascript
复制
               /->filter->flatMap-> keyBy -> windows -> reduce-\
              /-->filter->flatMap-> keyBy -> windows -> reduce--\
source -> map --->filter->flatMap-> keyBy -> windows -> reduce---> join -> sink
              \-->filter->flatMap-> keyBy -> windows -> reduce--/
               \->filter->flatMap-> keyBy -> windows -> reduce-/
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48547000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档