Hadoop 잘림 / 일관되지 않은 카운터 이름
지금은 꽤 큰 이름을 가진 카운터를 만드는 Hadoop 작업이 있습니다.
예를 들어 다음 중 하나 : stats.counters.server-name.job.job-name.mapper.site.site-name.qualifier.qualifier-name.super-long-string-which-is-not-within-standard-limits
. 이 카운터는 웹 인터페이스 및 getName()
메서드 호출 에서 잘립니다 . Hadoop에는 카운터 최대 이름에 제한이 있으며이 설정 ID mapreduce.job.counters.counter.name.max
는이 제한을 구성하기위한 것임을 알았습니다 . 그래서 나는 이것을 증가 시켰고 500
웹 인터페이스는 이제 전체 카운터 이름을 보여줍니다. 그러나 getName()
카운터는 여전히 잘린 이름을 반환합니다.
누군가 제발 이것을 설명하거나 내 실수를 지적 할 수 있습니까? 감사합니다.
1 편집
내 Hadoop 서버 구성은 HDFS, YARN 및 map-reduce 자체가있는 단일 서버로 구성됩니다. map-reduce 중에 일부 카운터 증가가 있으며 작업이 완료된 후 ToolRunner
.NET을 사용하여 카운터를 가져옵니다 org.apache.hadoop.mapreduce.Job#getCounters
.
2 편집
Hadoop 버전은 다음과 같습니다.
Hadoop 2.6.0-cdh5.8.0
Subversion http://github.com/cloudera/hadoop -r 042da8b868a212c843bcbf3594519dd26e816e79
Compiled by jenkins on 2016-07-12T22:55Z
Compiled with protoc 2.5.0
From source with checksum 2b6c319ecc19f118d6e1c823175717b5
This command was run using /usr/lib/hadoop/hadoop-common-2.6.0-cdh5.8.0.jar
추가 조사 를했는데이 문제가 저 와 비슷한 상황을 설명하는 것 같습니다 . 하지만 카운터 수를 늘릴 수 있지만 카운터 이름의 길이는 늘릴 수 없기 때문에 꽤 혼란 스럽습니다.
3 편집
오늘 저는 Hadoop의 내부를 디버깅하는 데 많은 시간을 보냈습니다. 흥미로운 것들 :
org.apache.hadoop.mapred.ClientServiceDelegate#getJobCounters
메서드는 TRUNCATED 이름과 FULL 표시 이름 을 사용하여 yarn에서 여러 카운터를 반환 합니다.- 지도와 감속기 자체를 디버그 할 수 없었지만 로깅의 도움으로
org.apache.hadoop.mapreduce.Counter#getName
감속기 실행 중에 메서드가 올바르게 작동 하는 것 같습니다 .
getName()
더 이상 사용되지 않는 것 같습니다.
또는 getUri()
기본 최대 길이 인 255를 사용할 수 있습니다.
문서 링크 :
getUri()
개인적으로 시도하지는 않았지만이 문제에 대한 가능한 해결 방법 인 것 같습니다.
참고 URL : https://stackoverflow.com/questions/41701086/hadoop-truncated-inconsistent-counter-name
'Programing' 카테고리의 다른 글
Heroku가 HTTP 응답을 자릅니다. (0) | 2020.10.13 |
---|---|
ActionMode를 만들 때 onPrepareActionMode가 호출되지 않음 (0) | 2020.10.13 |
MySQL / 쓰기 파일 오류 (Errcode 28) (0) | 2020.10.12 |
ActionSheet가 작동하지 않는 iPad (0) | 2020.10.12 |
OSX App Bundle 빌드 (0) | 2020.10.12 |