[HADOOP] hadoop 작업을 원격으로 실행하는 중 예외
HADOOPhadoop 작업을 원격으로 실행하는 중 예외
원격 hadoop 클러스터에서 Hadoop 작업을 실행하려고합니다. 아래는 내 코드입니다.
Configuration conf = new Configuration();
conf.set("fs.default.name", "hdfs://server:9000/");
conf.set("hadoop.job.ugi", "username");
Job job = new Job(conf, "Percentil Ranking");
job.setJarByClass(PercentileDriver.class);
job.setMapperClass(PercentileMapper.class);
job.setReducerClass(PercentileReducer.class);
job.setMapOutputKeyClass(TestKey.class);
job.setMapOutputValueClass(TestData.class);
job.setOutputKeyClass(TestKey.class);
job.setOutputValueClass(BaselineData.class);
job.setOutputFormatClass(SequenceFileOutputFormat.class);
FileInputFormat.addInputPath(job, new Path(inputPath));
FileOutputFormat.setOutputPath(job, new Path(outputPath));
job.waitForCompletion(true);
작업이 즉시 실행되기 시작하면 맵 단계 이전에 예외가 발생합니다.
java.io.IOException: Filesystem closed
at org.apache.hadoop.hdfs.DFSClient.checkOpen(DFSClient.java:226)
at org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:617)
at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:453)
at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:192)
at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:142)
at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:1216)
at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:1197)
at org.apache.hadoop.mapred.LocalJobRunner$Job.<init>(LocalJobRunner.java:92)
at org.apache.hadoop.mapred.LocalJobRunner.submitJob(LocalJobRunner.java:373)
at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:800)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:432)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:447)
입력 파일이 존재하며 쉼표로 구분 된 텍스트 파일입니다. 동일한 입력 및 출력으로 hadoop jar 명령을 사용하여 hadoop 클러스터에서 작업을 실행할 수 있습니다. 그러나 나는 그것을 원격으로 실행할 수 없습니다. 또한 다른 작업을 원격으로 실행할 수도 있습니다.
누구 든지이 문제에 대한 해결책이 무엇인지 말해 줄 수 있습니까?
해결법
-
==============================
1.conf.set ( "mapred.job.tracker", "server : 9001"); 문제를 해결했습니다. 당신의 도움을 주셔서 감사합니다.
conf.set ( "mapred.job.tracker", "server : 9001"); 문제를 해결했습니다. 당신의 도움을 주셔서 감사합니다.
-
==============================
2.당신은 이것을합니다 :
당신은 이것을합니다 :
conf.set("fs.default.name", "serverurl");
따라서 파일 시스템을 "serverurl"값으로 설정하고 있습니다. 이것은 의미가 없습니다.
코드에서 해당 줄을 간단히 제거하면 작동한다고 확신합니다.
HTH
from https://stackoverflow.com/questions/5815527/exception-while-executing-hadoop-job-remotely by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] hadoop에서 mapreduce 거리 계산 (0) | 2019.08.11 |
---|---|
[HADOOP] hsync ()가 hdfs 파일을 플러시하지 않는 이유는 무엇입니까? (0) | 2019.08.10 |
[HADOOP] --jars를 사용하여 spark-submit yarn-cluster가 작동하지 않습니까? (0) | 2019.08.10 |
[HADOOP] HADOOP_HOME을 기반으로 HDFS 구성을 자동으로로드 하시겠습니까? (0) | 2019.08.10 |
[HADOOP] 하둡 파일 분할 : CompositeInputFormat : 내부 결합 (0) | 2019.08.10 |