flink如何在服务器运行,java-如何增加Flink taskmanager.numberOfTaskSlots以在没有Flink服务器的情况下运行它(在IDE或胖子中)...

我有一个关于在IDE中或作为胖子运行Flink流作业而不将其部署到Flink服务器的问题.

问题是,当我的工作中有多个任务槽时,无法在IDE中运行它.

public class StreamingJob {

public static void main(String[] args) throws Exception {

// set up the streaming execution environment

final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

Properties kafkaProperties = new Properties();

kafkaProperties.setProperty("bootstrap.servers", "localhost:9092");

kafkaProperties.setProperty("group.id", "test");

env.setParallelism(1);

DataStream kafkaSource = env

.addSource(new FlinkKafkaConsumer010<>("flink-source", new SimpleStringSchema(), kafkaProperties))

.name("Kafka-Source")

.slotSharingGroup("Kafka-Source");

kafkaSource.print().slotSharingGroup("Print");

env.execute("Flink Streaming Java API Skeleton");

}

}

我知道该作业需要2个插槽,并且Flink集群中可以有两个任务管理器,但是如何在IDE中本地运行它.

当前,我必须为所有本地运算符指定相同的slotSharingGroup名称,以拥有一个插槽.但这并不灵活.

您如何处理?

解决方法:

这是您正在描述的已知错误.您可以找到相应的JIRA问题here.

规避此问题的方法是手动设置启动TaskExecutor的任务插槽的数量.您可以通过TaskManagerOptions.NUM_TASK_SLOTS配置选项执行此操作:

final int parallelism = ...;

final Configuration configuration = new Configuration();

configuration.setInteger(TaskManagerOptions.NUM_TASK_SLOTS, 2);

final StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironment(parallelism, configuration);

标签:apache-flink,flink-streaming,java

来源: https://codeday.me/bug/20191025/1925721.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值