수색…


소개

여기서 기억해야 할 것은 Hadoop MR 작업을 디버깅하는 것이 Eclipse에서 원격으로 디버깅 된 모든 애플리케이션과 유사 할 것이라는 점입니다.

디버거 또는 디버깅 도구는 다른 프로그램 ( "대상"프로그램)을 테스트하고 디버깅하는 데 사용되는 컴퓨터 프로그램입니다. 오류가 발생할 여지가 거의없고 하 나의 작은 오류로 인해 큰 손실이 발생할 수있는 Hadoop 환경의 경우 특히 유용합니다.

비고

그것이 당신이해야 할 전부입니다.

구성 단계

아시다시피, Hadoop은 다음 세 가지 모드로 로컬 환경에서 실행될 수 있습니다.

  1. 로컬 모드
  2. 가상 분산 모드
  3. 완전 분산 모드 (클러스터)

일반적으로 HDFS 및 Map Reduce (MR)를 활용하기 위해 Pseudo Distributed Mode에서 로컬 hadoop 설정을 실행합니다. 그러나 각 맵 / 축소 작업이 별도의 JVM 프로세스에서 실행되므로이 ​​모드에서 MR 프로그램을 디버깅 할 수 없으므로 단일 JVM 프로세스에서 MR 프로그램을 실행할 수있는 로컬 모드로 다시 전환해야합니다.

다음은 로컬 환경에서이를 디버깅하는 빠르고 간단한 단계입니다.

  1. 디버깅을 위해 로컬 모드에서 hadoop을 실행하여 매퍼 및 감속기 태스크가 별도의 JVM 대신 단일 JVM에서 실행되도록하십시오. 아래의 단계를 따르면 도움이됩니다.

  2. Hadoop 작업을 실행할 때 디버거를 활성화하도록 HADOOP_OPTS를 구성하면 디버거가 연결되기를 기다리게됩니다. 다음은 포트 8080에서 동일한 디버깅 명령입니다.

(export HADOOP_OPTS = "- agentlib : jdwp = transport = dt_socket, server = y, suspend = y, address = 8008")

  1. core-site.xml의 fs.default.name 값을 hdfs : //의 file : ///으로 구성하십시오. 로컬 모드에서는 hdfs를 사용하지 않습니다.

  2. mapred-site.xml의 mapred.job.tracker 값을 local로 설정하십시오. 이렇게하면 Hadoop이 단일 JVM에서 MR 작업을 실행하도록 지시합니다.

  3. 이클립스 디버그 설정을 만들고 포트를 8008로 설정한다. 이를 위해 디버거 구성으로 이동하여 새로운 원격 Java 응용 프로그램 유형의 구성을 만들고 설정에서 포트를 8080으로 설정합니다.

  4. 디버거가 연결되기를 기다리는 hadoop 작업을 실행 한 다음 위의 구성으로 디버그 모드로 Eclipse를 시작하십시오. 먼저 브레이크 포인트를 지정하십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow