Hi Max, Is there any other concerns from your side? I appreciate if you can give some feedback and vote on this.
Best, Wei > 在 2019年10月25日,09:33,jincheng sun <sunjincheng...@gmail.com> 写道: > > Hi Thomas, > > Thanks for your explanation. I understand your original intention. I will > seriously consider this issue. After I have the initial solution, I will > bring up a further discussion in Beam ML. > > Thanks for your voting. :) > > Best, > Jincheng > > > Thomas Weise <t...@apache.org> 于2019年10月25日周五 上午7:32写道: > >> Hi Jincheng, >> >> Yes, this topic can be further discussed on the Beam ML. The only reason I >> brought it up here is that it would be desirable from Beam Flink runner >> perspective for the artifact staging mechanism that you work on to be >> reusable. >> >> Stage 1 in Beam is also up to the runner, artifact staging is a service >> discovered from the job server and that the Flink job server currently uses >> DFS is not set in stone. My interest was more regarding assumptions >> regarding the artifact structure, which may or may not allow for reusable >> implementation. >> >> +1 for the proposal otherwise >> >> Thomas >> >> >> On Mon, Oct 21, 2019 at 8:40 PM jincheng sun <sunjincheng...@gmail.com> >> wrote: >> >>> Hi Thomas, >>> >>> Thanks for sharing your thoughts. I think improve and solve the >> limitations >>> of the Beam artifact staging is good topic(For beam). >>> >>> As I understand it as follows: >>> >>> For Beam(data): >>> Stage1: BeamClient ------> JobService (data will be upload to DFS). >>> Stage2: JobService(FlinkClient) ------> FlinkJob (operator download >>> the data from DFS) >>> Stage3: Operator ------> Harness(artifact staging service) >>> >>> For Flink(data): >>> Stage1: FlinkClient(data(local) upload to BlobServer using distribute >>> cache) ------> Operator (data will be download from BlobServer). Do not >>> have to depend on DFS. >>> Stage2: Operator ------> Harness(for docker we using artifact staging >>> service) >>> >>> So, I think Beam have to depend on DFS in Stage1. and Stage2 can using >>> distribute cache if we remove the dependency of DFS for Beam in >> Stage1.(Of >>> course we need more detail here), we can bring up the discussion in a >>> separate Beam dev@ ML, the current discussion focuses on Flink 1.10 >>> version >>> of UDF Environment and Dependency Management for python, so I recommend >>> voting in the current ML for Flink 1.10, Beam artifact staging >> improvements >>> are discussed in a separate Beam dev@. >>> >>> What do you think? >>> >>> Best, >>> Jincheng >>> >>> Thomas Weise <t...@apache.org> 于2019年10月21日周一 下午10:25写道: >>> >>>> Beam artifact staging currently relies on shared file system and there >>> are >>>> limitations, for example when running locally with Docker and local FS. >>> It >>>> sounds like a distributed cache based implementation might be a good >>>> (better?) option for artifact staging even for the Beam Flink runner? >>>> >>>> If so, can the implementation you propose be compatible with the Beam >>>> artifact staging service so that it can be plugged into the Beam Flink >>>> runner? >>>> >>>> Thanks, >>>> Thomas >>>> >>>> >>>> On Mon, Oct 21, 2019 at 2:34 AM jincheng sun <sunjincheng...@gmail.com >>> >>>> wrote: >>>> >>>>> Hi Max, >>>>> >>>>> Sorry for the late reply. Regarding the issue you mentioned above, >> I'm >>>> glad >>>>> to share my thoughts: >>>>> >>>>>> For process-based execution we use Flink's cache distribution >> instead >>>> of >>>>> Beam's artifact staging. >>>>> >>>>> In current design, we use Flink's cache distribution to upload users' >>>> files >>>>> from client to cluster in both docker mode and process mode. That is, >>>>> Flink's cache distribution and Beam's artifact staging service work >>>>> together in docker mode. >>>>> >>>>> >>>>>> Do we want to implement two different ways of staging artifacts? It >>>> seems >>>>> sensible to use the same artifact staging functionality also for the >>>>> process-based execution. >>>>> >>>>> I agree that the implementation will be simple if we use the same >>>> artifact >>>>> staging functionality also for the process-based execution. However, >>> it's >>>>> not the best for performance as it will introduce an additional >> network >>>>> transmission, as in process mode TaskManager and python worker share >>> the >>>>> same environment, in which case the user files in Flink Distribute >>> Cache >>>>> can be accessed by python worker directly. We do not need the staging >>>>> service in this case. >>>>> >>>>>> Apart from being simpler, this would also allow the process-based >>>>> execution to run in other environments than the Flink TaskManager >>>>> environment. >>>>> >>>>> IMHO, this case is more like docker mode, and we can share or reuse >> the >>>>> code of Beam docker mode. Furthermore, in this case python worker is >>>>> launched by the operator, so it is always in the same environment as >>> the >>>>> operator. >>>>> >>>>> Thanks again for your feedback, and it is valuable for find out the >>> final >>>>> best architecture. >>>>> >>>>> Feel free to correct me if there is anything incorrect. >>>>> >>>>> Best, >>>>> Jincheng >>>>> >>>>> Maximilian Michels <m...@apache.org> 于2019年10月16日周三 下午4:23写道: >>>>> >>>>>> I'm also late to the party here :) When I saw the first draft, I >> was >>>>>> thinking how exactly the design doc would tie in with Beam. Thanks >>> for >>>>>> the update. >>>>>> >>>>>> A couple of comments with this regard: >>>>>> >>>>>>> Flink has provided a distributed cache mechanism and allows users >>> to >>>>>> upload their files using "registerCachedFile" method in >>>>>> ExecutionEnvironment/StreamExecutionEnvironment. The python files >>> users >>>>>> specified through "add_python_file", "set_python_requirements" and >>>>>> "add_python_archive" are also uploaded through this method >>> eventually. >>>>>> >>>>>> For process-based execution we use Flink's cache distribution >> instead >>>> of >>>>>> Beam's artifact staging. >>>>>> >>>>>>> Apache Beam Portability Framework already supports artifact >> staging >>>>> that >>>>>> works out of the box with the Docker environment. We can use the >>>> artifact >>>>>> staging service defined in Apache Beam to transfer the dependencies >>>> from >>>>>> the operator to Python SDK harness running in the docker container. >>>>>> >>>>>> Do we want to implement two different ways of staging artifacts? It >>>>>> seems sensible to use the same artifact staging functionality also >>> for >>>>>> the process-based execution. Apart from being simpler, this would >>> also >>>>>> allow the process-based execution to run in other environments than >>> the >>>>>> Flink TaskManager environment. >>>>>> >>>>>> Thanks, >>>>>> Max >>>>>> >>>>>> On 15.10.19 11:13, Wei Zhong wrote: >>>>>>> Hi Thomas, >>>>>>> >>>>>>> Thanks a lot for your suggestion! >>>>>>> >>>>>>> As you can see from the section "Goals" that this FLIP focuses on >>> the >>>>>> dependency management in process mode. However, the APIs and design >>>>>> proposed in this FLIP also applies for the docker mode. So it makes >>>> sense >>>>>> to me to also describe how this design is integated to the artifact >>>>> staging >>>>>> service of Apache Beam in docker mode. I have updated the design >> doc >>>> and >>>>>> looking forward to your feedback. >>>>>>> >>>>>>> Thanks, >>>>>>> Wei >>>>>>> >>>>>>>> 在 2019年10月15日,01:54,Thomas Weise <t...@apache.org> 写道: >>>>>>>> >>>>>>>> Sorry for joining the discussion late. >>>>>>>> >>>>>>>> The Beam environment already supports artifact staging, it works >>> out >>>>> of >>>>>> the >>>>>>>> box with the Docker environment. I think it would be helpful to >>>>> explain >>>>>> in >>>>>>>> the FLIP how this proposal relates to what Beam offers / how it >>>> would >>>>> be >>>>>>>> integrated. >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Thomas >>>>>>>> >>>>>>>> >>>>>>>> On Mon, Oct 14, 2019 at 8:09 AM Jeff Zhang <zjf...@gmail.com> >>>> wrote: >>>>>>>> >>>>>>>>> +1 >>>>>>>>> >>>>>>>>> Hequn Cheng <chenghe...@gmail.com> 于2019年10月14日周一 下午10:55写道: >>>>>>>>> >>>>>>>>>> +1 >>>>>>>>>> >>>>>>>>>> Good job, Wei! >>>>>>>>>> >>>>>>>>>> Best, Hequn >>>>>>>>>> >>>>>>>>>> On Mon, Oct 14, 2019 at 2:54 PM Dian Fu < >> dian0511...@gmail.com> >>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Wei, >>>>>>>>>>> >>>>>>>>>>> +1 (non-binding). Thanks for driving this. >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> Dian >>>>>>>>>>> >>>>>>>>>>>> 在 2019年10月14日,下午1:40,jincheng sun <sunjincheng...@gmail.com >>> >>>> 写道: >>>>>>>>>>>> >>>>>>>>>>>> +1 >>>>>>>>>>>> >>>>>>>>>>>> Wei Zhong <weizhong0...@gmail.com> 于2019年10月12日周六 下午8:41写道: >>>>>>>>>>>> >>>>>>>>>>>>> Hi all, >>>>>>>>>>>>> >>>>>>>>>>>>> I would like to start the vote for FLIP-78[1] which is >>>> discussed >>>>>> and >>>>>>>>>>>>> reached consensus in the discussion thread[2]. >>>>>>>>>>>>> >>>>>>>>>>>>> The vote will be open for at least 72 hours. I'll try to >>> close >>>> it >>>>>> by >>>>>>>>>>>>> 2019-10-16 18:00 UTC, unless there is an objection or not >>>> enough >>>>>>>>>> votes. >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks, >>>>>>>>>>>>> Wei >>>>>>>>>>>>> >>>>>>>>>>>>> [1] >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>> >>>>> >>>> >>> >> https://cwiki.apache.org/confluence/display/FLINK/FLIP-78%3A+Flink+Python+UDF+Environment+and+Dependency+Management >>>>>>>>>>>>> < >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>> >>>>> >>>> >>> >> https://cwiki.apache.org/confluence/display/FLINK/FLIP-78:+Flink+Python+UDF+Environment+and+Dependency+Management >>>>>>>>>>>>>> >>>>>>>>>>>>> [2] >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>> >>>>> >>>> >>> >> http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-Flink-Python-UDF-Environment-and-Dependency-Management-td33514.html >>>>>>>>>>>>> < >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>> >>>>> >>>> >>> >> http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-Flink-Python-UDF-Environment-and-Dependency-Management-td33514.html >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Best Regards >>>>>>>>> >>>>>>>>> Jeff Zhang >>>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >>