Flink从集群GUI提交args到job的正确方法是什么?

时间:2017-05-03 15:34:59

标签: java user-interface apache-flink

我的目标是通过集群GUI中的“程序参数”字段将args传递给Flink作业的Main()函数。enter image description here

要在Main()函数中以某种方式访问​​它们(理想情况下通过键名称):

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

    ParameterTool parameter = ParameterTool.fromArgs(args);

    CustomProps props = new CustomProps (DEFAULT_PROPERTIES_FILE);

    String kafkaAutoOffsetReset = props.getKafkaAutoOffsetReset();
    String cassandraClusterUrl = props.getCassandraClusterUrl();

    if (args.length == 1 && args[0] != null) {

        cassandraClusterUrl = parameter.get("cassandraClusterUrl");
        kafkaAutoOffsetReset = parameter.get("kafkaOffset");
    }

    //Other code...

}

我尝试了“ParameterTool”,但我没有得到任何东西,如果我尝试类似的东西:

kafkaAutoOffsetReset = args[0];

只有在“程序参数”字段中只输入一个单词时,它才有效。所以,如果我把:

blah

它说它被设置为“等等”,但如果我尝试其中任何一个:

-kafkaOffset blah
--kafkaOffset blah
-kafkaOffset:blah
-kafkaOffset=blah

我一无所获。我在CLI中知道如何将args传递给jar:

--input file:///home/user/hamlet.txt --output file:///home/user/wordcount_out

但似乎有一种不同的方式,我错过了使用GUI这样做,我没有成功找到与它相关的文档。

TL; DR

通过Flink Cluster GUI中的“Program Arguments”字段提交多个args的正确方法是什么?在Main()函数中访问它们的正确方法是什么?

提前感谢您提供任何帮助!

2 个答案:

答案 0 :(得分:5)

程序参数应该在flink中给出,如下所示

- custom.key.one custom.value.one --custom.key.two custom.value.two

答案 1 :(得分:0)

想出来。以下是必须传递参数的方法: enter image description here