Thanks for the summary, Andrey. Good idea to link Patrick's document from
the FLIP as a future direction so it doesn't get lost. Could you make sure
to revive that discussion when FLIP-111 nears an end?

This is good to go on my part. +1 to start the VOTE.


@Till, @Yang: Thanks for the clarification with the output redirection. I
didn't see that. The concern with the `tee` approach is that the file would
grow indefinitely. I think we can solve this with regular logging by
redirecting stderr to ERROR log level, but I'm not sure. We can look at a
potential solution when we get to that point. :-)



On Fri, Apr 3, 2020 at 3:36 PM Andrey Zagrebin <azagre...@apache.org> wrote:

> Hi everyone,
>
> Patrick and Ufuk, thanks a lot for more ideas and suggestions!
>
> I have updated the FLIP according to the current state of discussion.
> Now it also contains the implementation steps and future follow-ups.
> Please, review if there are any concerns.
> The order of the steps aims for keeping Flink releasable at any point if
> something does not have enough time to get in.
>
> It looks that we are reaching mostly a consensus for the open questions.
> There is also a list of items, which have been discussed in this thread,
> and short summary below.
> As soon as there are no concerns, I will create a voting thread.
>
> I also added some thoughts for further customising logging setup. This may
> be an optional follow-up
> which is additional to the default logging into files for Web UI.
>
> # FLIP scope
> The focus is users of the official releases.
> Create docs for how to use the official docker image.
> Remove other Dockerfiles in Flink repo.
> Rely on running the official docker image in different modes (JM/TM).
> Customise running the official image with env vars (This should minimise
> manual manipulating of local files and creation of a custom image).
>
> # Base oficial image
>
> ## Java versions
> There is a separate effort for this:
> https://github.com/apache/flink-docker/pull/9
>
> # Run image
>
> ## Entry point modes
> JM session, JM job, TM
>
> ## Entry point config
> We use env vars for this, e.g. FLINK_PROPERTIES and ENABLE_BUILT_IN_PLUGINS
>
> ## Flink config options
> We document the existing FLINK_PROPERTIES env var to override config
> options in flink-conf.yaml.
> Then later, we do not need to expose and handle any other special env vars
> for config options (address, port etc).
> The future plan is to make Flink process configurable by env vars, e.g.
> 'some.yaml.option: val' -> FLINK_SOME_YAML_OPTION=val
>
> ## Extra files: jars, custom logging properties
> We can provide env vars to point to custom locations, e.g. in mounted
> volumes.
>
> # Extend image
>
> ## Python/hadoop versions, activating certain libs/plugins
> Users can install extra dependencies and change configs in their custom
> image which extends our base image.
>
> # Logging
>
> ## Web UI
> Modify the *log4j-console.properties* to also output logs into the files
> for WebUI. Limit log file size.
>
> ## Container output
> Separate effort for proper split of Flink process stdout and stderr into
> files and container output
> (idea with tee command: `program start-foreground &2>1 | tee
> flink-user-taskexecutor.out`)
>
> # Docker bash utils
> We are not going to expose it to users as an API.
> They should be able either to configure and run the standard entry point
> or the documentation should give short examples about how to extend and
> customise the base image.
>
> During the implementation, we will see if it makes sense to factor out
> certain bash procedures
> to reuse them e.g. in custom dev versions of docker image.
>
> # Dockerfile / image for developers
> We keep it on our future roadmap. This effort should help to understand
> what we can reuse there.
>
> Best,
> Andrey
>
>
> On Fri, Apr 3, 2020 at 12:57 PM Till Rohrmann <trohrm...@apache.org>
> wrote:
>
>> Hi everyone,
>>
>> just a small inline comment.
>>
>> On Fri, Apr 3, 2020 at 11:42 AM Ufuk Celebi <u...@apache.org> wrote:
>>
>> > Hey Yang,
>> >
>> > thanks! See inline answers.
>> >
>> > On Fri, Apr 3, 2020 at 5:11 AM Yang Wang <danrtsey...@gmail.com> wrote:
>> >
>> > > Hi Ufuk,
>> > >
>> > > Thanks for make the conclusion and directly point out what need to be
>> > done
>> > > in
>> > > FLIP-111. I agree with you that we should narrow down the scope and
>> focus
>> > > the
>> > > most important and basic part about docker image unification.
>> > >
>> > > (1) Extend the entrypoint script in apache/flink-docker to start the
>> job
>> > >> cluster entry point
>> > >
>> > > I want to add a small requirement for the entry point script.
>> Currently,
>> > > for the native
>> > > K8s integration, we are using the apache/flink-docker image, but with
>> > > different entry
>> > > point("kubernetes-entry.sh"). Generate the java cmd in KubernetesUtils
>> > and
>> > > run it
>> > > in the entry point. I really hope it could merge to
>> apache/flink-docker
>> > > "docker-entrypoint.sh".
>> > >
>> >
>> > The script [1] only adds the FLINK_CLASSPATH env var which seems
>> generally
>> > reasonable to me. But since principled classpath and entrypoint
>> > configuration is somewhat related to the follow-up improvement
>> proposals, I
>> > could also see this being done after FLIP-111.
>> >
>> >
>> > > (2) Extend the example log4j-console configuration
>> > >> => support log retrieval from the Flink UI out of the box
>> > >
>> > > If you mean to update the "flink-dist/conf/log4j-console.properties"
>> to
>> > > support console and
>> > > local log files. I will say "+1". But we need to find a proper way to
>> > make
>> > > stdout/stderr output
>> > > both available for console and log files. Maybe till's proposal could
>> > help
>> > > to solve this.
>> > > "`program &2>1 | tee flink-user-taskexecutor.out`"
>> > >
>> >
>> > I think we can simply add a rolling file appender with a limit on the
>> log
>> > size.
>> >
>> > I think this won't solve Yang's concern. What he wants to achieve is
>> that
>> STDOUT and STDERR go to STDOUT and STDERR as well as into some *.out and
>> *.err file which are accessible from the web ui. I don't think that log
>> appender will help with this problem.
>>
>> Cheers,
>> Till
>>
>>
>> > – Ufuk
>> >
>> > [1]
>> >
>> >
>> https://github.com/apache/flink/blob/master/flink-dist/src/main/flink-bin/kubernetes-bin/kubernetes-entry.sh
>> >
>>
>

Reply via email to