Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-7037

Using distcp to copy data from insecure to secure cluster via hftp doesn't work (branch-2 only)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Patch Available
    • Major
    • Resolution: Unresolved
    • 2.6.0
    • None
    • security, tools

    Description

      This is a branch-2 only issue since hftp is only supported there.

      Issuing "distcp hftp://<insecureCluster> hdfs://<secureCluster>" gave the following failure exception:

      14/09/13 22:07:40 INFO tools.DelegationTokenFetcher: Error when dealing remote token:
      java.io.IOException: Error when dealing remote token: Internal Server Error
      	at org.apache.hadoop.hdfs.tools.DelegationTokenFetcher.run(DelegationTokenFetcher.java:375)
      	at org.apache.hadoop.hdfs.tools.DelegationTokenFetcher.getDTfromRemote(DelegationTokenFetcher.java:238)
      	at org.apache.hadoop.hdfs.web.HftpFileSystem$2.run(HftpFileSystem.java:252)
      	at org.apache.hadoop.hdfs.web.HftpFileSystem$2.run(HftpFileSystem.java:247)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at javax.security.auth.Subject.doAs(Subject.java:415)
      	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1554)
      	at org.apache.hadoop.hdfs.web.HftpFileSystem.getDelegationToken(HftpFileSystem.java:247)
      	at org.apache.hadoop.hdfs.web.TokenAspect.ensureTokenInitialized(TokenAspect.java:140)
      	at org.apache.hadoop.hdfs.web.HftpFileSystem.addDelegationTokenParam(HftpFileSystem.java:337)
      	at org.apache.hadoop.hdfs.web.HftpFileSystem.openConnection(HftpFileSystem.java:324)
      	at org.apache.hadoop.hdfs.web.HftpFileSystem$LsParser.fetchList(HftpFileSystem.java:457)
      	at org.apache.hadoop.hdfs.web.HftpFileSystem$LsParser.getFileStatus(HftpFileSystem.java:472)
      	at org.apache.hadoop.hdfs.web.HftpFileSystem.getFileStatus(HftpFileSystem.java:501)
      	at org.apache.hadoop.fs.Globber.getFileStatus(Globber.java:57)
      	at org.apache.hadoop.fs.Globber.glob(Globber.java:248)
      	at org.apache.hadoop.fs.FileSystem.globStatus(FileSystem.java:1623)
      	at org.apache.hadoop.tools.GlobbedCopyListing.doBuildListing(GlobbedCopyListing.java:77)
      	at org.apache.hadoop.tools.CopyListing.buildListing(CopyListing.java:81)
      	at org.apache.hadoop.tools.DistCp.createInputFileListing(DistCp.java:342)
      	at org.apache.hadoop.tools.DistCp.execute(DistCp.java:154)
      	at org.apache.hadoop.tools.DistCp.run(DistCp.java:121)
      	at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
      	at org.apache.hadoop.tools.DistCp.main(DistCp.java:390)
      14/09/13 22:07:40 WARN security.UserGroupInformation: PriviledgedActionException as:hadoopuser@xyz.COM (auth:KERBEROS) cause:java.io.IOException: Unable to obtain remote token
      14/09/13 22:07:40 ERROR tools.DistCp: Exception encountered 
      java.io.IOException: Unable to obtain remote token
      	at org.apache.hadoop.hdfs.tools.DelegationTokenFetcher.getDTfromRemote(DelegationTokenFetcher.java:249)
      	at org.apache.hadoop.hdfs.web.HftpFileSystem$2.run(HftpFileSystem.java:252)
      	at org.apache.hadoop.hdfs.web.HftpFileSystem$2.run(HftpFileSystem.java:247)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at javax.security.auth.Subject.doAs(Subject.java:415)
      	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1554)
      	at org.apache.hadoop.hdfs.web.HftpFileSystem.getDelegationToken(HftpFileSystem.java:247)
      	at org.apache.hadoop.hdfs.web.TokenAspect.ensureTokenInitialized(TokenAspect.java:140)
      	at org.apache.hadoop.hdfs.web.HftpFileSystem.addDelegationTokenParam(HftpFileSystem.java:337)
      	at org.apache.hadoop.hdfs.web.HftpFileSystem.openConnection(HftpFileSystem.java:324)
      	at org.apache.hadoop.hdfs.web.HftpFileSystem$LsParser.fetchList(HftpFileSystem.java:457)
      	at org.apache.hadoop.hdfs.web.HftpFileSystem$LsParser.getFileStatus(HftpFileSystem.java:472)
      	at org.apache.hadoop.hdfs.web.HftpFileSystem.getFileStatus(HftpFileSystem.java:501)
      	at org.apache.hadoop.fs.Globber.getFileStatus(Globber.java:57)
      	at org.apache.hadoop.fs.Globber.glob(Globber.java:248)
      	at org.apache.hadoop.fs.FileSystem.globStatus(FileSystem.java:1623)
      	at org.apache.hadoop.tools.GlobbedCopyListing.doBuildListing(GlobbedCopyListing.java:77)
      	at org.apache.hadoop.tools.CopyListing.buildListing(CopyListing.java:81)
      	at org.apache.hadoop.tools.DistCp.createInputFileListing(DistCp.java:342)
      	at org.apache.hadoop.tools.DistCp.execute(DistCp.java:154)
      	at org.apache.hadoop.tools.DistCp.run(DistCp.java:121)
      	at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
      	at org.apache.hadoop.tools.DistCp.main(DistCp.java:390)
      Caused by: java.io.IOException: Error when dealing remote token: Internal Server Error
      	at org.apache.hadoop.hdfs.tools.DelegationTokenFetcher.run(DelegationTokenFetcher.java:375)
      	at org.apache.hadoop.hdfs.tools.DelegationTokenFetcher.getDTfromRemote(DelegationTokenFetcher.java:238)
      	... 22 more
      

      Attachments

        1. HDFS-7037.001.patch
          12 kB
          Yongjun Zhang

        Activity

          People

            yzhangal Yongjun Zhang
            yzhangal Yongjun Zhang
            Votes:
            0 Vote for this issue
            Watchers:
            12 Start watching this issue

            Dates

              Created:
              Updated: