Dear All,

we are trying to run Giraph 1.1.0 RC against a distribution of Hadoop 2.2.0 that uses Jetty 7 in place of Jetty 6. When we launch our application on our cluster we get the following error:

2014-07-02 08:14:23,307 INFO [main] org.apache.hadoop.yarn.event.AsyncDispatcher: Registering class org.apache.hadoop.mapreduce.v2.app.job.event.JobFinishEvent$Type for class org.apache.hadoop.mapreduce.v2.app.MRAppMaster$JobFinishEventHandler 2014-07-02 08:14:23,551 INFO [main] org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties 2014-07-02 08:14:23,619 INFO [main] org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s). 2014-07-02 08:14:23,619 INFO [main] org.apache.hadoop.metrics2.impl.MetricsSystemImpl: MRAppMaster metrics system started 2014-07-02 08:14:23,630 INFO [main] org.apache.hadoop.mapreduce.v2.app.job.impl.JobImpl: Adding job token for job_1403542528912_0632 to jobTokenSecretManager 2014-07-02 08:14:23,726 INFO [main] org.apache.hadoop.mapreduce.v2.app.job.impl.JobImpl: Not uberizing job_1403542528912_0632 because: not enabled; too much RAM; 2014-07-02 08:14:23,742 INFO [main] org.apache.hadoop.mapreduce.v2.app.job.impl.JobImpl: Input size for job job_1403542528912_0632 = 0. Number of splits = 1 2014-07-02 08:14:23,742 INFO [main] org.apache.hadoop.mapreduce.v2.app.job.impl.JobImpl: Number of reduces for job job_1403542528912_0632 = 0 2014-07-02 08:14:23,742 INFO [main] org.apache.hadoop.mapreduce.v2.app.job.impl.JobImpl: job_1403542528912_0632Job Transitioned from NEW to INITED 2014-07-02 08:14:23,744 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: MRAppMaster launching normal, non-uberized, multi-container job job_1403542528912_0632. 2014-07-02 08:14:23,782 INFO [Socket Reader #1 for port 7041] org.apache.hadoop.ipc.Server: Starting Socket Reader #1 for port 7041 2014-07-02 08:14:23,804 INFO [main] org.apache.hadoop.yarn.factories.impl.pb.RpcServerFactoryPBImpl: Adding protocol org.apache.hadoop.mapreduce.v2.api.MRClientProtocolPB to the server 2014-07-02 08:14:23,805 INFO [IPC Server Responder] org.apache.hadoop.ipc.Server: IPC Server Responder: starting 2014-07-02 08:14:23,805 INFO [IPC Server listener on 7041] org.apache.hadoop.ipc.Server: IPC Server listener on 7041: starting 2014-07-02 08:14:23,805 INFO [main] org.apache.hadoop.mapreduce.v2.app.client.MRClientService: Instantiated MRClientService at node0654/10.1.33.14:7041 2014-07-02 08:14:23,858 FATAL [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Error starting MRAppMaster java.lang.NoSuchMethodError: org.apache.hadoop.http.HttpServer.<init>(Ljava/lang/String;Ljava/lang/String;IZLorg/apache/hadoop/conf/Configuration;Lorg/apache/hadoop/security/authorize/AccessControlList;Lorg/mortbay/jetty/Connector;[Ljava/lang/String;)V at org.apache.hadoop.yarn.webapp.WebApps$Builder$2.<init>(WebApps.java:222) at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:219) at org.apache.hadoop.mapreduce.v2.app.client.MRClientService.serviceStart(MRClientService.java:136) at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193) at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.serviceStart(MRAppMaster.java:1058) at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193) at org.apache.hadoop.mapreduce.v2.app.MRAppMaster$1.run(MRAppMaster.java:1445)
    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:1491) at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.initAndStartAppMaster(MRAppMaster.java:1441) at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.main(MRAppMaster.java:1374)

The error is caused by the fact that in our distribution of Hadoop the HTTPServer constructor is expecting a parameter of type org.eclipse.jetty.Connector, but is receiving a parameter of type org.mortbay.jetty.Connector. Indeed, one big difference of Jetty 7 wrt Jetty 6 is the different naming of packages.

Similar errors arise when the application is launched in pure yarn mode (containers just fail).

We examined the code of Giraph 1.1.0, but we actually did not find any place where a Collector object is created and/or Jetty is really used.

Do you have any idea on how to solve this issue? Please, observe that we are forced to use this Hadoop distribution and cannot switch to a plain Hadoop 2.2.0 distribution with Jetty 6.

Thanks in advance.

Carlo
--
"Humanity is overrated", Gregory House, MD

Reply via email to