[
https://issues.apache.org/jira/browse/FLINK-838?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14078717#comment-14078717
]
Artem Tsikiridis edited comment on FLINK-838 at 7/30/14 12:52 AM:
------------------------------------------------------------------
Hi Fabian! Nice suggestions!
1) Although it doesn't make much difference for us it would be
https://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapred/lib/MultipleInputs.html
Looking in the implementation of it, I notice it uses a
{{DelegatingInputFormat}} and a {{DelegatingMapper}} by keeping a mapping of
{inputsplit, mapper to use} in the {{JobConf}} . Shouldn't this work out of the
box just by configuring the {{Configurable}} interfaces (which we already do
successfully)? I'll try a relevant test case.
2) That would be cool. It requires that the code of {{FlinkHadoopJobClient}}
gets more modular though, as at the moment there is no clean separation of the
additional steps. This should be done in any case.
Here's a status update:
Although, initially there was some work done on custom partitioning and
grouping on the reducer's values and in my tests it seemed to be correct, the
implementation is very flawed and inefficient and Fabian suggested that it is
not mature yet to be merged. To avoid repeating computations and completely
discarding the partitioner's shuffling here is a suggestion:
the {{groupBy}} call acts as a partitioner. And then we need to extend the
{{GroupReduceOperator}} api (an additional operation by KeySelector? ) to group
values before the reducer. This way, the partitioner and the grouper of reducer
values can be completely independent. Do you have any suggestions for that?
They would be very useful.
A general overview of other things I'm doing:
* Working on code review comments in
https://github.com/apache/incubator-flink/pull/37 (sorry I squashed, that was
not very bright :( )
* Wrapping up with Counters - Accumulators. Have supported more functionality
for the {{JobClient}} and the {{JobConf}}. Not that many unsupported ops (of
course there are some, which are totally hadoop specific).
* Dealing with the custom ClassLoader. I am a bit stuck in this one ( although
Robert's email helped). As it is probably a minor thing I'm missing I have it
on the side. Generally, passing the classloader via a JVM arg does not seem to
help in my case.
Cheers,
A.
was (Author: atsikiridis):
Hi Fabian! Nice suggestions!
1) Although it doesn't make much difference for us it would be
https://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapred/lib/MultipleInputs.html
Looking in the implementation of it, I notice it uses a
{{DelegatingInputFormat}} and a {{DelegatingMapper}} by keeping a mapping of
{inputsplit, mapper to use} in the {{JobConf}} . Shouldn't this work out of the
box just by configuring the {{Configurable}} interfaces (which we already do
successfully)?
2) That would be cool. It requires that the code of {{FlinkHadoopJobClient}}
gets more modular though, as at the moment there is no clean separation of the
additional steps. This should be done in any case.
Here's a status update:
Although, initially there was some work done on custom partitioning and
grouping on the reducer's values and in my tests it seemed to be correct, the
implementation is very flawed and inefficient and Fabian suggested that it is
not mature yet to be merged. To avoid repeating computations and completely
discarding the partitioner's shuffling here is a suggestion:
the {{groupBy}} call acts as a partitioner. And then we need to extend the
{{GroupReduceOperator}} api (an additional operation by KeySelector? ) to group
values before the reducer. This way, the partitioner and the grouper of reducer
values can be completely independent. Do you have any suggestions for that?
They would be very useful.
A general overview of other things I'm doing:
* Working on code review comments in
https://github.com/apache/incubator-flink/pull/37 (sorry I squashed, that was
not very bright :( )
* Wrapping up with Counters - Accumulators. Have supported more functionality
for the {{JobClient}} and the {{JobConf}}. Not that many unsupported ops (of
course there are some, which are totally hadoop specific).
* Dealing with the custom ClassLoader. I am a bit stuck in this one ( although
Robert's email helped). As it is probably a minor thing I'm missing I have it
on the side. Generally, passing the classloader via a JVM arg does not seem to
help in my case.
Cheers,
A.
> GSoC Summer Project: Implement full Hadoop Compatibility Layer for
> Stratosphere
> -------------------------------------------------------------------------------
>
> Key: FLINK-838
> URL: https://issues.apache.org/jira/browse/FLINK-838
> Project: Flink
> Issue Type: Improvement
> Reporter: GitHub Import
> Labels: github-import
> Fix For: pre-apache
>
>
> This is a meta issue for tracking @atsikiridis progress with implementing a
> full Hadoop Compatibliltiy Layer for Stratosphere.
> Some documentation can be found in the Wiki:
> https://github.com/stratosphere/stratosphere/wiki/%5BGSoC-14%5D-A-Hadoop-abstraction-layer-for-Stratosphere-(Project-Map-and-Notes)
> As well as the project proposal:
> https://github.com/stratosphere/stratosphere/wiki/GSoC-2014-Project-Proposal-Draft-by-Artem-Tsikiridis
> Most importantly, there is the following **schedule**:
> *19 May - 27 June (Midterm)*
> 1) Work on the Hadoop tasks, their Context and the mapping of Hadoop's
> Configuration to the one of Stratosphere. By successfully bridging the Hadoop
> tasks with Stratosphere, we already cover the most basic Hadoop Jobs. This
> can be determined by running some popular Hadoop examples on Stratosphere
> (e.g. WordCount, k-means, join) (4 - 5 weeks)
> 2) Understand how the running of these jobs works (e.g. command line
> interface) for the wrapper. Implement how will the user run them. (1 - 2
> weeks).
> *27 June - 11 August*
> 1) Continue wrapping more "advanced" Hadoop Interfaces (Comparators,
> Partitioners, Distributed Cache etc.) There are quite a few interfaces and it
> will be a challenge to support all of them. (5 full weeks)
> 2) Profiling of the application and optimizations (if applicable)
> *11 August - 18 August*
> Write documentation on code, write a README with care and add more
> unit-tests. (1 week)
> ---------------- Imported from GitHub ----------------
> Url: https://github.com/stratosphere/stratosphere/issues/838
> Created by: [rmetzger|https://github.com/rmetzger]
> Labels: core, enhancement, parent-for-major-feature,
> Milestone: Release 0.7 (unplanned)
> Created at: Tue May 20 10:11:34 CEST 2014
> State: open
--
This message was sent by Atlassian JIRA
(v6.2#6252)