Uploaded image for project: 'Hadoop YARN'
  1. Hadoop YARN
  2. YARN-5594

Handle old RMDelegationToken format when recovering RM

    XMLWordPrintableJSON

Details

    • Reviewed

    Description

      We've got that error after upgrade cluster from v.2.5.1 to 2.7.0.

      2016-08-25 17:20:33,293 ERROR
      org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Failed to
      load/recover state
      com.google.protobuf.InvalidProtocolBufferException: Protocol message contained
      an invalid tag (zero).
      at com.google.protobuf.InvalidProtocolBufferException.invalidTag(InvalidProtocolBufferException.java:89)
      at com.google.protobuf.CodedInputStream.readTag(CodedInputStream.java:108)
      at org.apache.hadoop.yarn.proto.YarnServerResourceManagerRecoveryProtos$RMDelegationTokenIdentifierDataProto.<init>(YarnServerResourceManagerRecoveryProtos.java:4680)
      at org.apache.hadoop.yarn.proto.YarnServerResourceManagerRecoveryProtos$RMDelegationTokenIdentifierDataProto.<init>(YarnServerResourceManagerRecoveryProtos.java:4644)
      at org.apache.hadoop.yarn.proto.YarnServerResourceManagerRecoveryProtos$RMDelegationTokenIdentifierDataProto$1.parsePartialFrom(YarnServerResourceManagerRecoveryProtos.java:4740)
      at org.apache.hadoop.yarn.proto.YarnServerResourceManagerRecoveryProtos$RMDelegationTokenIdentifierDataProto$1.parsePartialFrom(YarnServerResourceManagerRecoveryProtos.java:4735)
      at org.apache.hadoop.yarn.proto.YarnServerResourceManagerRecoveryProtos$RMDelegationTokenIdentifierDataProto$Builder.mergeFrom(YarnServerResourceManagerRecoveryProtos.java:5075)
      at org.apache.hadoop.yarn.proto.YarnServerResourceManagerRecoveryProtos$RMDelegationTokenIdentifierDataProto$Builder.mergeFrom(YarnServerResourceManagerRecoveryProtos.java:4955)
      at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:337)
      at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:267)
      at com.google.protobuf.AbstractMessageLite$Builder.mergeFrom(AbstractMessageLite.java:210)
      at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:904)
      at org.apache.hadoop.yarn.server.resourcemanager.recovery.records.RMDelegationTokenIdentifierData.readFields(RMDelegationTokenIdentifierData.java:43)
      at org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore.loadRMDTSecretManagerState(FileSystemRMStateStore.java:355)
      at org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore.loadState(FileSystemRMStateStore.java:199)
      at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$RMActiveServices.serviceStart(ResourceManager.java:587)
      at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
      at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.startActiveServices(ResourceManager.java:1007)
      at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$1.run(ResourceManager.java:1048)
      at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$1.run(ResourceManager.java:1044
      

      The reason of this problem is that we use different formats of files /var/mapr/cluster/yarn/rm/system/FSRMStateRoot/RMDTSecretManagerRoot/RMDelegationToken* in these hadoop versions.

      This fix handle old data format during RM recover if InvalidProtocolBufferException occures.

      Attachments

        1. YARN-5594.001.patch
          8 kB
          Tatyana But
        2. YARN-5594.002.patch
          24 kB
          Robert Kanter
        3. YARN-5594.003.patch
          24 kB
          Robert Kanter
        4. YARN-5594.004.patch
          24 kB
          Robert Kanter

        Issue Links

          Activity

            People

              rkanter Robert Kanter
              Tatyana But Tatyana But
              Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: