What happens when you change the colNames parameter to col1val,col2val? The line should be:
agent.sinks.hbaseSink.serializer.colNames=col1val,col2val On Thu, Jul 31, 2014 at 1:45 AM, Tinte garcia, Miguel Angel < miguel.ti...@atos.net> wrote: > Hi Jonathan, > > My current configuration is the following: > > agent.sinks.hbaseSink.type=hbase > > agent.sinks.hbaseSink.channel=memoryChannel > > agent.sinks.hbaseSink.table=hbase_table > > # filling first column > > agent.sinks.hbaseSink.columnFamily=column1 > > agent.sinks.hbaseSink.batchSize = 5000 > > # splitting input parameters > > > agent.sinks.hbaseSink.serializer=org.apache.flume.sink.hbase.RegexHbaseEventSerializer > > agent.sinks.hbaseSink.serializer.regex=^[^,]+,(.+),(.+)$ > > agent.sinks.hbaseSink.serializer.colNames=col1val > > # filling second column > > #agent.sinks.hbaseSink.columnFamily=column2 > > # splitting input parameters > > > #agent.sinks.hbaseSink.serializer=org.apache.flume.sink.hbase.RegexHbaseEventSerializer > > #agent.sinks.hbaseSink.serializer.regex=^[^,]+,(.+),(.+)$ > > #agent.sinks.hbaseSink.serializer.colNames=col2val > > > > As you can see above, I have only been able to put one colName into a > columnFamily, the second declaration commented didn’t work. The flume event > is generated to store in the HBase table as a POST method with the next > information: > > > http://localhost:8080/flumeEvent/rest/data/inject?colval11=1&colval2=005&colval3=test > > > With the following content: “This is a test for different columns” > > > > Thanks again > > > > > > *From:* Jonathan Natkins [mailto:na...@streamsets.com] > *Sent:* Thursday, July 31, 2014 12:10 AM > > *To:* user@flume.apache.org > *Subject:* Re: Flume to Hbase columns with regexp > > > > Hi Miguel, > > > > What does your configuration look like after you made the initial changes? > As far as I can tell, the HbaseSink only has the ability to load into one > column family, so declaring two of them probably won't help. > > > > The fact that you're getting different values in the same column leads me > to believe that your column values are split across multiple events. Is > that accurate? What did the event that produced two values in one column > look like? > > > > Thanks, > > Natty > > > > On Wed, Jul 30, 2014 at 2:10 AM, Tinte garcia, Miguel Angel < > miguel.ti...@atos.net> wrote: > > Hi Jonathan, > > Thanks for your comments below. This is what I have been able to do so far > (result copied from hbasexplorer): > > *rowkey - timestamp* > > *column1* > > *column2* > > *column3* > > 1406706418563-47PT7nzRvW-0 > > Show 1 Timestamp > > col1val: firstPart > col2val: This is the first part of the result > > > > > > > > Therefore, I have been able to split the different colNval tokens (which > is great) but I am still unable to store these split tokens into the > different hbase table columns. I have tried it declaring two columnFamily > and one value in the subsequent colNames parameter, but it didn’t work. > > Is it possible inserting these values into different columns? > > > > Thanks again > > > > > > *From:* Jonathan Natkins [mailto:na...@streamsets.com] > *Sent:* Tuesday, July 29, 2014 1:15 AM > *To:* user@flume.apache.org > *Subject:* Re: Flume to Hbase columns with regexp > > > > Alright, a couple things: > > > > 1) It looks like my intuition was correct. Changing your config to be > colNames from columns seems to get things working. > > > > 2) Based on the description of what you're trying to do, it looks like > your regex might be slightly off. For example, if I had a row: > > > > familyName,col1val,col2val > > > > Your regex will result in column1 containing 'familyName', and column2 > containing 'col1val,col2val', which I don't think is what you're trying to > do. Probably you want to use this regex, or something like it: > > > > ^[^,]+,(.+),(.+)$ > > > > This regex will result in column1 containing 'col1val', column2 containing > 'col2val', and the first value (which appears to be the family name) being > thrown away. Is this what you were trying to do? > > > > As an aside, the mechanics of the RegexHbaseEventSerializer are to take > the matching groups and map those to the list of column names defined by > the colNames config parameter. If you want to toss any data away, just make > sure it's not within a set of parentheses. > > > > Let me know if you have any more questions, or if you have trouble getting > this to work. > > > > Thanks! > > Natty > > > > On Mon, Jul 28, 2014 at 3:48 PM, Jonathan Natkins <na...@streamsets.com> > wrote: > > I haven't tested this myself, but a quick look at the code suggests that > your column name specification may be configured incorrectly. It looks like > it should be: > > > > agent.sinks.hbaseSink.serializer.colNames = column1,column2 > > > > I'm trying this out myself, though, so if I find something definitive, > I'll let you know. > > > > On Mon, Jul 28, 2014 at 4:19 AM, Tinte garcia, Miguel Angel < > miguel.ti...@atos.net> wrote: > > Hi, > > I am sending a Flume event to insert some information into a concrete > HBase table. My flume conf.properties looks like this: > > agent.sinks.hbaseSink.table=table_name > > agent.sinks.hbaseSink.columnFamily=idColumn > > > agent.sinks.hbaseSink.serializer=org.apache.flume.sink.hbase.RegexHbaseEventSerializer > > agent.sinks.hbaseSink.serializer.regex=^([^,]+),(.+)$ > > agent.sinks.hbaseSink.serializer.columns = column1,column2 > > > > Basically, what I am trying to do is splitting the input values into three > different columns: idColumn,column1,column2 > > With this configuration, no error is returned but no input is recorded > into the table. Any idea about what am I doing wrong? > > > > Thanks in advance > > > > > > > > > > > > > > >