hadop 이상: java. io. EOFException: 예기 치 않 은 입력 스 트림 종료
2019-06-05 03:23:36,173 INFO [main] org.apache.hadoop.mapred.MapTask: Processing split: Paths:/flume/nginx/app1/2019-06-05/00/app1@flume23_10003_4.1559665890953.gz:0+0,/flume/nginx/app2/2019-06-05/00/app2@flume174_10003_9.1559665804394.gz:0+307548
2019-06-05 03:23:36,257 WARN [main] org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:kwang (auth:SIMPLE) cause:java.io.EOFException: Unexpected end of input stream
2019-06-05 03:23:36,258 WARN [main] org.apache.hadoop.mapred.YarnChild: Exception running child : java.io.EOFException: Unexpected end of input stream
at org.apache.hadoop.io.compress.DecompressorStream.decompress(DecompressorStream.java:165)
at org.apache.hadoop.io.compress.DecompressorStream.read(DecompressorStream.java:105)
at java.io.InputStream.read(InputStream.java:101)
at org.apache.hadoop.util.LineReader.fillBuffer(LineReader.java:180)
at org.apache.hadoop.util.LineReader.readDefaultLine(LineReader.java:216)
at org.apache.hadoop.util.LineReader.readLine(LineReader.java:174)
at org.apache.hadoop.mapreduce.lib.input.LineRecordReader.skipUtfByteOrderMark(LineRecordReader.java:144)
at org.apache.hadoop.mapreduce.lib.input.LineRecordReader.nextKeyValue(LineRecordReader.java:184)
at org.apache.hadoop.mapreduce.lib.input.CombineFileRecordReaderWrapper.nextKeyValue(CombineFileRecordReaderWrapper.java:90)
at org.apache.hadoop.mapreduce.lib.input.CombineFileRecordReader.nextKeyValue(CombineFileRecordReader.java:69)
at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:562)
at org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80)
at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:793)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)
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:1924)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
발생 원인:
이상 의 오류 원인 은 기본적으로 HDFS 의 파일 이상 종료 로 인 한 것 입 니 다. log 를 보면 / flue / nginx / app 1 / 2019 - 06 - 05 / 00 / 를 발견 할 수 있 습 니 다.app1@flume23_10003_4.1559665890953. gz: 0 + 0 이 파일 의 크기 는 0 바이트 입 니 다.빈 파일 의 생 성 을 이해 하려 면 먼저 클 러 스 터 flume 채집 로그 의 논 리 를 잘 알 아야 합 니 다. 클 러 스 터 에 서 는 flume 으로 로 그 를 수집 하여 HDFS 에 기록 합 니 다. 수집 과정 에서 flume 은 먼저 *. gz. tmp 파일 을 새로 만 듭 니 다. flume 은 지속 적 으로 *. gz. tmp 파일 에 데 이 터 를 추가 하고 쓰기 주기 가 도 착 했 을 때 *. gz. tmp 를 *. gz 로 이름 을 바 꿉 니 다. 빈 파일 이 생 긴 이 유 는 flume 이 *. gz. tmp 파일 을 새로 만 든 후 입 니 다.새 데이터 가 생 성 되 지 않 았 습 니 다. 이름 을 바 꾼 후 파일 크기 가 비어 있 습 니 다.
해결 방법: 빈 gz 파일 을 삭제 한 후 작업 을 다시 실행 하면 됩 니 다.
또 다른 이 유 는 다음 과 같은 매개 변 수 를 설정 하여 파일 을 분할 절단 할 때 일부 파일 이 빈 파일 로 되 어 분석 과정 에서 이상 이 발생 하기 때문이다.물론 이러한 원인 은 파일 의 원본 형식 이 압축 될 수 있 는 지 여부 에 달 려 있 습 니 다. 예 를 들 어 gz, snappy, lzo 파일 은 분할 할 수 없습니다. 다음 매개 변 수 를 설정 하면 상기 오류 가 발생 하지 않 습 니 다. 예 를 들 어 orc 파일 은 분할 할 수 있 습 니 다. 다음 매개 변 수 를 설정 하면 상기 이상 이 발생 할 수 있 습 니 다.
-Dmapreduce.input.fileinputformat.split.minsize=134217728 -Dmapreduce.input.fileinputformat.split.maxsize=512000000
[참고 자료]
[1]. 반찬 이 다 떨 어 지고, hadop 예상 치 못 한 입력 스 트림 오류 종료.
다음으로 전송:https://www.cnblogs.com/walker-/p/10980995.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.