Ok, perfect. Thanks! On Fri, 17 Jan 2020 at 11:39, Seth Wiesman <s...@ververica.com> wrote:
> Yes, the preferred method is to log and throw an exception prior to > calling `execute`. > > The logs will be on the flink dispatcher and the exception will be > returned wrapped in a failed deployment exception. You do not want to call > System.exit because that will shut down the entire Flink cluster where you > just want to fail the deployment. > > On Fri, Jan 17, 2020 at 10:34 AM John Smith <java.dev....@gmail.com> > wrote: > >> Hi, let me see if I can be more clear.... >> >> When the job is launched, before the 2 calls below in the main() we read >> some configs, regardless if it's Paramtools or file or what ever doesn't >> matter. Some of those params are mandatory. >> I'm guessing it's better to log and throw exception so the main() can >> fail/exit and the job never starts, right? >> >> final StreamExecutionEnvironment env = >> StreamExecutionEnvironment.getExecutionEnvironment(); >> >> ... >> env.execute(jobName); >> >> >> >> >> On Fri, 17 Jan 2020 at 03:48, Biao Liu <mmyy1...@gmail.com> wrote: >> >>> Hi John, >>> >>> ParameterTools is just a utility to help user to handle arguments. >>> I guess you are using ParameterTools in main method. If it is, it should >>> be in client log file, like Yang said, it's under "{FLINK_HOME}/log". >>> >>> > Do I check someConfig for what ever requirement and just throw an >>> exception before starting the job or should I do System.exit(); >>> >>> I"m not sure what you exactly want. >>> Throwing an exception or System.exit would both fail the job (it depends >>> on where you codes are). However invoking System.exit is not always a good >>> practice. >>> >>> Thanks, >>> Biao /'bɪ.aʊ/ >>> >>> >>> >>> On Fri, 17 Jan 2020 at 04:59, John Smith <java.dev....@gmail.com> wrote: >>> >>>> Sorry I should have specified how to handle job specific config >>>> parameters using ParameterTool >>>> >>>> ParameterTool parameters = ... >>>> >>>> String someConfig = parameters.get("some.config"); <--- This is mandatory >>>> >>>> >>>> Do I check someConfig for what ever requirement and just throw an >>>> exception before starting the job or should I do System.exit(); Log it... >>>> Where does the log if I log it? >>>> >>>> On Wed, 15 Jan 2020 at 22:21, Yang Wang <danrtsey...@gmail.com> wrote: >>>> >>>>> Hi John, >>>>> >>>>> Most of the config options will have default values. However, you >>>>> still need to specify some >>>>> required fields. For example, the taskmanager resource related >>>>> options. If you do not specify >>>>> anyone, the exception will be thrown on the client side like following. >>>>> >>>>> Exception in thread "main" >>>>> org.apache.flink.configuration.IllegalConfigurationException: Either Task >>>>> Heap Memory size (taskmanager.memory.task.heap.size) and Managed Memory >>>>> size (taskmanager.memory.managed.size), or Total Flink Memory size >>>>> (taskmanager.memory.flink.size), or Total Process Memory size >>>>> (taskmanager.memory.process.size) need to be configured explicitly. >>>>> at >>>>> org.apache.flink.runtime.clusterframework.TaskExecutorResourceUtils.resourceSpecFromConfig(TaskExecutorResourceUtils.java:149) >>>>> at >>>>> org.apache.flink.runtime.util.BashJavaUtils.getTmResourceJvmParams(BashJavaUtils.java:62) >>>>> at >>>>> org.apache.flink.runtime.util.BashJavaUtils.main(BashJavaUtils.java:46) >>>>> >>>>> >>>>> Also when you deploy Flink on Yarn cluster, it will check the queue >>>>> configuration, resource, etc. >>>>> If some config exception throws during startup, the Flink client will >>>>> fail and print the exception on >>>>> the console and client logs(usually in the {FLINK_HOME}/logs >>>>> directory). >>>>> >>>>> However, not all the config options could be checked on the client >>>>> side. For example, If you set a >>>>> wrong checkpoint path, then you need to find the exceptions or errors >>>>> in the jobmanager logs. >>>>> >>>>> >>>>> >>>>> Best, >>>>> Yang >>>>> >>>>> John Smith <java.dev....@gmail.com> 于2020年1月16日周四 上午12:38写道: >>>>> >>>>>> Hi, so I have no problem reading config from resources files or >>>>>> anything like that... >>>>>> >>>>>> But my question is around how do we handle mandatory fields? >>>>>> >>>>>> 1- If a mandatory field is missing during startup... Do we just "log" >>>>>> it and do System.exit()? >>>>>> 2- If we do log it where does the log end up, the task or the job >>>>>> node? >>>>>> >>>>> > > -- > > Seth Wiesman | Solutions Architect > > +1 314 387 1463 > > <https://www.ververica.com/> > > Follow us @VervericaData > > -- > > Join Flink Forward <https://flink-forward.org/> - The Apache Flink > Conference > > Stream Processing | Event Driven | Real Time > > -- > > Ververica GmbH | Invalidenstrasse 115, 10115 Berlin, Germany > > -- > Ververica GmbH > Registered at Amtsgericht Charlottenburg: HRB 158244 B > Managing Directors: Dr. Kostas Tzoumas, Dr. Stephan Ewen >