hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kazuki Ohta (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HBASE-3145) hBase importtsv fails when the line contains no data.
Date Fri, 22 Oct 2010 20:00:15 GMT

     [ https://issues.apache.org/jira/browse/HBASE-3145?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Kazuki Ohta updated HBASE-3145:
-------------------------------

    Status: Patch Available  (was: Open)

I've fixed this issue by changing the parser to throw BadTsvLineException for invalid line.
And also added more robustness by adding row key availability check.

Could you check this patch?

> hBase importtsv fails when the line contains no data.
> -----------------------------------------------------
>
>                 Key: HBASE-3145
>                 URL: https://issues.apache.org/jira/browse/HBASE-3145
>             Project: HBase
>          Issue Type: Bug
>          Components: util
>    Affects Versions: 0.89.20100924
>         Environment: Linux (CDH3)
>            Reporter: Kazuki Ohta
>
> I've tried to import tsv data by using importtsv tools. But the task failed with the
following errors.
> 10/10/23 02:56:52 INFO mapred.JobClient: Task Id : attempt_201010222300_0036_m_000016_2,
Status : FAILED
> java.lang.IllegalArgumentException: No columns to insert
>         at org.apache.hadoop.hbase.client.HTable.validatePut(HTable.java:682)
>         at org.apache.hadoop.hbase.client.HTable.doPut(HTable.java:544)
>         at org.apache.hadoop.hbase.client.HTable.put(HTable.java:535)
>         at org.apache.hadoop.hbase.mapreduce.TableOutputFormat$TableRecordWriter.write(TableOutputFormat.java:104)
>         at org.apache.hadoop.hbase.mapreduce.TableOutputFormat$TableRecordWriter.write(TableOutputFormat.java:65)
>         at org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.write(MapTask.java:523)
>         at org.apache.hadoop.mapreduce.TaskInputOutputContext.write(TaskInputOutputContext.java:80)
>         at org.apache.hadoop.hbase.mapreduce.ImportTsv$TsvImporter.map(ImportTsv.java:241)
>         at org.apache.hadoop.hbase.mapreduce.ImportTsv$TsvImporter.map(ImportTsv.java:184)
>         at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
>         at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:639)
>         at org.apache.hadoop.mapred.MapTask.run(MapTask.java:315)
>         at org.apache.hadoop.mapred.Child$4.run(Child.java:217)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at javax.security.auth.Subject.doAs(Subject.java:396)
>         at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1063)
>         at org.apache.hadoop.mapred.Child.main(Child.java:211)
> If the line contains invalid data, the parser should throw BadTsvLineException. But unfortunately,
the codepath throws IllegalArgumentException for the empty line, and that wasn't caught in
the map() function.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message