Is this on Hive CLI, or using HiveServer2?

Can you run "explain select in_file('a', './testfile') from a;" from both Hive 
1.0.0 and hive 1.1.0 and see if they look different?
One possibile thing that might be happening here is that in Hive-1.1.0, this 
query is being executed without the need for a map/reduce job, in which case 
the working directory for the query is probably the local working directory 
from when Hive was invoked. I don't think the Distributed Cache will be working 
correctly in this case, because the UDF is not running in a map/reduce task.

If a map-reduce job is kicked off for the query and the UDF is running in this 
m/r task environment, then the distributed cache will likely be working fine.

If there is a way to ensure the query with your UDF runs as part of a 
map/reduce job this may do the trick.  Adding an order-by will do it, but maybe 
other people on this list may have a better way of making this happen.



On May 7, 2015, at 3:28 AM, Zsolt Tóth 
<[email protected]<mailto:[email protected]>> wrote:

Does this error occur for anyone else? It might be a serious issue.

2015-05-05 13:59 GMT+02:00 Zsolt Tóth 
<[email protected]<mailto:[email protected]>>:
Hi,

I've just upgraded to Hive 1.1.0 and it looks like there is a problem with the 
distributed cache.
I use ADD FILE, then an UDF that wants to read the file. The following syntax 
works in Hive 1.0.0 but Hive can't find the file in 1.1.0 (testfile exists on 
hdfs, the built-in udf in_file is just an example):

add file hdfs:///tmp/testfile;
select in_file('a', './testfile') from a;

However, it works with the local path:

select in_file('a', 
'/tmp/462e6854-10f3-4a68-a290-615e6e9d60ff_resources/testfile') from a;

When I try to list the files in the directory "./" in Hive 1.1.0, it lists the 
cluster's root directory. It looks like the working directory changed in Hive 
1.1.0. Is this intended? If so, how can I access the files in the distributed 
cache added with ADD FILE?

Regards,
Zsolt


Reply via email to