Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-14891

Remove references to Guava Objects.toStringHelper

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.9.0, 2.8.1, 2.7.8
    • Fix Version/s: 2.9.0, 2.8.3, 2.7.8
    • Component/s: None
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      Use provided a guava 23.0 jar as part of the job submission.

      2017-09-20 16:10:42,897 [INFO] [main] |service.AbstractService|: Service org.apache.tez.dag.app.DAGAppMaster failed in state STARTED; cause: org.apache.hadoop.service.ServiceStateException: java.lang.NoSuchMethodError: com.google.common.base.Objects.toStringHelper(Ljava/lang/Object;)Lcom/google/common/base/Objects$ToStringHelper;
      org.apache.hadoop.service.ServiceStateException: java.lang.NoSuchMethodError: com.google.common.base.Objects.toStringHelper(Ljava/lang/Object;)Lcom/google/common/base/Objects$ToStringHelper;
      	at org.apache.hadoop.service.ServiceStateException.convert(ServiceStateException.java:59)
      	at org.apache.tez.dag.app.DAGAppMaster.startServices(DAGAppMaster.java:1989)
      	at org.apache.tez.dag.app.DAGAppMaster.serviceStart(DAGAppMaster.java:2056)
      	at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
      	at org.apache.tez.dag.app.DAGAppMaster$9.run(DAGAppMaster.java:2707)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at javax.security.auth.Subject.doAs(Subject.java:422)
      	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1936)
      	at org.apache.tez.dag.app.DAGAppMaster.initAndStartAppMaster(DAGAppMaster.java:2703)
      	at org.apache.tez.dag.app.DAGAppMaster.main(DAGAppMaster.java:2508)
      Caused by: java.lang.NoSuchMethodError: com.google.common.base.Objects.toStringHelper(Ljava/lang/Object;)Lcom/google/common/base/Objects$ToStringHelper;
      	at org.apache.hadoop.metrics2.lib.MetricsRegistry.toString(MetricsRegistry.java:419)
      	at java.lang.String.valueOf(String.java:2994)
      	at java.lang.StringBuilder.append(StringBuilder.java:131)
      	at org.apache.hadoop.ipc.metrics.RpcMetrics.<init>(RpcMetrics.java:74)
      	at org.apache.hadoop.ipc.metrics.RpcMetrics.create(RpcMetrics.java:80)
      	at org.apache.hadoop.ipc.Server.<init>(Server.java:2658)
      	at org.apache.hadoop.ipc.RPC$Server.<init>(RPC.java:968)
      	at org.apache.hadoop.ipc.ProtobufRpcEngine$Server.<init>(ProtobufRpcEngine.java:367)
      	at org.apache.hadoop.ipc.ProtobufRpcEngine.getServer(ProtobufRpcEngine.java:342)
      	at org.apache.hadoop.ipc.RPC$Builder.build(RPC.java:810)
      	at org.apache.tez.dag.api.client.DAGClientServer.createServer(DAGClientServer.java:134)
      	at org.apache.tez.dag.api.client.DAGClientServer.serviceStart(DAGClientServer.java:82)
      	at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193)
      	at org.apache.tez.dag.app.DAGAppMaster$ServiceWithDependency.start(DAGAppMaster.java:1909)
      	at org.apache.tez.dag.app.DAGAppMaster$ServiceThread.run(DAGAppMaster.java:1930)
      2017-09-20 16:10:42,898 [ERROR] [main] |rm.TaskSchedulerManager|: Failed to do a clean initiateStop for Scheduler: [0:TezYarn]
      

      Metrics2 has been relying on deprecated toStringHelper for some time now which was finally removed in guava 21.0. Removing the dependency on this method will free up the user to supplying their own guava jar again.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                jeagles Jonathan Eagles
                Reporter:
                jeagles Jonathan Eagles
              • Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: