I've been testing the Hive JDBC client and I think I've come a across a few
bugs, but I wanted to double check my understanding of the expected behavior
before opening JIRAs. I'm running the hive server on my namenode host and a
Hive JDBC test on a separate machine, as a different user. In my tests I
create a table, load data into it, query it and finally drop the table, very
similar to how the JDBC example does on the Hive wiki.
All works well except the following:
- The LOAD DATA LOCAL INPATH 'foo.txt' command causes the hive server to
look for foo.txt on it's local filesystem, instead receiving the file from
the JDBC client's filesystem. I'd expect that the functionality would be
similar to that of the hive shell, where the file is submitted from the
- The permissions of the Hive tables created are bound to the user running
the Hive server, as opposed to the permissions of the JDBC user.
Are these bugs or features? I suspect if I ran the Hive server on the same
machine as my JDBC client, things would work as expected. Is that the
intended usage of the Hive server? One Hive server per JDBC client on each
client node? I couldn't find much documentation on the Hive server, so it's
possible I'm using it in ways other than was intented.