hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Heng Chen (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-14662) Fix NPE in HFileOutputFormat2
Date Thu, 22 Oct 2015 00:24:27 GMT

    [ https://issues.apache.org/jira/browse/HBASE-14662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14968242#comment-14968242

Heng Chen commented on HBASE-14662:

In other words, if no table, does it make sense that the creation of a record writer should

This table is only help to locate region,  and the region location info is only help to do
locality on HDFS in StoreFile.Writer,  
it is NOT necessary in local mode. 

So no matter this table exist or not,  record writer should succeed.

> Fix NPE in HFileOutputFormat2
> -----------------------------
>                 Key: HBASE-14662
>                 URL: https://issues.apache.org/jira/browse/HBASE-14662
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Heng Chen
>         Attachments: HBASE-14662.patch
> When i dig in HBASE-14659,  i run testWritingPEData. There are a lot of NPE thrown and
testcase run a long time. 
> The reason is that, in {{HFileOutputFormat2}}
> {code}
>             HRegionLocation loc = null;
>             String tableName = conf.get(OUTPUT_TABLE_NAME_CONF_KEY);
>             try (Connection connection = ConnectionFactory.createConnection(conf);
>                    RegionLocator locator =
>                      connection.getRegionLocator(TableName.valueOf(tableName))) {
>               loc = locator.getRegionLocation(rowKey);
>             } catch (Throwable e) {
>               LOG.warn("there's something wrong when locating rowkey: " +
>                 Bytes.toString(rowKey), e);
>               loc = null;
>             }
> {code}
> Because we did not set {{OUTPUT_TABLE_NAME_CONF_KEY}}, So tableName is null,  So NPE
> And connection will be created which RegionLocator use to find region location. Because
zk is not start in this testcase, So it will retry many times. 
> But all this actions are not required,  we can skip create connection by check whether
tableName is null

This message was sent by Atlassian JIRA

View raw message