1
HDFS에서 일부 작업 구성 파일을 읽는 중 이상한 오류가 발생합니다. 파일에서 작업을 검색하고 작업 구성 XML 파일을 루프에서 읽으려고합니다.IOException : HDFS에서 여러 파일을 읽는 중 스트림 닫힘 오류가 발생했습니다.
발췌 :
for(JobStatus status : statuses)
{
JobID jobId = null;
try
{
jobId = status.getJobID(); //TODO check the hash-code/equals implementation of JobID
if(!jobIdsUnderObservation.contains(jobId))
{ //explore jobs if it's new
RunningJob runningJob = jobClient.getJob(jobId);
if(runningJob != null)
{
String jobFile = runningJob.getJobFile();
FileSystem fs = FileSystem.get(conf);
if(fs.exists(new Path(jobFile)))
{
String sessionId = null;
InputStream is = fs.open(new Path(jobFile));
conf.addResource(is);
sessionId = conf.get("hive.session.id"); //this particular line breaks
//from the second file onwards
if(sessionId.equals(this.sessionId))
{
jobIdsUnderObservation.add(jobId);
}
}
}
}
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
int prevStatus = 0;
그것은 첫 번째 파일의 벌금을 읽어하지만 이후 두 번째 파일에서 나옵니다. IOException를 throw합니다. 스트림을 닫습니다.
감사합니다 빅터 (거기에 몇 가지 예제가 있습니다)! 나는 문제가 두 번째 파일에서 왜 나타나기 시작하는지 알아 내려고하고있다. – Subhasis
@Subhasis 당신은 잘됐다. 디버깅을 시도하고 누가 스트림의 close 메소드를 호출하는지보십시오. –