Our Community is getting an upgrade! To get everything ready for the relaunch, we’ll be placing the site in read-only mode starting September 21st. We really appreciate your understanding while we get things set up behind the scenes. Catch up on all the exciting details about the move here. Need help or have questions? Drop us a line at [email protected]
Created on 07-19-201612:26 AM - edited on 04-21-202605:30 AM by GrazittiAPI
In Apache NiFi 1.2, there are processors for Reading Hive data via HiveQL and Storing to Hive via HiveQL. These processors are SelectHiveQL and PutHiveQL.
Configuring a HiveQL processor is simple, you need to enter your query and pick either AVRO or CSV format. AVRO is a better fit, I am waiting for ORC. Most important you need to set a Connection Pool to connect to your cluster.
You can just enter a regular SQL that you are doing in Hive.
For Hive to work, you must setup a HiveConnectionPool Controller Service. After configuration you will need to enable that and then you can enable your processor(s). For connecting to Hive on the Sandbox, set the Database Connection URL: jdbc://hive2://localhost:10000/default. ForHive Configuration Resources: you set the hive configuration files. You can set the Database Userand Password of the user that has access you require for Hive. For documentation on the HiveConnectionPool.
For a PutHiveQL, you just need to set a connection pool, batch size for updates and a character set. The defaults for this are ok.
CAVEAT: Once you have it set make sure you have all the relationships terminated somewhere either in a Sink or with auto terminate.
Thanks for this helpful article. I'm a little bit confused about how PutHiveQL can receive a HQL DDL/DML command. Do you have an example of a flow in which a PutHiveQL process receives a command from another process?