HiveServer2 uses Thrift SASL transport by default. AFAIK, Thrift doesn't support sasl transport for perl. In order to connect from a perl thrift client, you need to turn off the SASL in HiveServer2. This can be done by setting a property hive.server2.authentication to NOSASL in the hive-site.xml. Note that with this change, all other clients like JDBC applications and beeline, will also need to make non-sasl connection to HiveServer2. The JDBC connection URL should be jdbc:hive2://<host>:<port>/default;auth=noSasl
thanks Prasad On Tue, May 14, 2013 at 3:35 AM, Dave Cardwell <d...@davecardwell.co.uk>wrote: > I wrote a few reporting scripts in Perl that connected to Hive via the > Thrift interface. > > Since we upgraded CDH to 4.2.0 and hiveserver2 was installed (with Hive > 0.10.0) the scripts no longer ran due to the API changes. > > I regenerated the Perl modules from the .thrift files and have tried to > translate the Java examples I’ve found online, but cannot for the life of > me get it working with the new interface. > > The Java examples seem to use a TOpenSessionReq class but I cannot find > this anywhere in the generated Perl modules. If I try to skip that part and > go straight to $client->OpenSession() without an argument, the TCLIService > module itself complains that it cannot create a TOpenSessionResp object > because the class is not loaded. > > I have attached example code. Can anyone advise me on how to get past this > block? > > -- > Best wishes, > Dave Cardwell. > > http://davecardwell.co.uk/ >