You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-user@hadoop.apache.org by Lars George <la...@worldlingo.com> on 2008/01/10 03:48:32 UTC

Hbase mapred classes question

Hi,

I have two questions for the mapred BuildTableIndex classes folks.

First, if I have 40 servers with about 32 regions per server, what would 
I set the mapper and reducers to?

And secondly, is it allowed to add new column values during the process? 
For example, if I read all rows and the column "contents:A" (for example 
row123.contents:A), analyze the data and then write out the result in 
"row123.contents:B", is that OK to do?

Thanks,
Lars

---
Lars George, CTO
WorldLingo


Re: Hbase mapred classes question

Posted by Lars George <la...@worldlingo.com>.
Hi Stack,

>> First, if I have 40 servers with about 32 regions per server, what 
>> would I set the mapper and reducers to?
>
> Coarsely, make as many maps as you have total regions (Assuming 
> TableInputFormat is in the mix; it splits on table regions) and make 
> the number of reducers equal to the amount of index shards you want 
> out the other end.  For example, you could have just one reducer 
> produce one index for all table content if table is small, etc.

But if we need to search it at the end while not producing one index, 
how would you handle this? Would you for example create ten indexes and 
then use a MultiReader (?) to search across all 10? And this also means 
obviously that I have to save those 10 indexes locally first to be able 
to search it, means I need the storage room for them as a total anyways. 
What advantage does that have? Is there a maximum size (apart from what 
the OS implies on the filesystem) for Lucene indexes that would affect that?

>> And secondly, is it allowed to add new column values during the 
>> process? For example, if I read all rows and the column "contents:A" 
>> (for example row123.contents:A), analyze the data and then write out 
>> the result in "row123.contents:B", is that OK to do?
>
> You mean add new content while indexing?  Yes.  If you don't mind some 
> of the added content ending up in the index...

I would add the same family but with a different label, and since the 
job maps a different label, they would not be indexed, right?

Thanks again for your help Stack!

Best regards,
Lars

Re: Hbase mapred classes question

Posted by stack <st...@duboce.net>.
Lars George wrote:
> Hi,
>
> I have two questions for the mapred BuildTableIndex classes folks.
>
> First, if I have 40 servers with about 32 regions per server, what 
> would I set the mapper and reducers to?

Coarsely, make as many maps as you have total regions (Assuming 
TableInputFormat is in the mix; it splits on table regions) and make the 
number of reducers equal to the amount of index shards you want out the 
other end.  For example, you could have just one reducer produce one 
index for all table content if table is small, etc.

>
> And secondly, is it allowed to add new column values during the 
> process? For example, if I read all rows and the column "contents:A" 
> (for example row123.contents:A), analyze the data and then write out 
> the result in "row123.contents:B", is that OK to do?

You mean add new content while indexing?  Yes.  If you don't mind some 
of the added content ending up in the index...

St.Ack


>
> Thanks,
> Lars
>
> ---
> Lars George, CTO
> WorldLingo
>