A demux parser is mapped to HBase in this form:

ClassName/DataType = TableName
ReducerType = Column Family.

Row Key is compose of:

Time Partition/Primary Key/Timestamp

Example:

SystemMetrics is emitted by SystemMetrics adaptor.  In 
org.apache.hadoop.chukwa.extraction.demux.processor.mapper.SystemMetrics demux 
parser, table name is mapped to "SystemMetrics".  When building a record for 
"network", the data is extracted from chukwa chunk, and set the reduceType to: 
"network".  The data has a field called "RxBytes", and it will get written to 
Hbase table: SystemMetrics, column family: network, and column name: "RxBytes".

This is a hack to ensure demux parser is backward compatible with mapreduce on 
sequence file.  We might want to redesign this at some point in the future.

Regards,
Eric


On 6/13/11 12:11 PM, "Bill Graham" <[email protected]> wrote:

Glad to hear I'm not the only one slow on Monday mornings...

Linking the processor name to the table name as a default makes sense, but we 
should build in a way to override that in a config. Same thing for the column 
family naming.

Also, how does the datatype get represented in HBase? I'm trying to understand 
how multiple datatypes would be stored and queried in the same system.



On Mon, Jun 13, 2011 at 9:53 AM, Eric Yang <[email protected]> wrote:
Hi Bill,

Must be early Monday morning.  I was reading the javadoc,but misread it.  
Please discard my proposal.
The Schema should be:

TableName: TsProcessor
ColumnFamily: log

Regards,
Eric


On 6/13/11 9:47 AM, "Bill Graham" <[email protected] 
<http://[email protected]> > wrote:

> TsProcessor.time.regex.[some_data_type] maps to ColumnFamily

Eric, you lost me here. Why does the regular expression map to a column family?


On Mon, Jun 13, 2011 at 9:38 AM, Eric Yang <[email protected] 
<http://[email protected]> > wrote:
Hbase schema is defined by annotation in demux  parsers.  For TsProcessor, it 
is a generic parser, it is not targeting a specific data type.  HBaseWriter is 
currently not handling this generic parser well.
The current implementation is writing data processed by TsProcessor to:

TableName: TsProcessor
ColumnFamily: log

It may be possible to add handling of TsProcessor with this specification:

Chunk DataType maps to TableName
TsProcessor.time.regex.[some_data_type] maps to ColumnFamily

If this is reasonable implementation, please file a jira.  Thanks

Regards,
Eric


On 6/13/11 8:56 AM, "Bill Graham" <[email protected] 
<http://[email protected]>  <http://[email protected]> > wrote:

Apologies, but the documentation around processor configs is somewhat out dated 
(CHUKWA-538).

For one, TsProcessor is not the default. DefaultProcessor is. You can change 
this with the chukwa.demux.mapper.default.processor setting.

https://issues.apache.org/jira/browse/CHUKWA-473

Also, ithe docs don't include some enhancements to TsProcessor to make it more 
multi-purpose. It can handle any data type passed to it as long as it can parse 
out the date. See this JIRA for how to override the default or the per-dataType 
date parsing logic:

https://issues.apache.org/jira/browse/CHUKWA-472


Eric is best to field the HBase schema question.


On Mon, Jun 13, 2011 at 1:57 AM, DKN <[email protected] 
<http://[email protected]>  <http://[email protected]> > wrote:
I am just wondering if TsProcessor is a generic de-mux processor ? Is there a
documentation for what is TsProcessor and if there is a customizable way of
using it for generic data types defined ? I wanted to extend a demux
processor for log processing and came to know that TsProcessor is default in
this wiki link : http://wiki.apache.org/hadoop/DemuxModification

I also couldn't see this table definition for HBase (in the hbase.schema).
Where can I find the schema that I can create the table definitions in HBase
..

Thanks in advance.

Cheers, DKN

--
View this message in context: 
http://apache-chukwa.679492.n3.nabble.com/How-to-use-TsProcessor-tp3058006p3058006.html
Sent from the Chukwa - Users mailing list archive at Nabble.com.






Reply via email to