[
https://issues.apache.org/jira/browse/HBASE-4297?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13882733#comment-13882733
]
Jan Van Besien commented on HBASE-4297:
---------------------------------------
I think this issue is actually not fixed in all code paths. There are still
overloaded initTableMapperJob methods in TableMapReduceUtil that do not merge
the configuration.
I can still reproduce this issue with hbase-0.94.6.
> TableMapReduceUtil overwrites user supplied options
> ---------------------------------------------------
>
> Key: HBASE-4297
> URL: https://issues.apache.org/jira/browse/HBASE-4297
> Project: HBase
> Issue Type: Bug
> Components: mapreduce
> Affects Versions: 0.90.4
> Reporter: Jan Lukavsky
> Fix For: 0.90.5
>
> Attachments: HBASE-4297.patch
>
>
> Job configuration is overwritten by hbase-default and hbase-site in
> TableMapReduceUtil.initTable(Mapper|Reducer)Job, causing unexpected behavior
> in the following code:
> {noformat}
> Configuration conf = HBaseConfiguration.create();
> // change keyvalue size
> conf.setInt("hbase.client.keyvalue.maxsize", 20971520);
> Job job = new Job(conf, ...);
> TableMapReduceUtil.initTableMapperJob(...);
> // the job doesn't have the option changed, uses it from hbase-site or
> hbase-default
> job.submit();
> {noformat}
> Although in this case it could be fixed by moving the set() after
> initTableMapperJob(), in case where user wants to change some option using
> GenericOptionsParser and -D this is impossible, making this cool feature
> useless.
> In the 0.20.x era this code behaved as expected. The solution of this problem
> should be that we don't overwrite the options, but just read them if they are
> missing.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)