> Since we call waitForCompletion() (which calls submit() internally) in 
> GiraphJob#run(), we cannot override those methods.
Why can't we just call super.waitForCompletion() and override them to
our users?  It seems there are some advantages to GiraphJob being-a
Job (easier integration with schedulers, Pig, etc.), but I'm not sure
if it outweighs the inheritance issues that may be reaised...


On Wed, Feb 8, 2012 at 9:57 PM, David Garcia <dgar...@potomacfusion.com> wrote:
> Not tonight.  But I might be able to tomorrow.
>
> Sent from my HTC Inspire™ 4G on AT&T
>
>
> ----- Reply message -----
> From: "Avery Ching" <ach...@apache.org>
> To: "giraph-user@incubator.apache.org" <giraph-user@incubator.apache.org>
> Subject: Giraph Architecture bug in
> Date: Wed, Feb 8, 2012 8:17 pm
>
>
>
> AFAIK we don't have any SOP for opening issues.  Maybe I'll take a crack
> at this one tonight if I find some time, unless you were planning to
> work on it David.
>
> Avery
>
> On 2/8/12 5:46 PM, David Garcia wrote:
>> I opened up
>>
>> * GIRAPH-144<https://issues.apache.org/jira/browse/GIRAPH-144>
>>
>>
>> I apologize if I didn't do it up according to project SOP's.  I haven't
>> had time to read it thoroughly.
>>
>> -David
>>
>>
>> On 2/8/12 7:29 PM, "David Garcia"<dgar...@potomacfusion.com>  wrote:
>>
>>> Yeah, I'll write something up.
>>>
>>>
>>> On 2/8/12 7:26 PM, "Avery Ching"<ach...@apache.org>  wrote:
>>>
>>>> Since we call waitForCompletion() (which calls submit() internally) in
>>>> GiraphJob#run(), we cannot override those methods.  A better fix would
>>>> probably be to use composition rather than inheritance (i.e.
>>>>
>>>> public class GiraphJob {
>>>>      Job internalJob;
>>>> }
>>>>
>>>> and expose the methods we would like as necessary.  There are other
>>>> methods we don't want the user to call, (i.e. setMapperClass(), etc.).
>>>> David, can you please open an issue for this?
>>>>
>>>> Avery
>>>>
>>>> On 2/8/12 5:17 PM, David Garcia wrote:
>>>>> This is a very subtle bug.  GiraphJob inherits from
>>>>> org.apache.mapreduce.Job.  However, the methods submit() and
>>>>> waitForCompletion() are not overridden.  I assumed that they were
>>>>> implemented, so when I called either one of these methods, the
>>>>> framework
>>>>> started up identity mappers/reducers.  A simple fix is to throw
>>>>> unsupported operation exceptions or to implement these methods.
>>>>> Perhaps
>>>>> this has been done already?
>>>>>
>>>>> -David
>>>>>
>>>>> On 2/7/12 7:46 PM, "David Garcia"<dgar...@potomacfusion.com>   wrote:
>>>>>
>>>>>> I am running into a weird error that I haven't seen yet (I suppose
>>>>>> I've
>>>>>> been lucky).  I see the following in the logging:
>>>>>>
>>>>>> org.apache.hadoop.util.NativeCodeLoader: Unable to load native-hadoop
>>>>>> library for your platform... using builtin-java classes where
>>>>>> applicable
>>>>>>
>>>>>>
>>>>>> In the job definition, the property "mapreduce.map.class" is not even
>>>>>> defined.  For Giraph, this is usually set to
>>>>>> "mapreduce.map.class=org.apache.giraph.graph.GraphMapper"
>>>>>>
>>>>>> I'm building my project with hadoop 0.20.204.
>>>>>>
>>>>>> When I build the GiraphProject myself (and run my own tests with the
>>>>>> projects dependencies), I have no problems.  The main difference is
>>>>>> that
>>>>>> I'm using a Giraph dependency in my work project.  All input is
>>>>>> welcome.
>>>>>> Thx!!
>>>>>>
>>>>>> -David
>>>>>>
>

Reply via email to