On 25 Nov 2013, at 11:50, Sreenath wrote:

hi all,

We are using hive for Ad-hoc querying and have a hive table which is
partitioned on two fields (date,id).Now for each date there are around 1400 ids so on a single day around that many partitions are added.The actual
data is residing in s3. now the issue we are facing is suppose we do a
select count(*) for a month from the table then it takes quite a long
amount of time(approx : 1hrs 52 min) just to launch the map reduce job. when i ran the query in hive verbose mode i can see that its spending this
time actually deciding how many number of mappers to spawn(calculating
splits). Is there any means by which i can reduce this lag time for the
launch of map-reduce job.

this is one of the log messages that is being logged during this lag time

13/11/19 07:11:06 INFO mapred.FileInputFormat: Total input paths to process
: 1
13/11/19 07:11:06 WARN httpclient.RestS3Service: Response
'/Analyze%2F2013%2F10%2F03%2F465' - Unexpected response code 404, expected
200
Anyone has a quick fix for this ?

So we're talking about 30 days x 1400 ids x number of files per ID (usually more than 1)

this is at least 42,000 file paths, and (regardless of the error you posted) hive won't perform well on this many files when making the query.

It is IMHO a typical case of over-partitioning. I'd use RCFile and keep IDs unpartitioned.

What volume of data are we talking about here? What's the volume of the biggest ID for a day, and the average?

David

Reply via email to