[HADOOP] MapReduce를 사용한 순열
HADOOPMapReduce를 사용한 순열
MapReduce로 순열을 생성하는 방법이 있습니까?
입력 파일:
1 title1
2 title2
3 title3
내 목표:
1,2 title1,title2
1,3 title1,title3
2,3 title2,title3
해결법
-
==============================
1.파일에는 n 개의 입력이 있으므로 순열에는 n ^ 2 개의 출력이 있어야합니다. 이러한 작업을 n 개 수행 할 수 있다는 것은 의미가 있습니다. 나는 당신이 이것을 할 수 있다고 믿는다 (하나의 파일에 대해서만 가정).
파일에는 n 개의 입력이 있으므로 순열에는 n ^ 2 개의 출력이 있어야합니다. 이러한 작업을 n 개 수행 할 수 있다는 것은 의미가 있습니다. 나는 당신이 이것을 할 수 있다고 믿는다 (하나의 파일에 대해서만 가정).
입력 파일을 DistributedCache에 넣어 Mapper / Reducers에 읽기 전용으로 액세스 할 수있게하십시오. WordCount와 같이 파일의 각 행에 입력 분할을 만듭니다. 그러면 매퍼에서 한 줄을 받게됩니다 (예 : title1). 그런 다음 DistributedCache의 파일에서 행을 읽고 키 / 값 쌍을 입력하십시오. 키를 입력으로 사용하고 DistributedCache의 파일에서 각 행의 값을 사용하십시오.
이 모델에서는 Map 단계 만 필요합니다.
같은 것 :
public static class PermuteMapper extends Mapper<Object, Text, Text, Text>{ private static final IN_FILENAME="file.txt"; public void map(Object key, Text value, Context context ) throws IOException, InterruptedException { String inputLine = value.toString(); // set the property mapred.cache.files in your // configuration for the file to be available Path[] cachedPaths = DistributedCache.getLocalCacheArchives(conf); if ( cachedPaths[0].getName().equals(IN_FILENAME) ) { // function defined elsewhere String[] cachedLines = getLinesFromPath(cachedPaths[0]); for (String line : cachedLines) context.emit(inputLine, line); } } }
from https://stackoverflow.com/questions/6535878/permutations-with-mapreduce by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hadoop에서 웹 애플리케이션으로 파일 가져 오기 (0) | 2019.07.14 |
---|---|
[HADOOP] kubernetes vs yarn / hadoop 생태계에 불꽃을 일으킨다. (0) | 2019.07.14 |
[HADOOP] 기상 데이터의 큰 데이터 세트를 저장하고 쿼리하는 더 나은 방법은 무엇입니까? (0) | 2019.07.14 |
[HADOOP] 밖에서 카프카를 연결하는 문제 (0) | 2019.07.14 |
[HADOOP] 사육사 오류에 대한 Hbase 연결 (0) | 2019.07.14 |