Hi Flavio!

The issue that abstract classes and interfaces are not supported is
definitely fixed in 0.9.

Your other fix (adding the call for configuring the output format) - is
that always needed, or just important in a special case? How has the output
format worked before?

If this is critical to the functionality, would you open a pull request
with this patch?

Greetings,
Stephan



On Fri, Mar 20, 2015 at 6:28 PM, Flavio Pompermaier <pomperma...@okkam.it>
wrote:

> 0.8,1
>
> On Fri, Mar 20, 2015 at 6:11 PM, Stephan Ewen <se...@apache.org> wrote:
>
>> Hi Flavio!
>>
>> Is this on Flink 0.9-SNAPSHOT or 0.8.1 ?
>>
>> Stephan
>>
>>
>> On Fri, Mar 20, 2015 at 6:03 PM, Flavio Pompermaier <pomperma...@okkam.it
>> > wrote:
>>
>>> To make it work I had to clone the Flink repo, imporrt the Flink-java
>>> project and modify the
>>> HadoopOutputFormatBase in the open() and finalizeGlobal and call
>>>
>>> if(this.mapreduceOutputFormat instanceof Configurable){
>>> ((Configurable)this.mapreduceOutputFormat).setConf(this.configuration);
>>> }
>>> otherwise the "mapred.output.dir" property was always null :(
>>>
>>> On Fri, Mar 20, 2015 at 10:27 AM, Flavio Pompermaier <
>>> pomperma...@okkam.it> wrote:
>>>
>>>> Hi guys,
>>>>
>>>> I was trying to insert into an HBase table with Flink 0.8.1 and it
>>>> seems to be not possible without creating a custom version of the HBase
>>>> TableOutputFormat that specialize Mutation with Put.
>>>> This is my code using the standard Flink APIs:
>>>>
>>>> myds.output(new HadoopOutputFormat<Text, Put>(new
>>>> TableOutputFormat<Text>(), job));
>>>>
>>>> and this is the Exception I get:
>>>>
>>>> Exception in thread "main"
>>>> org.apache.flink.api.common.functions.InvalidTypesException: Interfaces and
>>>> abstract classes are not valid types: class
>>>> org.apache.hadoop.hbase.client.Mutation
>>>> at
>>>> org.apache.flink.api.java.typeutils.TypeExtractor.privateGetForClass(TypeExtractor.java:885)
>>>> at
>>>> org.apache.flink.api.java.typeutils.TypeExtractor.privateGetForClass(TypeExtractor.java:877)
>>>> ....
>>>>
>>>> So I had to copy the TableOutputFormat, rename it as
>>>> HBaseTableOutputFormat and change Mutation to Put as TableOutputFormat Type
>>>> argument.
>>>> However the table filed is not initialized because setConf is not
>>>> called. Is this a bug of the HadoopOutputFormat wrapper that does not check
>>>> is the outputFormat is an instance of Configurable and call setConf (as it
>>>> happens for the inputSlit)?
>>>>
>>>> Best,
>>>> Flavio
>>>>
>>>
>>>
>>>
>>>
>

Reply via email to