[HADOOP] Jobtracker API 오류 - localhost / 127.0.0.1에 대한 호출 : 로컬 예외에서 50030 실패 : java.io.EOFException
HADOOPJobtracker API 오류 - localhost / 127.0.0.1에 대한 호출 : 로컬 예외에서 50030 실패 : java.io.EOFException
Java를 사용하여 제 jobtracker에 연결하려고합니다. 아래 그림은 실행하려는 프로그램입니다.
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);
}
}
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)
나는 hadoop과 관련된 모든 항아리를 추가했습니다. 나는 왜 "/"가 localhost / 127.0.0.1 : 50030 사이에 오는지 이해할 수 없다.
해결법
-
==============================
1.http 포트 (50030)가 아닌 실제 작업 추적기 포트 번호를 사용해 보셨습니까?
http 포트 (50030)가 아닌 실제 작업 추적기 포트 번호를 사용해 보셨습니까?
mapred.job.tracker 속성 아래 $ HADOOP_HOME / conf / mapred-site.xml에 나열된 포트 번호를 사용해보십시오. 다음은 내 가상 mapred-site.xml conf입니다.
<property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property>
JobTracker.getAddress (Configuration) 메소드를 살펴보면 jobtracker 호스트 / 포트를 명시 적으로 지정하지 않으면이 속성을 사용하는 것을 볼 수 있습니다.
public static InetSocketAddress getAddress(Configuration conf) { String jobTrackerStr = conf.get("mapred.job.tracker", "localhost:8012"); return NetUtils.createSocketAddr(jobTrackerStr); }
from https://stackoverflow.com/questions/12813365/jobtracker-api-error-call-to-localhost-127-0-0-150030-failed-on-local-excepti by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Kerberized 클러스터에서의 이력 기록 서버 인증 (0) | 2019.06.28 |
---|---|
[HADOOP] Hadoop을 Java 클래스로 실행하려면 어떻게해야합니까? (0) | 2019.06.28 |
[HADOOP] 하이브 JDBC getConnection이 반환하지 않습니다. (0) | 2019.06.28 |
[HADOOP] hadoop의 여러 매퍼 (0) | 2019.06.28 |
[HADOOP] 스파크 데이터 프레임 : 기둥 기반 피벗 및 그룹 (0) | 2019.06.28 |