[HADOOP] Hadoop 프로그램의 Configured 클래스 사용법은 무엇입니까?
HADOOPHadoop 프로그램의 Configured 클래스 사용법은 무엇입니까?
Hadoop MapReduce 프로그램의 대부분은 다음과 같습니다.
public class MyApp extends Configured Implements Tool {
@Override
public int run(String[] args) throws Exception {
Job job = new Job(getConf());
/* process command line options */
return job.waitForCompletion(true) ? 0 : 1;
}
public static void main(String[] args) throws Exception {
int exitCode = ToolRunner.run(new MyApp(), args);
System.exit(exitCode);
}
}
Configured의 사용법은 무엇입니까? Tool과 Configured는 모두 getConf ()와 setConf ()를 공통으로 사용합니다. 우리 신청서에 무엇이 제공됩니까?
해결법
-
==============================
1.Configured 인터페이스의 구현 클래스가 구성됩니다. getConf () 및 setConf ()의 구현을 가지는 기본 클래스가 구성됩니다.
Configured 인터페이스의 구현 클래스가 구성됩니다. getConf () 및 setConf ()의 구현을 가지는 기본 클래스가 구성됩니다.
이 기본 클래스를 확장하는 것만으로이 클래스를 확장하는 클래스가 구성을 사용하여 구성 될 수 있으며 구성에 대한 구현이 두 개 이상 있습니다.
코드가 다음 행을 실행할 때,
ToolRunner.run(new MyApp(), args);
내부적으로이 작업을 수행합니다.
ToolRunner.run(tool.getConf(), tool, args);
위의 경우 도구는 MyApp 클래스 인스턴스이며 Tool의 구현체이며 getConf ()가 있지만 인터페이스와 마찬가지입니다. 구현은 Configured 기본 클래스에서 이루어집니다. 위의 코드에서 Configured 클래스를 확장하지 않으려면 getConf () 및 setConf () 구현을 직접 수행해야합니다.
-
==============================
2.Configured는 Configurable 인터페이스의 기본 구현입니다. 기본적으로 setConf 메소드는 전달 된 Configuration 객체에 private 인스턴스 변수를 보유하고 getConf ()는 해당 참조를 반환합니다.
Configured는 Configurable 인터페이스의 기본 구현입니다. 기본적으로 setConf 메소드는 전달 된 Configuration 객체에 private 인스턴스 변수를 보유하고 getConf ()는 해당 참조를 반환합니다.
Tool은 추가 실행 (..) 메소드를 제공하는 Configurable 인터페이스의 확장이며 ToolRunner와 함께 (GenericOptionsParser를 사용하여) 명령 행 옵션을 구문 분석하고 setConf (..) 메소드에 전달되는 Configuration 객체를 빌드하는 데 사용됩니다. 방법.
기본 클래스는 일반적으로 Configured를 확장하여 Tool에 필요한 Configurable 인터페이스 메소드가 구현되도록합니다.
일반적으로 ToolRunner 유틸리티 클래스를 사용하여 MapReduce 작업을 시작해야합니다. 명령 줄 인수를 파싱하고 Configuration 객체를 작성하는 일반적인 작업을 처리하기 때문입니다. 자세한 정보는 ToolRunner의 API 문서를 참조하십시오.
from https://stackoverflow.com/questions/14134865/what-is-the-usage-of-configured-class-in-hadoop-programs by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hive 파티션 컬럼 이름을 변경하는 방법 (0) | 2019.08.04 |
---|---|
[HADOOP] Flume을 사용하여 원격 노드에서 HDFS로 파일 전송 (0) | 2019.08.04 |
[HADOOP] Hadoop Sequence File에서 마지막으로 수정 한 날짜를 얻으려면 어떻게해야합니까? (0) | 2019.08.03 |
[HADOOP] subprocess.check_output () 모듈 객체의 속성이 'check_output'입니다. (0) | 2019.08.03 |
[HADOOP] 스파크가 java.io.IOException로 큰 셔플 작업에 실패합니다 : 파일 시스템이 닫혔습니다. (0) | 2019.08.03 |