In the end I was able to recompile Nifi to work with Hive 1.1 by providing
the appropriate profile and hive version (in my case -Pcloudera
-Dhadoop.version=2.6.0-cdh5.5.2 -Dhive.version=1.1.0-cdh5.5.2 ) as well as
modifying a couple of files related to Hive ORC support: the change I did
was quite brutal as I basically removed all the code which was generating
compilation errors but since it involved only 2 files related to hive-ORC
(that we don't use), it was way faster than trying to fix all the
dependencies (I think that a proper fix would not be that much complicated
anyway). With these changes in place I was able to connect to an Hive
Kerberos-secured server and interact with Hive tables without any issue
(but, as you can imagine, I didn't test any ORC table).

Thanks for the support,
Yari



On 9 September 2016 at 15:26, Yari Marchetti <yari.marche...@buongiorno.com>
wrote:

> I suspected the same, and that's what I've been trying to accomplish so
> far (with little luck). Thanks for confirming, Matt.
> I'll try to see if we can upgrade our Hive version to Hive 1.2.1 in the
> mean time.
>
> thanks,
> Yari
>
>
>
>
> On 9 September 2016 at 15:10, Matt Burgess <mattyb...@gmail.com> wrote:
>
>> Yari,
>>
>> NiFi was coded and built against Apache Hive 1.2.1. Some of the API,
>> files, and folders had changed between Hive 1.1.0 and Hive 1.2.1, such
>> as the org.apache.hadoop.hive.ql.io.filters package being added in
>> 1.2.0. Bringing in Apache ORC won't work for the same reason, it was
>> split from Hive after 1.2.0. In fact in Hive 1.1.0 I don't think there
>> is even a hive-orc JAR, it is just part of another Hive JAR.  Some
>> classes didn't get moved to Apache ORC from Hive until 2.0, and some
>> got moved to different packages (hence your missing classes errors
>> below).
>>
>> I think the bottom line is that you'd probably have to change the
>> source code in order to get NiFi to build against an older Hive
>> version.
>>
>> Regards,
>> Matt
>>
>> On Fri, Sep 9, 2016 at 8:50 AM, Yari Marchetti
>> <yari.marche...@buongiorno.com> wrote:
>> > Thanks, Andre. This is the command I'm using:
>> >
>> > mvn  install -DskipTests -Pcloudera -Dhadoop.version=2.6.0-cdh5.5.2
>> > -Dhive.version=1.1.0-cdh5.5.2
>> >
>> > Adding as dependency:
>> >
>> > <dependency>
>> >     <groupId>org.apache.orc</groupId>
>> >     <artifactId>orc-core</artifactId>
>> >     <version>1.1.0</version>
>> > </dependency>
>> >
>> > Yari
>> >
>> >
>> > On 9 September 2016 at 13:23, Andre <andre-li...@fucs.org> wrote:
>> >>
>> >> Yari,
>> >>
>> >> Can you please confirm what command line are you using to compile?
>> >>
>> >> Happy yo try to reproduce.
>> >>
>> >> Cheers
>> >>
>> >> On Fri, Sep 9, 2016 at 8:49 PM, Yari Marchetti
>> >> <yari.marche...@buongiorno.com> wrote:
>> >>>
>> >>> Hi Peter/Andre,
>> >>> I cherrypicked the commit and added the dependency on:
>> >>>
>> >>> <dependency>
>> >>>     <groupId>org.apache.orc</groupId>
>> >>>     <artifactId>orc-core</artifactId>
>> >>>     <version>1.1.0</version>
>> >>> </dependency>
>> >>>
>> >>> (tried also with version 1.2.0) but stil no luck, as I keep on getting
>> >>> compilation errors:
>> >>>
>> >>> [ERROR]
>> >>> /nifi/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors
>> /src/main/java/org/apache/hadoop/hive/ql/io/orc/OrcFlowF
>> ileWriter.java:[200,20]
>> >>> error: cannot find symbol
>> >>> [ERROR] symbol:   variable OrcUtils
>> >>> [ERROR] location: class OrcFlowFileWriter
>> >>> [ERROR]
>> >>> /nifi/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors
>> /src/main/java/org/apache/hadoop/hive/ql/io/orc/OrcFlowF
>> ileWriter.java:[203,20]
>> >>> error: cannot find symbol
>> >>> [ERROR] symbol:   variable OrcUtils
>> >>> [ERROR] location: class OrcFlowFileWriter
>> >>> [ERROR]
>> >>> /nifi/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors
>> /src/main/java/org/apache/hadoop/hive/ql/io/orc/OrcFlowF
>> ileWriter.java:[313,45]
>> >>> error: cannot find symbol
>> >>> [ERROR] symbol:   method loadClass(String)
>> >>> [ERROR] location: class JavaUtils
>> >>> [ERROR]
>> >>> /nifi/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors
>> /src/main/java/org/apache/hadoop/hive/ql/io/orc/OrcFlowF
>> ileWriter.java:[494,21]
>> >>> error: an enum switch case label must be the unqualified name of an
>> >>> enumeration constant
>> >>> [ERROR]
>> >>> /nifi/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors
>> /src/main/java/org/apache/hadoop/hive/ql/io/orc/OrcFlowF
>> ileWriter.java:[689,43]
>> >>> error: cannot find symbol
>> >>> [ERROR] symbol:   variable BloomFilter
>> >>> [ERROR] location: class OrcProto
>> >>> [ERROR]
>> >>> /nifi/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors
>> /src/main/java/org/apache/hadoop/hive/ql/io/orc/OrcFlowF
>> ileWriter.java:[690,43]
>> >>> error: cannot find symbol
>> >>> [ERROR] symbol:   variable BloomFilterIndex
>> >>> [ERROR] location: class OrcProto
>> >>> [ERROR]
>> >>> /nifi/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors
>> /src/main/java/org/apache/hadoop/hive/ql/io/orc/OrcFlowF
>> ileWriter.java:[691,87]
>> >>> error: cannot find symbol
>> >>> [ERROR] symbol:   variable BLOOM_FILTER
>> >>> [ERROR] location: class Kind
>> >>> [ERROR]
>> >>> /nifi/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors
>> /src/main/java/org/apache/hadoop/hive/ql/io/orc/OrcFlowF
>> ileWriter.java:[692,34]
>> >>> error: cannot find symbol
>> >>> [ERROR] symbol:   class BloomFilterIO
>> >>> [ERROR] location: class TreeWriter
>> >>> [ERROR]
>> >>> /nifi/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors
>> /src/main/java/org/apache/hadoop/hive/ql/io/orc/OrcFlowF
>> ileWriter.java:[726,52]
>> >>> error: incompatible types: PositionedOutputStream cannot be converted
>> to
>> >>> OutStream
>> >>> [ERROR]
>> >>> /nifi/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors
>> /src/main/java/org/apache/hadoop/hive/ql/io/orc/OrcFlowF
>> ileWriter.java:[728,50]
>> >>> error: incompatible types: PositionedOutputStream cannot be converted
>> to
>> >>> OutStream
>> >>> [ERROR]
>> >>> /nifi/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors
>> /src/main/java/org/apache/hadoop/hive/ql/io/orc/OrcFlowF
>> ileWriter.java:[804,19]
>> >>> error: cannot find symbol
>> >>> [ERROR] symbol:   method setWriterTimezone(String)
>> >>> [ERROR] location: variable builder of type Builder
>> >>> [ERROR]
>> >>> /nifi/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors
>> /src/main/java/org/apache/hadoop/hive/ql/io/orc/NiFiOrcU
>> tils.java:[450,32]
>> >>> error: cannot find symbol
>> >>>
>> >>> do you have any idea?
>> >>>
>> >>> Thanks,
>> >>> Yari
>> >>>
>> >>> On 8 September 2016 at 20:42, Peter Wicks (pwicks) <pwi...@micron.com
>> >
>> >>> wrote:
>> >>>>
>> >>>> Also, ORC File support was pulled out into its own library on the
>> HIVE
>> >>>> side.
>> >>>>
>> >>>> If you are willing to compile and run your own version you might
>> need to
>> >>>> include orc-core as a MVN dependency:
>> >>>> https://mvnrepository.com/artifact/org.apache.orc/orc-core/1.2.0.
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> From: Andre [mailto:andre-li...@fucs.org]
>> >>>> Sent: Thursday, September 08, 2016 4:51 AM
>> >>>> To: users@nifi.apache.org
>> >>>> Subject: Re: Nifi 1.0.0 compatibility with Hive 1.1.0
>> >>>>
>> >>>>
>> >>>>
>> >>>> Yari,
>> >>>>
>> >>>>
>> >>>>
>> >>>> Is there any chance you can cherry pick commit
>> >>>> 80224e3e5ed7ee7b09c4985a920a7fa393bff26c and try again?
>> >>>>
>> >>>>
>> >>>>
>> >>>> Post 1.0.0 there have been some changes to streamline compilation
>> using
>> >>>> vendor provided libraries.
>> >>>>
>> >>>>
>> >>>>
>> >>>> Cheers
>> >>>>
>> >>>>
>> >>>>
>> >>>> On Thu, Sep 8, 2016 at 8:44 PM, Yari Marchetti
>> >>>> <yari.marche...@buongiorno.com> wrote:
>> >>>>
>> >>>> Hello,
>> >>>>
>> >>>> I'd like to use Nifi 1.0.0 with Hive 1.1.0 (on CDH 5.5.2) but after
>> some
>> >>>> investigation I realised that the hive-jdbc driver included in Nifi
>> is
>> >>>> incompatible with the Hive version we're using (1.1.0 on CDH 5.5.2)
>> as I'm
>> >>>> getting the error:
>> >>>>
>> >>>>
>> >>>>
>> >>>> org.apache.hive.jdbc.HiveConnection Error opening session
>> >>>>
>> >>>> org.apache.thrift.TApplicationException: Required field
>> >>>> 'client_protocol' is unset! Struct:TOpenSessionReq(client_
>> protocol:null,
>> >>>> configuration:{use:database=unifieddata})
>> >>>>
>> >>>>
>> >>>>
>> >>>> So I just tried to recompile Nifi using the Cloudera profile 5.5.2
>> but
>> >>>> compilation is failing:
>> >>>>
>> >>>>
>> >>>>
>> >>>> [ERROR] Failed to execute goal
>> >>>> org.apache.maven.plugins:maven-compiler-plugin:3.2:compile
>> (default-compile)
>> >>>> on project nifi-hive-processors: Compilation failure: Compilation
>> failure:
>> >>>>
>> >>>> [ERROR]
>> >>>> /home/matteo/git/nifi/nifi-nar-bundles/nifi-hive-bundle/nifi
>> -hive-processors/src/main/java/org/apache/hadoop/hive/ql/io/
>> orc/NiFiOrcUtils.java:[26,43]
>> >>>> error: package org.apache.hadoop.hive.ql.io.filters does not exist
>> >>>>
>> >>>> [ERROR]
>> >>>> /home/matteo/git/nifi/nifi-nar-bundles/nifi-hive-bundle/nifi
>> -hive-processors/src/main/java/org/apache/hadoop/hive/ql/io/
>> orc/OrcFlowFileWriter.java:[45,43]
>> >>>> error: package org.apache.hadoop.hive.ql.io.filters does not exist
>> >>>>
>> >>>> [ERROR]
>> >>>> /home/matteo/git/nifi/nifi-nar-bundles/nifi-hive-bundle/nifi
>> -hive-processors/src/main/java/org/apache/hadoop/hive/ql/io/
>> orc/OrcFlowFileWriter.java:[643,24]
>> >>>> error: cannot find symbol
>> >>>>
>> >>>> [ERROR] symbol:   class BloomFilterIO
>> >>>>
>> >>>> [ERROR] location: class TreeWriter
>> >>>>
>> >>>> [ERROR]
>> >>>> /home/matteo/git/nifi/nifi-nar-bundles/nifi-hive-bundle/nifi
>> -hive-processors/src/main/java/org/apache/hadoop/hive/ql/io/
>> orc/OrcFlowFileWriter.java:[645,30]
>> >>>> error: cannot find symbol
>> >>>>
>> >>>> [ERROR] symbol:   class BloomFilterIndex
>> >>>>
>> >>>> [ERROR] location: class OrcProto
>> >>>>
>> >>>> [ERROR]
>> >>>> /home/matteo/git/nifi/nifi-nar-bundles/nifi-hive-bundle/nifi
>> -hive-processors/src/main/java/org/apache/hadoop/hive/ql/io/
>> orc/OrcFlowFileWriter.java:[646,30]
>> >>>> error: cannot find symbol
>> >>>>
>> >>>> [ERROR] symbol:   class BloomFilter
>> >>>>
>> >>>> [ERROR] location: class OrcProto
>> >>>>
>> >>>> [ERROR]
>> >>>> /home/matteo/git/nifi/nifi-nar-bundles/nifi-hive-bundle/nifi
>> -hive-processors/src/main/java/org/apache/hadoop/hive/ql/io/
>> orc/NiFiOrcUtils.java:[450,32]
>> >>>> error: cannot find symbol
>> >>>>
>> >>>> [ERROR] symbol:   variable BloomFilterIO
>> >>>>
>> >>>> [ERROR] location: class NiFiOrcUtils
>> >>>>
>> >>>> [ERROR]
>> >>>> /home/matteo/git/nifi/nifi-nar-bundles/nifi-hive-bundle/nifi
>> -hive-processors/src/main/java/org/apache/hadoop/hive/ql/io/
>> orc/OrcFlowFileWriter.java:[200,20]
>> >>>> error: cannot find symbol
>> >>>>
>> >>>> [ERROR] symbol:   variable OrcUtils
>> >>>>
>> >>>> [ERROR] location: class OrcFlowFileWriter
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> Is there any way to get Nifi to work with Hive 1.1.0 and CDH 5.5.2?
>> >>>>
>> >>>>
>> >>>>
>> >>>> Thanks,
>> >>>>
>> >>>> Yari
>> >>>>
>> >>>>
>> >>>
>> >>>
>> >>
>> >
>>
>
>

Reply via email to