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

Ted Yu commented on HBASE-8258:
-------------------------------

[~jmhsieh]:
bq. I'd like to get this fixed without having to upgrade hadoop versions to a 
snapshot version.
Did you mean that we should wait for 2.0.4-alpha to come out ? I think for 
0.95, we should use 2.0.4-alpha which is to be released soon.

If we use 2.0.3-alpha, we would get (due to capacity-scheduler.xml missing in 
artifact):
https://issues.apache.org/jira/browse/HBASE-7904?focusedCommentId=13584497&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13584497

In case you haven't read comments from Siddharth, you can find them starting 
with this one :

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

That was how the HBaseConfiguration.merge() call in HBaseTestingUtility.java 
came about.

Changes in TestImportExport.java were to align with remaining tests in that 
file. The comment below would provide some more context:
https://issues.apache.org/jira/browse/HBASE-7904?focusedCommentId=13617700&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13617700

bq. vague statements "necessary configuration values" without explanation
I think you were referring to the following:
{code}
    // copy or add the necessary configuration values from the map reduce 
config to the hbase config
{code}
Such comments have been in TestImportExport. This command can show us the 
history:
{code}
$ svn blame 
hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestImportExport.java
 | grep 'necessary configurati'
{code}
For SecureBulkLoadEndpoint.java, here is the background:
Secure bulk loading needs to establish staging directory on hdfs. So it calls:
{code}
      fs = FileSystem.get(conf);
{code}
The conf above is an instance of CompoundConfiguration. NameNodeProxies would 
set up RPC engine by modifying conf.
This results in:
{code}
2013-03-25 22:36:19,493 ERROR [IPC Server handler 2 on 40900] 
access.SecureBulkLoadEndpoint$1(240): Failed to complete bulk load
java.lang.UnsupportedOperationException: Immutable Configuration
  at 
org.apache.hadoop.hbase.CompoundConfiguration.setClass(CompoundConfiguration.java:474)
  at org.apache.hadoop.ipc.RPC.setProtocolEngine(RPC.java:193)
  at 
org.apache.hadoop.hdfs.NameNodeProxies.createNNProxyWithClientProtocol(NameNodeProxies.java:249)
  at 
org.apache.hadoop.hdfs.NameNodeProxies.createNonHAProxy(NameNodeProxies.java:168)
  at 
org.apache.hadoop.hdfs.NameNodeProxies.createProxy(NameNodeProxies.java:129)
  at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:421)
  at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:388)
  at 
org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:125)
  at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2277)
  at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:86)
  at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2311)
  at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2293)
  at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:317)
  at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:163)
  at 
org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint$1.run(SecureBulkLoadEndpoint.java:224)
  at 
org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint$1.run(SecureBulkLoadEndpoint.java:218)
{code}
In 8258-v1-hadoop-2.0.txt, I tried to limit the scope of changes while 
satisfying requirement from hadoop 2.0
That is, clone a mutable Configuration (an HBaseConfiguration to be more exact) 
from the CompoundConfiguration and pass it to FileSystem.get().

I am open to discussion about proposed changes. I can upload the patch onto 
review board so that opinion on each change can be expressed better.

I am open to other proposals as well.
                
> Make mapreduce tests pass on hadoop2
> ------------------------------------
>
>                 Key: HBASE-8258
>                 URL: https://issues.apache.org/jira/browse/HBASE-8258
>             Project: HBase
>          Issue Type: Bug
>          Components: mapreduce
>            Reporter: stack
>            Priority: Blocker
>             Fix For: 0.95.1
>
>         Attachments: 8258-plain.txt, 8258-v1-hadoop-2.0.txt
>
>
> HBASE-7904 was a first attempt at making this work but it got lost in the 
> weeds.
> This is a new attempt at making hbase mapreduce jobs run on hadoop2 (w/o 
> breaking mapreduce on hadoop1)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to