[HADOOP] map reduce에서 최적 키를 선택하는 방법은 무엇입니까?
HADOOPmap reduce에서 최적 키를 선택하는 방법은 무엇입니까?
주식 거래 로그 파일로 작업하고 있습니다. 각 줄은 20 개의 탭으로 구분 된 값을 가진 거래를 나타냅니다. 이 파일을 처리하고 거래 벤치마킹을하기 위해 hadoop을 사용하고 있습니다. 현재 각 줄에 대해 별도의 벤치 마크 계산을 수행해야하므로 맵 축소에서 축소 기능이 필요하지 않습니다. 각 줄의 벤치 마크 계산을 수행하려면 해당 줄에 해당하는 일부 표준 값을 얻기 위해 Sybase 데이터베이스를 쿼리해야합니다. 데이터베이스는 각 라인의 두 값 [trade Id 및 Stock Id]에 따라 색인됩니다. 이제 내 질문은 mapReduce 프로그램에서 tradeId 및 StockId를 키로 사용해야하는지 또는 키에 대해 다른 값 / [값의 조합]을 선택해야하는지입니다.
해결법
-
==============================
1.따라서 각 입력 줄에 대해 데이터베이스를 쿼리 한 다음 각 줄에 대해 벤치 마크 계산을 개별적으로 수행합니다. 벤치 마크 계산을 마치면 각 라인에 벤치 마크 값을 출력합니다.
따라서 각 입력 줄에 대해 데이터베이스를 쿼리 한 다음 각 줄에 대해 벤치 마크 계산을 개별적으로 수행합니다. 벤치 마크 계산을 마치면 각 라인에 벤치 마크 값을 출력합니다.
이 경우 리듀서를 전혀 사용하지 않거나 ID 리듀서를 사용할 수 없습니다.
따라서 맵 함수는 한 줄로 읽은 다음 Sybase 데이터베이스에 표준 값을 쿼리 한 다음 벤치 마크 계산을 수행합니다. 각 라인을 벤치 마크 값으로 출력하고 싶기 때문에 맵 기능을 사용하여 라인을 키로, 벤치 마크 값을 값으로 출력 할 수 있습니다 (예 : <라인, 벤치 마크 값>
귀하의지도 기능은 다음과 같습니다. (벤치 마크 값이 정수라고 가정합니다)
public void map(Text key, IntWritable value, Context context) throws Exception { String line = value.toString(); //this will be your key in the final output /* Perform operations on the line */ /* standard values = <return value from sybase query.>; */ /*Perform benchmark calculations and obtain benchmark values */ context.write(line,benchmarkValue); }
from https://stackoverflow.com/questions/17600258/how-to-select-the-optimal-key-in-map-reduce by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 타임 스탬프는 Apache Hive의 시간대와 함께 저장됩니까? (0) | 2019.09.06 |
---|---|
[HADOOP] Java 클라이언트를 통해 Hadoop 작업 정보를 가져올 수 없습니다 (0) | 2019.09.06 |
[HADOOP] 안전한 YARN Hadoop 클러스터로 스파크 지원 보안 (0) | 2019.09.06 |
[HADOOP] Hive를 사용하여 HDFS에서 파일 크기를 확인하는 방법 (0) | 2019.09.06 |
[HADOOP] Amazon EMR에서 HDFS를 다시 시작하는 방법 (0) | 2019.09.06 |