Jobtracker API error - Call to localhost/127.0.0.1:50030 failed on local exception: java.io.EOFException

10,820

Have you tried the actual jobtracker port number, rather than the http port (50030).

Try the port number listed in your $HADOOP_HOME/conf/mapred-site.xml under the mapred.job.tracker property. Here's my pseudo mapred-site.xml conf

<property>
    <name>mapred.job.tracker</name>
    <value>localhost:9001</value>
</property>

If you look at the JobTracker.getAddress(Configuration) method, you can see it uses this property if you don't explicitly specify the jobtracker host / port:

public static InetSocketAddress getAddress(Configuration conf) {
  String jobTrackerStr =
    conf.get("mapred.job.tracker", "localhost:8012");
  return NetUtils.createSocketAddr(jobTrackerStr);
}
Share:
10,820
K S Nidhin
Author by

K S Nidhin

Hadoop Developer , developing with passion

Updated on June 04, 2022

Comments

  • K S Nidhin
    K S Nidhin almost 2 years

    I m trying to connect my jobtracker using Java.
    The below shown is the program I am trying to execute

                       public static void main(String args[]) throws IOException {
    
                Configuration conf = new Configuration();
                conf.addResource(new Path(
                        "/home/user/hadoop-1.0.3/conf/core-site.xml"));
                conf.addResource(new Path(
                        "/home/user/hadoop-1.0.3/conf/hdfs-site.xml"));
                conf.addResource(new Path(
                        "/home/user/hadoop-1.0.3/conf/mapred-site.xml"));
    
    
                InetSocketAddress jobtracker = new InetSocketAddress("localhost", 50030);
                JobClient jobClient = new JobClient(jobtracker, conf);
                jobClient.setConf(conf);
                JobStatus[] jobs = jobClient.jobsToComplete();
    
                for (int i = 0; i < jobs.length; i++) {
                    JobStatus js = jobs[i];
                    if (js.getRunState() == JobStatus.RUNNING) {
                        JobID jobId = js.getJobID();
                        System.out.println(jobId);
                    }
                }
    

    This is the exception i get. Even i though i try replacing localhost with 127.0.0.1 it doesnt work . The same error.

     Exception in thread "main" java.io.IOException: Call to localhost/127.0.0.1:50030 failed on local exception: java.io.EOFException
            at org.apache.hadoop.ipc.Client.wrapException(Client.java:1107)
            at org.apache.hadoop.ipc.Client.call(Client.java:1075)
            at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225)
            at org.apache.hadoop.mapred.$Proxy1.getProtocolVersion(Unknown Source)
            at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:396)
            at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:379)
            at org.apache.hadoop.mapred.JobClient.createRPCProxy(JobClient.java:480)
            at org.apache.hadoop.mapred.JobClient.<init>(JobClient.java:534)
            at com.tcs.nextgen.searchablemetadata.executor.factory.JobChecker.main(JobChecker.java:34)
        Caused by: java.io.EOFException
            at java.io.DataInputStream.readInt(DataInputStream.java:375)
            at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:811)
            at org.apache.hadoop.ipc.Client$Connection.run(Client.java:749)
    

    I added all the jars related to hadoop . I cant understand why "/" is comming in between localhost/127.0.0.1:50030

    • Thomas Jungblut
      Thomas Jungblut over 11 years
      localhost/127.0.0.1:50030 is just a string representation, it does not mean that he tries to connect to that address. Do you run Hadoop 1.x on your local host?
    • Lorand Bendig
      Lorand Bendig over 11 years
      Make sure that there's no version mismatch between your cluster and client Hadoop version
  • K S Nidhin
    K S Nidhin over 11 years
    replacing 50030 with 9001 helped. it should be actual job tracker port instead of web url port.