[HADOOP] 인수를 Hadoop 매퍼로 전달
HADOOP인수를 Hadoop 매퍼로 전달
새로운 Hadoop API를 사용하고 일부 매개 변수 (소수 문자열)를 매퍼에게 전달하는 방법을 찾고 있습니다. 어떻게해야합니까?
이 솔루션은 기존 API에서 작동합니다.
JobConf job = (JobConf)getConf();
job.set("NumberOfDocuments", args[0]);
여기에서 "NumberOfDocuments"는 매개 변수의 이름이고 그 값은 명령 줄 인수 인 "args [0]"에서 읽습니다. 이 인수를 설정하면 다음과 같이 감속기 또는 매퍼에서 해당 인수를 검색 할 수 있습니다.
private static Long N;
public void configure(JobConf job) {
N = Long.parseLong(job.get("NumberOfDocuments"));
}
까다로운 부분은 다음과 같은 매개 변수를 설정할 수 없다는 것입니다.
Configuration con = new Configuration();
con.set("NumberOfDocuments", args[0]);
해결법
-
==============================
1.main 메소드에서 아래와 같이 필수 매개 변수를 설정하거나 작업을 실행하는 동안 -D 명령 행 옵션을 사용하십시오.
main 메소드에서 아래와 같이 필수 매개 변수를 설정하거나 작업을 실행하는 동안 -D 명령 행 옵션을 사용하십시오.
Configuration conf = new Configuration(); conf.set("test", "123"); Job job = new Job(conf);
매퍼 / 감속기에서 매개 변수를 다음과 같이 얻습니다.
Configuration conf = context.getConfiguration(); String param = conf.get("test");
from https://stackoverflow.com/questions/8244474/passing-arguments-to-hadoop-mappers by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] HDFS에서 파일 전송 (0) | 2019.07.06 |
---|---|
[HADOOP] 직업 부름의 차이점 (0) | 2019.07.06 |
[HADOOP] 현재 실행중인 hadoop 작업의 이름을 얻는 방법? (0) | 2019.07.06 |
[HADOOP] 하이브 쿼리 내에서 입력 파일 이름을 열로 가져 오는 방법 (0) | 2019.07.06 |
[HADOOP] MapReduce의 파티셔닝은 정확히 어떻게 작동합니까? (0) | 2019.07.06 |