2012-08-14 3 views
0

현재 Hadoop을 사용 중입니다. 주어진 작업에 대한 맵 작업이 자체 노드에서 또는 다른 노드에서 데이터를 읽는지 여부에 대한 정보를 얻을 수 있는지 궁금합니다. 나는 HDFS가 모든 노드에 분산되어 있다는 것을 알고 있지만 주어진 작업과 주어진 맵 작업에 대해, 앰프 작업이 실행중인 동일한 노드에서 얼마나 많은 데이터가 읽혔는지와 얼마나 많은 데이터를 읽었는지를 나타내는 카운터/메트릭이 있습니다. 네트워크를 통해 데이터를 읽었습니다.동일한 노드 통계에서 읽기 작업을 매핑하는 Hadoop

답변

0

Hadoop에는 로컬에서 읽은 데이터의 양과 네트워크를 통해 읽은 데이터의 양을 알려주는 카운터가 없습니다. 당신이 할 수

있는 유일한 방법은 다른 표준 카운터를 결합하고 그 기반으로 로컬의 근사치를 얻을 수 및 네트워크를 통한 데이터를 읽을 수있을 것이다.

  • DATA_LOCAL_MAPS : 로컬 데이터 (로컬 컴퓨터)를 사용하여 작업의 맵 작업 수입니다.

  • RACK_LOCAL_MAPS : 자신의 입력 데이터와 동일한 랙의 노드에서 실행지도 작업의 수.

  • OTHER_LOCAL_MAPS 그들의 입력 데이터가있는 것과 다른 랙의 노드에서 실행 된 작업의 수.

  • MAP_INPUT_BYTES : 모든지도 작업에 의해 총 (전체 작업)

소비 된 데이터의 양을 알려줍니다 * (당신은 하둡 배포판의 카운터의 정확한 이름을 확인해야합니다)

,745 : EACH지도 ONE 입력 분할 처리하고 기본 입력 분할은 거의 동일한 것으로,이 식을 이용하여 국부적으로 처리 된 데이터의 총량을 찾을 수 있음을 고려

곱셈의 두 번째 항은지도 작업 당 입력 바이트 수를 나타냅니다.

관련 문제