You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "wujinhu (JIRA)" <ji...@apache.org> on 2018/11/28 02:48:00 UTC

[jira] [Comment Edited] (HADOOP-15953) AliyunOSS: make AliyunCredentialsProvider compatible with the required constructor

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

wujinhu edited comment on HADOOP-15953 at 11/28/18 2:47 AM:
------------------------------------------------------------

*Testing result(set fs.oss.credentials.provider = org.apache.hadoop.fs.aliyun.oss.AliyunCredentialsProvider):*

[INFO] -------------------------------------------------------
 [INFO] T E S T S
 [INFO] -------------------------------------------------------
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.TestAliyunCredentials
 [INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.926 s - in org.apache.hadoop.fs.aliyun.oss.TestAliyunCredentials
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.TestAliyunOSSInputStream
 [INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 13.169 s - in org.apache.hadoop.fs.aliyun.oss.TestAliyunOSSInputStream
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContext
 [INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.53 s - in org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContext
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextStatistics
 [INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.185 s - in org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextStatistics
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextCreateMkdir
 [INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 17.952 s - in org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextCreateMkdir
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextMainOperations
 [WARNING] Tests run: 68, Failures: 0, Errors: 0, Skipped: 4, Time elapsed: 122.761 s - in org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextMainOperations
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextUtil
 [INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.569 s - in org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextUtil
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextURI
 [WARNING] Tests run: 17, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 47.299 s - in org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextURI
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractSeek
 [INFO] Tests run: 19, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 22.562 s - in org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractSeek
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractMkdir
 [INFO] Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 21.244 s - in org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractMkdir
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractDelete
 [INFO] Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 13.418 s - in org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractDelete
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractGetFileStatus
 [INFO] Tests run: 18, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 33.887 s - in org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractGetFileStatus
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractDistCp
 [INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 79.85 s - in org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractDistCp
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractRename
 [INFO] Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 18.689 s - in org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractRename
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractRootDir
 [INFO] Tests run: 9, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 14.397 s - in org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractRootDir
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractCreate
 [WARNING] Tests run: 11, Failures: 0, Errors: 0, Skipped: 2, Time elapsed: 15.166 s - in org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractCreate
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractOpen
 [INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.265 s - in org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractOpen
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.yarn.TestOSS
 [INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.177 s - in org.apache.hadoop.fs.aliyun.oss.yarn.TestOSS
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.yarn.TestOSSMiniYarnCluster
 [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 11.154 s - in org.apache.hadoop.fs.aliyun.oss.yarn.TestOSSMiniYarnCluster
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.TestAliyunOSSFileSystemStore
 [INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 17.35 s - in org.apache.hadoop.fs.aliyun.oss.TestAliyunOSSFileSystemStore
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.TestAliyunOSSBlockOutputStream
 [INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 112.125 s - in org.apache.hadoop.fs.aliyun.oss.TestAliyunOSSBlockOutputStream
 [INFO] Running org.apache.hadoop.fs.aliyun.oss.TestAliyunOSSFileSystemContract
 [INFO] Tests run: 50, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 64.927 s - in org.apache.hadoop.fs.aliyun.oss.TestAliyunOSSFileSystemContract
 [INFO]
 [INFO] Results:
 [INFO]
 [WARNING] Tests run: 268, Failures: 0, Errors: 0, Skipped: 7
 [INFO]


was (Author: wujinhu):
Testing result(set fs.oss.credentials.provider = org.apache.hadoop.fs.aliyun.oss.AliyunCredentialsProvider):

[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running org.apache.hadoop.fs.aliyun.oss.TestAliyunCredentials
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.926 s - in org.apache.hadoop.fs.aliyun.oss.TestAliyunCredentials
[INFO] Running org.apache.hadoop.fs.aliyun.oss.TestAliyunOSSInputStream
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 13.169 s - in org.apache.hadoop.fs.aliyun.oss.TestAliyunOSSInputStream
[INFO] Running org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContext
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.53 s - in org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContext
[INFO] Running org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextStatistics
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.185 s - in org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextStatistics
[INFO] Running org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextCreateMkdir
[INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 17.952 s - in org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextCreateMkdir
[INFO] Running org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextMainOperations
[WARNING] Tests run: 68, Failures: 0, Errors: 0, Skipped: 4, Time elapsed: 122.761 s - in org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextMainOperations
[INFO] Running org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextUtil
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.569 s - in org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextUtil
[INFO] Running org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextURI
[WARNING] Tests run: 17, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 47.299 s - in org.apache.hadoop.fs.aliyun.oss.fileContext.TestOSSFileContextURI
[INFO] Running org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractSeek
[INFO] Tests run: 19, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 22.562 s - in org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractSeek
[INFO] Running org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractMkdir
[INFO] Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 21.244 s - in org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractMkdir
[INFO] Running org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractDelete
[INFO] Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 13.418 s - in org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractDelete
[INFO] Running org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractGetFileStatus
[INFO] Tests run: 18, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 33.887 s - in org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractGetFileStatus
[INFO] Running org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractDistCp
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 79.85 s - in org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractDistCp
[INFO] Running org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractRename
[INFO] Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 18.689 s - in org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractRename
[INFO] Running org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractRootDir
[INFO] Tests run: 9, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 14.397 s - in org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractRootDir
[INFO] Running org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractCreate
[WARNING] Tests run: 11, Failures: 0, Errors: 0, Skipped: 2, Time elapsed: 15.166 s - in org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractCreate
[INFO] Running org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractOpen
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.265 s - in org.apache.hadoop.fs.aliyun.oss.contract.TestAliyunOSSContractOpen
[INFO] Running org.apache.hadoop.fs.aliyun.oss.yarn.TestOSS
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.177 s - in org.apache.hadoop.fs.aliyun.oss.yarn.TestOSS
[INFO] Running org.apache.hadoop.fs.aliyun.oss.yarn.TestOSSMiniYarnCluster
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 11.154 s - in org.apache.hadoop.fs.aliyun.oss.yarn.TestOSSMiniYarnCluster
[INFO] Running org.apache.hadoop.fs.aliyun.oss.TestAliyunOSSFileSystemStore
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 17.35 s - in org.apache.hadoop.fs.aliyun.oss.TestAliyunOSSFileSystemStore
[INFO] Running org.apache.hadoop.fs.aliyun.oss.TestAliyunOSSBlockOutputStream
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 112.125 s - in org.apache.hadoop.fs.aliyun.oss.TestAliyunOSSBlockOutputStream
[INFO] Running org.apache.hadoop.fs.aliyun.oss.TestAliyunOSSFileSystemContract
[INFO] Tests run: 50, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 64.927 s - in org.apache.hadoop.fs.aliyun.oss.TestAliyunOSSFileSystemContract
[INFO]
[INFO] Results:
[INFO]
[WARNING] Tests run: 268, Failures: 0, Errors: 0, Skipped: 7
[INFO]

> AliyunOSS: make AliyunCredentialsProvider compatible with the required constructor
> ----------------------------------------------------------------------------------
>
>                 Key: HADOOP-15953
>                 URL: https://issues.apache.org/jira/browse/HADOOP-15953
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: fs/oss
>    Affects Versions: 2.10.0, 3.2.0, 2.9.2, 3.0.3, 3.3.0, 3.1.2
>            Reporter: wujinhu
>            Assignee: wujinhu
>            Priority: Major
>         Attachments: HADOOP-15953.001.patch, HADOOP-15953.002.patch
>
>
> Hadoop aliyun module uses AliyunCredentialsProvider as default CredentialsProvider if user do not set fs.oss.credentials.provider. However, if user set fs.oss.credentials.provider to org.apache.hadoop.fs.aliyun.oss.AliyunCredentialsProvider, exception will be thrown like below:
> {code:java}
> java.io.IOException: org.apache.hadoop.fs.aliyun.oss.AliyunCredentialsProvider constructor exception. A class specified in fs.oss.credentials.provider must provide an accessible constructor accepting URI and Configuration, or an accessible default constructor.
>  at org.apache.hadoop.fs.aliyun.oss.AliyunOSSUtils.getCredentialsProvider(AliyunOSSUtils.java:131)
>  at org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystemStore.initialize(AliyunOSSFileSystemStore.java:154)
>  at org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem.initialize(AliyunOSSFileSystem.java:344)
>  at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3302)
>  at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:124)
>  at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:3351)
>  at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:3319)
>  at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:479)
>  at org.apache.hadoop.fs.contract.AbstractBondedFSContract.init(AbstractBondedFSContract.java:72)
>  at org.apache.hadoop.fs.contract.AbstractFSContractTestBase.setup(AbstractFSContractTestBase.java:177)
>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  at java.lang.reflect.Method.invoke(Method.java:498)
>  at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>  at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>  at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>  at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
>  at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>  at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
>  at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
>  at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
>  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>  at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.NoSuchMethodException: org.apache.hadoop.fs.aliyun.oss.AliyunCredentialsProvider.<init>()
>  at java.lang.Class.getConstructor0(Class.java:3082)
>  at java.lang.Class.getDeclaredConstructor(Class.java:2178)
>  at org.apache.hadoop.fs.aliyun.oss.AliyunOSSUtils.getCredentialsProvider(AliyunOSSUtils.java:125)
>  ... 23 more
> {code}
> Because AliyunCredentialsProvider does not have corresponding constructor.
> {code:java}
> public class AliyunCredentialsProvider implements CredentialsProvider {
>   private Credentials credentials = null;
>   public AliyunCredentialsProvider(Configuration conf) throws IOException {
> --------------------------------------------------
> try {
>   credentials =
>       (CredentialsProvider)credClass.getDeclaredConstructor(
>           URI.class, Configuration.class).newInstance(uri, conf);
> } catch (NoSuchMethodException | SecurityException e) {
>   credentials =
>       (CredentialsProvider)credClass.getDeclaredConstructor()
>       .newInstance();
> }
> {code}
>  
> *Although the documentation says you should provide a `specified class must provide an accessible constructor accepting java.net.URI and org.apache.hadoop.conf.Configuration` if you set this configuration*, we should make 
> *AliyunCredentialsProvider* compatible with this.
> {code:java}
> <property>
>   <name>fs.oss.credentials.provider</name>
>   <description>
>     Class name of a credentials provider that implements
>     com.aliyun.oss.common.auth.CredentialsProvider. Omit if using access/secret keys
>     or another authentication mechanism. The specified class must provide an
>     accessible constructor accepting java.net.URI and
>     org.apache.hadoop.conf.Configuration, or an accessible default constructor.
>   </description>
> </property>
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org