복붙노트

[HADOOP] 재정 TableMapper 분할

HADOOP

재정 TableMapper 분할

나는 시대가 초 단위로 날짜 시간의 긴 표현 미터는 미터의 번호입니다 "epoch_meter"의 포맷을 가진 해당 행 키가있는 테이블에서 읽을 다음 코드를 사용하고 있습니다.

Job jobCalcDFT = Job.getInstance(confCalcIndDeviation);

jobCalcDFT.setJarByClass(CalculateIndividualDeviation.class);

Scan scan = new Scan(Bytes.toBytes(String.valueOf(startSeconds) + "_"),
Bytes.toBytes(String.valueOf(endSeconds + 1) + "_"));

scan.setCaching(500);

scan.setCacheBlocks(false);

scan.addColumn(Bytes.toBytes("readings"), Bytes.toBytes("halfhourly"));

TableMapReduceUtil.initTableMapperJob("meterreadings", 
scan, EmitDFTMapper.class,
MeterIdFrequencyKey.class, 
ComplexWritable.class, jobCalcDFT);

해결법

  1. ==============================

    1.당신은 당신의 자신의 TableMapReduceUtil를 사용해야합니다 (또는 HBase와의 복사) 및 지역 당 1 (기본 동작)보다 더 많은 분할을 반환 getSplits를 서브 클래스 TableInputFormatBase을 사용하고 무시 - 여기 TableInputFormatBase에 대한 코드를 찾을 수 있습니다

    당신은 당신의 자신의 TableMapReduceUtil를 사용해야합니다 (또는 HBase와의 복사) 및 지역 당 1 (기본 동작)보다 더 많은 분할을 반환 getSplits를 서브 클래스 TableInputFormatBase을 사용하고 무시 - 여기 TableInputFormatBase에 대한 코드를 찾을 수 있습니다

    그런데 depracated 된 TableInputFormat는 org.apache.hadoop.hbase.mapred 네임 스페이스가 아닌 org.apache.hadoop.hbase.mapreduce 네임 스페이스에

  2. from https://stackoverflow.com/questions/17945990/overriding-tablemapper-splits by cc-by-sa and MIT license