[HADOOP] 우리는 어떻게지도 함수는 맵리 듀스 프로그램에서 호출 횟수를 계산합니까?
HADOOP우리는 어떻게지도 함수는 맵리 듀스 프로그램에서 호출 횟수를 계산합니까?
내 입력 데이터에 대해 특정 작업을하고 맵리 듀스 프로그램을 사용하여 HDFS에 기록해야한다. 내 입력 데이터처럼 보인다
abc
some data
some data
some data
def
other data
other data
other data
와 ABC는 DEF 헤더 및 일부 데이터 탭 공간이 기록되어있는 것과 동일한 방법으로 계속합니다.
내 작업은 헤더를 제거하고 같은 그 아래 기록에 추가하는 것입니다
some data abc
some data abc
some data abc
other data def
other data def
other data def
각 헤더 (50 개) 기록을해야합니다.
그것은 한 번에 한 줄씩 읽어 그래서 기본 레코드 리더를 사용하고 있습니다
내가지도 기능은 n 번째 시간 동안 호출 된 것을 알고 어떻게 지금 내 문제는? 나는 그것을 알고있는 카운터가 있습니까? 나뿐만 문자열로 헤더를 추가하는 카운터를 사용할 수 있도록
if (counter % 50 ==0 )
*some code*
아니면 정적 변수는 유일한 방법은?
해결법
-
==============================
1.당신은 지금까지 처리 얼마나 많은 개수를 유지하는 멤버 변수를 사용할 수 있습니다. 멤버 변수는 인스턴스 변수 때마다지도 기능이 호출되는 초기화되지 않습니다. 당신은 매퍼 설정 방법에 그것들을 초기화 할 수 있습니다.
당신은 지금까지 처리 얼마나 많은 개수를 유지하는 멤버 변수를 사용할 수 있습니다. 멤버 변수는 인스턴스 변수 때마다지도 기능이 호출되는 초기화되지 않습니다. 당신은 매퍼 설정 방법에 그것들을 초기화 할 수 있습니다.
물론, 당신은 카운터를 유지하기위한 정적 변수를 사용할 수 있습니다.
HDFS의 데이터 블록에 저장됩니다, 당신은 어떻게 데이터가 두 개의 블록으로 분할 될 때 처리 할 것입니다.
두 블록 간의 데이터 분할을 처리하려면 기어를해야 할 수도 있습니다. 감속기의 속성은 특정 키와 관련된 모든 데이터 (값)가 항상 동일한 (단일) 감속기로 전송된다. 감속기의 입력 키와 데이터의 사건리스트에 값의리스트이다. 그래서 당신은 당신의 요구 사항에 따라 아주 쉽게 저장할 수 있습니다.
최적화 : 당신은 데이터 전송을 최적화하기위한 결합기와 같은 감속기 코드를 사용할 수 있습니다.
아이디어 :이 그대로 매퍼는 키와 값을 방출합니다. 만회 핵심 데이터를받을 때 이제 목록 <값>, 당신의 모든 값은 이미 맵리 듀스 프레임 워크에 의해 결합된다. 당신은 다시 방출 할 필요가 있습니다. 이것은 당신이 찾고있는 출력됩니다.
from https://stackoverflow.com/questions/32758322/how-do-we-count-the-number-of-times-a-map-function-is-called-in-a-mapreduce-prog by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하이브 :지도를 CONCAT (0) | 2019.10.15 |
---|---|
[HADOOP] 고정 된 길이의 파일을 처리하기위한 하이브 테이블 만들기 (0) | 2019.10.15 |
[HADOOP] 클라우 데라 매니저 API를 통해 다시 시작 JobTracker에 (0) | 2019.10.14 |
[HADOOP] 자바를 사용하여 HBase를 어떤 세 임의 규정 검색 (0) | 2019.10.14 |
[HADOOP] 하둡 HBase를 의사 모드 - 잠시 후 연결이 끊어 RegionServer (0) | 2019.10.14 |